WO2006015051A2 - Content distribution and synchronization - Google Patents

Content distribution and synchronization Download PDF

Info

Publication number
WO2006015051A2
WO2006015051A2 PCT/US2005/026652 US2005026652W WO2006015051A2 WO 2006015051 A2 WO2006015051 A2 WO 2006015051A2 US 2005026652 W US2005026652 W US 2005026652W WO 2006015051 A2 WO2006015051 A2 WO 2006015051A2
Authority
WO
WIPO (PCT)
Prior art keywords
content
appliance
storage device
copy
file
Prior art date
Application number
PCT/US2005/026652
Other languages
French (fr)
Other versions
WO2006015051A3 (en
WO2006015051A8 (en
Inventor
James A. Savage
Original Assignee
Mirra, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/178,131 external-priority patent/US20060026171A1/en
Application filed by Mirra, Inc. filed Critical Mirra, Inc.
Publication of WO2006015051A2 publication Critical patent/WO2006015051A2/en
Publication of WO2006015051A8 publication Critical patent/WO2006015051A8/en
Publication of WO2006015051A3 publication Critical patent/WO2006015051A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Definitions

  • the present invention relates generally to communication. More specifically, the present invention relates to systems and methods for content distribution, content synchronization, and other suitable activities.
  • Computer and data communications networks continue to proliferate. Such networks - including wide area networks (“WANs”) and local area networks (“LANs”) - help increase productivity through sharing resources and transferring (or otherwise processing) voice and data.
  • WANs wide area networks
  • LANs local area networks
  • a file server may be connected to a network. Once connected to the network, a plurality of computers may access the file server to store and/or revise data files on the file server.
  • computers may remotely access a file server, allowing a variety of persons in a variety of remote locations to collaborate on the same file.
  • a file server may remotely access a file server, allowing a variety of persons in a variety of remote locations to collaborate on the same file.
  • unreliable networks, unreliable hardware, and limited bandwidth can limit the effective collaboration in these systems.
  • accessing the file server can often be difficult.
  • computers may access a file server, allowing a person manually store a redundant copy of a data file on the file server. While helping to avoid some loss of data, this practice requires a person to diligently remember to store backups regularly to minimize data loss. Further, even with systems that backup data on scheduled intervals, the data loss between intervals can be significant.
  • one or more appliances and/or one or more computing devices may communicate in a network.
  • An appliance or a computing device may include a content management module configured to distribute and/or to synchronize content for backup purposes, for collaboration purposes, or for any other suitable purpose.
  • the content management modules may manage content- related events among the computing devices, the appliances, or both.
  • the content management modules may apply one or more rules to manage the content-related events.
  • the content-related events may help provide various content relationships, such as content backup, content subscription, or any other suitable content relationships.
  • embodiments of the invention may comprise aspects, advantages, or features other than those that have been described. Some aspects, advantages, or features of embodiments of the invention may become more fully apparent from the following description and appended claims or may be learned by the practice of embodiments of the invention as set forth in this disclosure.
  • Figure IA is a block diagram illustrating an exemplary embodiment of a networking system
  • Figure IB is a block diagram illustrating an embodiment of the networking system shown in Figure IA;
  • Figure 2A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 2B is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 3B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figure 2 A and Figure 3 A may be performed
  • Figure 3C is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figure 2 A and Figure 3 A may be performed;
  • Figure 3D is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 3E is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 3D may be performed;
  • Figure 4A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 4B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 4A may be performed;
  • Figure 4C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 4D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2 A and 4C may be performed;
  • Figure 5A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 5B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 5 A may be performed;
  • Figure 5C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 5D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 5C may be performed;
  • Figure 6A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 6B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 6A may be performed;
  • Figure 6C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 6D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 6C may be performed;
  • Figure 7A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 7B is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA
  • Figure 8 A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 8B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 8 A may be performed;
  • Figure 8C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 8D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7 A and 8C may be performed;
  • Figure 8E is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 8C may be performed;
  • Figure 9A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure 1 A;
  • Figure 9B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9A may be performed;
  • Figure 9C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 9D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
  • Figure 9E is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed
  • Figure 9F is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
  • Figure 1OA is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
  • Figure 1OB is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
  • Figure 1 OC is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
  • Figure 1 OD is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
  • Figure 1 OE is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
  • Figure HA is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional
  • Figure HB is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional;
  • Figure HC is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional;
  • FIG HD is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional;
  • Figure 12A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
  • Figure 12B is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed
  • Figure 12C is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed;
  • Figure 12D is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed
  • Figure 12E is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed.
  • FIG. IA is a block diagram illustrating an exemplary embodiment of a networking system 100 for implementing embodiments of the present invention.
  • the networking system 100 may include one or more computing devices.
  • “computing device” is a broad term and is used in its ordinary meaning and may include, but is not limited to, devices such as, personal computers, desktop computers, laptop computers, palmtop computers, a general purpose computer, a special purpose computer, mobile telephones, personal digital assistants (PDAs), Internet terminals, multi-processor systems, hand-held computing devices, portable computing devices, microprocessor- based consumer electronics, programmable consumer electronics, network PCs, minicomputers, mainframe computers, computing devices that may generate data, computing devices that may have the need for storing data, and the like.
  • PDAs personal digital assistants
  • the networking system 100 may include one or more appliances 106, 1 16, and 110, which are also examples of computing devices.
  • Each appliance 106, 110, and 116 may be associated with one or more other computing devices.
  • a desktop computer 102 and a laptop computer 104 may be connected to the appliance 106;
  • a PDA 108 may be connected to the appliance 1 10;
  • a laptop computer 112 and a desktop computer 1 14 may be connected to the appliance 1 16.
  • each appliance can be associated with multiple computing devices and each computing device can be associated with multiple appliances.
  • an appliance and any associated computing devices may be interconnected to form a network, such as a local area network.
  • the desktop computer 102, the laptop computer 104, and the appliance 106 may comprise a local area network;
  • the PDA 108 and the appliance 1 10 may comprise a local area network;
  • the laptop computer 1 12, the desktop computer 1 14, and the appliance 116 may comprise a local area network.
  • An appliance and any associated computing devices may be interconnected using any other suitable network including, but not limited to, a local area network, a WAN, the Internet, any other network, any other connection, or any combination thereof.
  • an appliance and any associated computing devices may be interconnected using one or more wired and/or wireless connections, if desired.
  • the networking environment 100 may include one or more networks, such as a network 1 18.
  • the network 1 18 may comprise of a plurality of linked local area networks. Although illustrated as a wide-area network (WAN), the network 1 18 may comprise a local area network, a WAN, the Internet, any other network, any other connection, or any combination thereof.
  • the networking environment 100 does not require the network 1 18.
  • appliances, computing devices, servers, or a combination thereof may advantageously communicate via the network 118.
  • the network 1 18 may be geographically widespread such that any appliance or computing device may be geographically remote from another appliance or associated computing device.
  • An appliance and/or the appliance's associated computing devices may be positioned in any number of other suitable locations with respect to another appliance and/or one or more of its associated computing devices.
  • the networking environment 100 may include a server
  • 120 which may comprise one or more servers that may include one or more hardware modules, one or more software modules, or both.
  • the networking environment 100 may include a content management system.
  • the content management system may advantageously provide communication features, content creation features, content transfer features, content backup features, content sharing features, content distribution features, content synchronization features, any other suitable features, or any suitable combination thereof.
  • content is a broad term and is used in its ordinary meaning and includes, but is not limited to, software, documents, data, information, electronic files, any electronic materials that may be useful or desirable to backup, any electronic materials that may be useful or desirable to distribute in a network environment, any electronic materials that may be useful or desirable to synchronize in a network environment, any electronic materials that may be useful or desirable to make accessible from a remote location, any other electronic materials that may be useful or desirable to employ embodiments of the invention, and the like.
  • the content management system may comprise a distributed system.
  • the content management system may comprise one or more modules, which may comprise hardware components, software components, or both.
  • the content management system may be implement using one or more computing devices, one or more appliances, one or more servers, or a combination thereof.
  • the appliance 106 may include a content management module 122; the appliance 110 may include a content management module 124; and the appliance 116 may include a content management module 126.
  • a computing device, a server, or both may include module(s) related to content management as described herein.
  • the server 120 may include a content management module 128; the desktop 102 may include a content management module 130; the laptop 104 may include a content management module 132; the PDA 108 may include a content management module 134; the laptop 1 12 may include a content management module 136; and the desktop 114 may include a content management module 138.
  • FIG. IB is a block diagram illustrating an embodiment of the networking environment 100 in which appliances, computing devices, or both may include one or more associated storage devices or have access to storage devices (hard drives, Random access memory, flash memory, and the like) either locally or remotely.
  • the desktop 102 may include a storage device 140; the laptop 104 may include a storage device 142; the PDA 108 may include a storage device 144; the laptop 112 may include a storage device 146; and the desktop 1 14 may include a storage device 148.
  • the appliance 106 may include a storage device 150; the appliance 1 10 may include a storage device 152; and the appliance 116 may include a storage device 154. BACKUP & SYNCHRONIZATION
  • FIG. 2A is a flowchart illustrating an exemplary method 200 for synchronizing content in a networking environment such as shown in Figures IA and IB.
  • a content management system may create one or more content-management rules.
  • the content-management rules may be identity-based, event-driven, or both.
  • the content management rules may associate one or more backup-related actions to be performed in response to one or more events.
  • Exemplary events may include, but are not limited to, one or more of the following: content creation; content receipt; content modification; content deletion; content encryption; content download; content upload; content conversion; content corruption; virus detection; establishment of communication between a local device and the networking environment 100; establishment of communication between a remote device and the networking environment 100; passage of a predetermined period of time; a user logon to a device in the networking environment 100; a user logoff from a device in the networking environment 100; and any other suitable event.
  • the content management rules may identify one or more backup-related actions to be performed in response to one or more events, in response to metadata associated with content, in response to other suitable factors, or any suitable combination thereof.
  • the content management system may distribute content to one or more identities, including one or more persons or discrete entities (such as, an application, a service, a module, an appliance, a computing device, or the like) that may be capable of accessing or otherwise interacting with content.
  • the content management system may synchronize content by, for example, providing a version of the content to an identity.
  • the content management system may synchronize content in response to any suitable event, such as, for example, content modification.
  • the content management system in response to modification of the content on a storage device associated with a source computing device, the content management system may provide a modified version of the content to an identity.
  • Figure 2B is a flowchart illustrating an exemplary method 220 for synchronizing content.
  • the content management system may create one or more requests for content backup, which may be presented to a destination identity, a user of a destination identity, or the like.
  • the content management system may receive, via a first user interface, user input indicating a first user's desire to store content for backup purposes on one or more computing devices, appliances, or the like.
  • the content management system may present the one or more requests for content backup to a destination identity, a user of a destination identity, or the like.
  • the content management system may, via a second user interface, display (to a user of an appliance, a user of a computing device, or the like) the first user's desire to store content.
  • the content management system may receive (from a destination identity, a user of a destination identity, or the like) one or more responses to the one or more requests for content backup.
  • the content management system may receive, via the second user interface, user input indicating that the user of an appliance, a user of a computing device, or the like will permit (or will not permit) the requested content backup.
  • the content management system may perform some or all of the method 200 ( Figure 2A), which may comprise the blocks 202, 204, and 206.
  • Figure 2A LOCAL APPLIANCE CONTENT BACKUP
  • Figure 3 A is a flowchart illustrating an exemplary method 300 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system (such as, one or more the content management modules 122, 124, 126, 128, 130, 132, 134, 136, 138 shown in Figure IA) may perform some or all of the method 300.
  • the method 300 may be performed by any other suitable system and in any other suitable environment.
  • the block 204 may comprise a block 204A ( Figure 3A) in which the content management system may distribute a copy of content to a local appliance for backup purposes or the like.
  • the block 204A may comprise one or more blocks.
  • a content management module for the source computer may send a copy of the content to a local appliance.
  • a content management module for the local appliance may receive the copy of the content and, at a block 306, may store the copy of the content in a storage device associated with the local appliance.
  • Figures 3B and 3 C are block diagrams of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 300 ( Figure 3A) may be performed.
  • a file "a” may be stored on the storage device 140 of the desktop 102.
  • the content management module 130 for the desktop 102 may send a copy of the file "a” to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 150.
  • a file "b" may be stored on the storage device 142 of the laptop 104.
  • the content management module 132 for the laptop 104 may send a copy of the file "b" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file "b” and may store the copy of the file "b” in the storage device 150.
  • Figure 3D is a flowchart illustrating an exemplary method 320 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 320.
  • the method 320 may be performed by any other suitable system and in any other suitable environment.
  • the block 206 may comprise a block 206A ( Figure 3D) in which the content management system may synchronize content to a local appliance.
  • the block 206A may comprise one or more blocks.
  • a content management module for the source computer may send a version of the content to a local appliance.
  • a content management module for the local appliance may receive the version of the content and, at a block 326, may store the version of the content in a storage device associated with the local appliance.
  • the content management module for the local appliance may delete a prior version of the content.
  • the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
  • Figure 3E is a block diagram of the networking environment 100 ( Figures IA and
  • a file may be referred to as file "a,” file
  • subsequent versions of files typically will include a number corresponding to a version, such as, file “al” for the first subsequent version and "a2" for the second subsequent version. It will be appreciated that such labels as “al " and “a2” are used for convenience only. Accordingly, if desired, subsequent versions of files could be named the same as, similar to, or entirely different from prior versions of files.
  • the content management module 130 for the desktop 102 may send a copy of the file "al" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “al " and may store the copy of the file “al” in the storage device 150.
  • Figure 4A is a flowchart illustrating an exemplary method 400 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 400.
  • the method 400 may be performed by any other suitable system and in any other suitable environment.
  • the block 204 may comprise a block 204B
  • FIG. 4A in which the content management system may distribute a copy of content to a local computing device (such as, a local computer) for backup purposes or the like.
  • the block 204B may comprise one or more blocks.
  • a content management module for an appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like).
  • the content management module for the local appliance may send the copy of the content to a local computer.
  • a content management module for the local computer may receive the copy of the content and, at a block 408, may store the copy of the content in a storage device associated with the local computer.
  • Figure 4B is a block diagram of the networking environment 100 ( Figures IA and 1 B) in which some or all aspects of the methods 200 (Figure 2A) and 400 ( Figure 4A) may be performed. As shown in Figure 4B, a file "a" may be stored on the storage device
  • the content management module 122 for the appliance 106 may retrieve a copy of the file "a.”
  • the content management module 122 may retrieve a copy of the file "a" from the storage device 150.
  • the content management module 122 may request a copy of the file "a” from the content management module 130 for the desktop 102, which may retrieve a copy of the file "a” from the storage device 140 and send that copy to the content management module 122.
  • the content management module 122 may retrieve a copy of the file "a” in any other suitable manner.
  • the content management module 122 may send a copy of the file "a" to the laptop 104.
  • the content management module 132 for the laptop 104 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 142. SYNCHRONIZATION OF LOCAL COMPUTING DEVICE CONTENT BACKUP
  • Figure 4C is a flowchart illustrating an exemplary method 420 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 420.
  • the method 420 may be performed by any other suitable system and in any other suitable environment.
  • the block 206 may comprise a block 206B ( Figure 4C) in which the content management system may synchronize content to a local computing device (such as, a local computer).
  • the block 206B may comprise one or more blocks.
  • a content management module for the source computer may send a version of the content to a local appliance.
  • a content management module for the local appliance may receive the version of the content and, at a block 426, may store the version of the content in a storage device associated with the local appliance.
  • the content management module for the local appliance may delete a prior version of the content.
  • the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 426 is optional.
  • the content management module for the local appliance may send the version of the content to a local computer.
  • a content management module for the local computer may receive the version of the content and, at a block 432, may store the version of the content in a storage device associated with the local computer.
  • the content management module for the local computer may delete a prior version of the content.
  • the content management module for the local computer may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local computer may store any suitable number of versions (such as, 1 , 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the local computer need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
  • Figure 4D is a block diagram of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 420 ( Figure 4C) may be performed.
  • the file "a" stored on the storage device 140 Figure 4B
  • the content management module 130 for the desktop 102 may send a copy of the file "al " to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file "al,” may store the copy of the file “al” in the storage device 150, and may send the copy of the file “al " to the laptop 104.
  • REMOTE APPLIANCE CONTENT BACKUP Figure 5A is a flowchart illustrating an exemplary method 500 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 500.
  • the method 500 may be performed by any other suitable system and in any other suitable environment.
  • the block 204 may comprise a block 204C ( Figure 5A) in which the content management system may distribute a copy of content to a remote appliance for backup purposes or the like.
  • the block 204C may comprise one or more blocks.
  • a content management module for a local appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like).
  • the content management module for the local appliance may send the copy of the content to a remote appliance.
  • a content management module for the remote appliance may receive the copy of the content and, at a block 508, may store the copy of the content in a storage device associated with the remote appliance.
  • Figure 5B is a block diagram of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 500 ( Figure 5A) may be performed.
  • a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both.
  • the content management module 122 for the appliance 106 may retrieve a copy of the file "a.”
  • the content management module 122 may retrieve a copy of the file "a” from the storage device 150.
  • the content management module 122 may request a copy of the file “a” from the content management module 130 for the desktop 102, which may retrieve a copy of the file “a” from the storage device 140 and send that copy to the content management module 122.
  • the content management module 122 may retrieve a copy of the file “a” in any other suitable manner.
  • the content management module 122 may send a copy of the file “a” to the appliance 1 16.
  • the content management module 126 for the appliance 116 may receive the copy of the file "a” and may store the copy of the file “a” in the storage device 154 SYNCHRONIZATION OF REMOTE APPLIANCE CONTENT BACKUP
  • Figure 5C is a flowchart illustrating an exemplary method 520 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 520.
  • the method 520 may be performed by any other suitable system and in any other suitable environment.
  • the block 206 may comprise a block 206C ( Figure 5C) in which the content management system may synchronize content to a remote appliance.
  • the block 206C may comprise one or more blocks.
  • a content management module for the source computer may send a version of the content to a local appliance.
  • a content management module for the local appliance may receive the version of the content and, at a block 526, may store the version of the content in a storage device associated with the local appliance.
  • the content management module for the local appliance may delete a prior version of the content.
  • the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the contact management module of the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 526 is optional.
  • the content management module for the local appliance may send the version of the content to a remote appliance.
  • a content management module for the remote appliance may receive the version of the content and, at a block 532, may store the version of the content in a storage device associated with the remote appliance.
  • the content management module for the remote appliance may delete a prior version of the content.
  • the content management module for the remote appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the remote appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the contact management module for the remote appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
  • Figure 5D is a block diagram of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 520 ( Figure 5D) may be performed.
  • the file “a" stored on the storage device 140 Figure 5B
  • the content management module 130 for the desktop 102 may send a copy of the file "al” to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file "al” and may store the copy of the file "al " in the storage device 150.
  • the content management module 122 may send copy of the file “al” to the appliance 116.
  • the content management module 126 for the appliance 1 16 may receive copy of the file “al” and may store the copy of the file “al” in the storage device 154.
  • Figure 6A is a flowchart illustrating an exemplary method 600 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 600.
  • the method 600 may be performed by any other suitable system and in any other suitable environment.
  • the block 204 may comprise a block 204D ( Figure 6A) in which the content management system may distribute a copy of content to a remote computing device (such-as, a remote computer) for backup purposes or the like.
  • the block 204D may comprise one or more blocks.
  • a content management module for a local appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like).
  • the content management module for the local appliance may send the copy of the content to a remote appliance.
  • a content management module for the remote appliance may receive the copy of the content and, at a block 608, may optionally store the copy of the content in a storage device associated with the remote appliance.
  • the content management module for the remote appliance may send the copy of the content to the remote computer.
  • a content management module for the remote computer may receive the copy of the content and, at a block 614, may store the copy of the content in a storage device associated with the remote computer.
  • Figure 6B is a block diagram of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 600 ( Figure 6A) may be performed.
  • a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both.
  • the content management module 122 for the appliance 106 may retrieve a copy of the file "a.”
  • the content management module 122 may retrieve a copy of the file "a” from the storage device 150.
  • the content management module 122 may request a copy of the file “a” from the content management module 130 for the desktop 102, which may retrieve a copy of the file “a” from the storage device 140 and send that copy to the content management module 122.
  • the content management module 122 may retrieve a copy of the file "a” in any other suitable manner.
  • the content management module 122 may send a copy of the file "a” to the laptop 104.
  • the content management module 132 for the laptop 104 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 142.
  • the content management module 122 may send a copy of the file "a” to the appliance 1 16.
  • the content management module 126 for the appliance 1 16 may receive the copy of the file “a,” may store the copy of the file “a” in the storage device 154, and may send the copy of the file “a” to the laptop 1 12.
  • the content management module 136 for the laptop 1 12 may receive the copy of the file “a” and may store the copy of the file "a” in the storage device 146.
  • the content management module 122 may send a copy of the file "a" to the appliance 1 10.
  • the content management module 124 for the appliance 1 10 may receive the copy of the file “a” and may send the copy of the file “a” to the PDA 108.
  • the content management module 134 for the PDA 108 may receive the copy of the file “a” and may store the copy of the file “a” in the storage device 144.
  • Figure 6C is a flowchart illustrating an exemplary method 620 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and I B.
  • a content management system may perform some or all of the method 620.
  • the method 620 may be performed by any other suitable system and in any other suitable environment.
  • the block 206 ( Figure 2A) may comprise a block 206D
  • Figure 6C in which the content management system may synchronize content to a remote computing device (such as, a remote computer) for backup purposes or the like.
  • the block 206D may comprise one or more blocks.
  • a content management module for the source computer may send a version of the content to a local appliance.
  • a content management module for the local appliance may receive the version of the content and, at a block 624, may store the version of the content in a storage device associated with the local appliance.
  • the content management module for the local appliance may delete a prior version of the content.
  • the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prioij version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local appliance may store any suitable number of versions (such as, 1 , 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the contact management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 624 is optional.
  • the content management module for the local appliance may optionally send the version of the content to one or more local computing devices (such as, local computers) for backup purposes or the like.
  • a content management module for the local computer may store the received version of the content in a storage device associated with the local computer.
  • the content management module for the local computer may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local computer may store any suitable number of versions (such as, 1 , 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the local computer need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
  • the local computer need not store any content for backup purposes; thus, the block 626 is optional.
  • the content management module for the local appliance may send the version of the content to a remote appliance.
  • a content management module for the remote appliance may receive the version of the content and, at a block 632, may store the version of the content in a storage device associated with the remote appliance.
  • the content management module for the remote appliance may delete a prior version of the content.
  • the content management module for the remote appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the remote appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the remote appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the remote appliance need not store any content for backup purposes; thus, the block 632 is optional.
  • the content management module for the remote appliance may send the version of the content to one or more remote computing devices (such as, remote computers).
  • a content management module for the remote computer may store the received version of the content in a storage device associated with the remote computer.
  • a content management module for the remote computer may delete a prior version of the content.
  • the content management module for the remote computer may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the remote computer may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the remote computer need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
  • Figure 6D is a block diagram of the networking environment 100 ( Figures IA and 1 B) in which some or all aspects of the methods 200 (Figure 2A) and 620 ( Figure 6C) may be performed. As shown in Figures 6B and 6D, the file “a" stored on the storage device 140 ( Figure 6B) may be modified to another version ⁇ file "al” stored on the storage device 140 ( Figure 6D).
  • the content management module 130 for the desktop 102 may send a copy of the file "al" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “al” and may store the copy of the file “al " in the storage device 150.
  • the content management module 122 for the appliance 106 may send copy of the file "al " to the laptop 104.
  • the content management module 132 for the laptop 104 may receive copy of the file “al” and may store the copy of the file “al” in the storage device 142.
  • the content management module 122 for the appliance 106 may send copy of the file "al” to the appliance 1 16.
  • the content management module 126 for the appliance 1 16 may receive the copy of the file “al,” may store the copy of the file “al” in the storage device 154, may delete the file “a” from the storage device 154, and may send the copy of the file “al " to the laptop 1 12.
  • the content management module 136 for the laptop 1 12 may receive the copy of the file “al” and may store the copy of the file "al” in the storage device 146.
  • the content management module 122 for the appliance 106 may send copy of the file “al " to the appliance 1 10.
  • the content management module 124 for the appliance 1 10 may receive the copy of the file “al” and may send the copy of the file “al “ to the PDA 108.
  • the content management module 134 for the PDA 108 may receive the copy of the file “al ,” may store the copy of the file “al “ in the storage device 144, and may delete the file "a” from the storage device 144.
  • Figure 7A is a flowchart illustrating an exemplary method 700 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system (such as, one or more the content management modules 122, 124, 126, 128, 130, 132, 134, 136, 138 shown in Figure IA) may perform some or all of the method 700.
  • the method 700 may be performed by any other suitable system and in any other suitable environment.
  • the content management system may create one or more content-management rules.
  • the contact management system may implement one or more content-management rules that may be identity-based, event- driven, or both.
  • the content management rules may associate one or more content-subscription-related actions to be performed in response to one or more events.
  • Exemplary events may include, for example, one or more of the following: content creation; content receipt; content modification; content deletion; content encryption; content download; content upload; content conversion; content corruption; virus detection; establishment of communication between a local device and the networking environment 100; establishment of communication between a remote device and the networking environment 100; passage of a predetermined period of time; a user logon to a device in the networking environment 100; a user logoff from a device in the networking environment 100; and any other suitable event.
  • the content management rules may identify one or more content- subscription-related actions to be performed in response to one or more events, in response to metadata associated with content, in response to other suitable factors, or any suitable combination thereof.
  • the contact management system may optionally comprise embodiments of the content management systems and methods there alike.
  • the content management system may distribute content to one or more identities, including one or more persons or discrete entities (such as, an application, a service, a module or the like) that may be capable of accessing or otherwise interacting with content.
  • the content management system may synchronize content by, for example, providing a version of the content to an identity.
  • the content management system may synchronize content in response to any suitable event, such as, for example, content modification.
  • the content management system in response to modification of the content on a storage device associated with a source computing device, the content management system may provide a modified version of the content to an identity.
  • Figure 7B is a flowchart illustrating an exemplary method 720 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 720.
  • the method 720 may be performed by any other suitable system and in any other suitable environment.
  • the content management system may create one or more offers for content subscription, which may be presented to a destination identity, a user of a destination identity, or the like.
  • the content management system may receive, via a first user interface, user input indicating a first user's desire to share content for collaboration purposes.
  • the user may desire content stored one or more storage devices associated with a computing device, an appliance, or the like.
  • the content management system may present the one or more offers for content subscription to a destination identity, a user of a destination identity, or the like.
  • the content management system may, via a second user interface, display (to a user of an appliance, a user of a computing device, or the like) the first user's desire to share content.
  • the content management system may receive (from a destination identity, a user of a destination identity, or the like) one or more responses to the one or more requests for content backup.
  • the content management system may receive, via the second user interface, user input indicating that the user of an appliance, a user of a computing device, or the like accepts (or rejects) the offered content.
  • the second user interface may receive user input identifying a location, such as, a location identifier indicating a location where the offered content may be stored in a storage device associated with the user's appliance, computing device, or the like. Accordingly, content could be distributed to and/or synchronized to the location identified by the user input.
  • a location identifier indicating a location where the offered content may be stored in a storage device associated with the user's appliance, computing device, or the like.
  • content management system may perform some or all of the method 700 ( Figure 7A), which may comprise the blocks 702, 704, and 706.
  • a first user may share content with a second user and that shared content may be synchronized in any suitable manner.
  • a first user may offer to share content with a second user and may allow (or deny) the second user the ability to share content with other users.
  • the content management system may receive, via a user interface, user input indicating the first user's desire to share content with the second user and to deny the second user the ability to share (via the content management system) the content with other users.
  • Figure 8A is a flowchart illustrating an exemplary method 800 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 800.
  • the method 800 may be performed by any other suitable system and in any other suitable environment.
  • the block 704 may comprise a block 704A ( Figure 8A) in which the content management system may distribute a copy of content to a local computing device (such as, a local computer) for collaboration purposes or the like.
  • the block 704A may comprise one or more blocks.
  • a content management module for an appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like).
  • the content management module for the appliance may send the copy of the content to a local computer.
  • a content management module for the local computer may receive the copy of the content and, at a block 808, may store the copy of the content in a storage device associated with the local computer.
  • Figure 8B is a block diagram of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 800 ( Figure 8A) may be performed.
  • a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both.
  • the content management module 122 for the appliance 106 may retrieve a copy of the file "a.”
  • the content management module 122 may retrieve a copy of the file “a” from the storage device 150.
  • the content management module 122 may request a copy of the file “a” from the content management module 130 for the desktop 102, which may retrieve a copy of the file "a” from the storage device 140 and send that copy to the content management module 122.
  • the content management module 122 may retrieve a copy of the file "a” in any other suitable manner.
  • the content management module 122 may send a copy of the file "a" to the laptop 104.
  • the content management module 132 for the laptop 104 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 142.
  • FIG. 8C is a flowchart illustrating an exemplary method 820 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 820.
  • the method 820 may be performed by any other suitable system and in any other suitable environment.
  • the block 706 ( Figure 7A) may comprise a block 706A
  • Figure 8C in which the content management system may synchronize content to a local computing device (such as, a local computer).
  • the block 706 A may comprise one or more blocks.
  • a content management module for the source computer may send a version of the content to a local appliance.
  • a content management module for the local appliance may receive the version of the content and, at a block 826, may store the version of the content in a storage device associated with the local appliance.
  • the content management module for the local appliance may delete a prior version of the content.
  • the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 826 is optional.
  • the content management module for the local appliance may send the version of the content to a local computer.
  • a content management module for the local computer may receive the version of the content.
  • the content management module for the local computer may store the version of the content in a storage device associated with the local computer and may overwrite (or otherwise delete) any prior version of the content on the storage device associated with the local computer.
  • Figures 8D and 8E are block diagrams of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 820 ( Figure 8C) may be performed.
  • the file “a" stored on the storage device 142 Figure 8B
  • the content management module 132 for the laptop 104 may send a copy of the file "al " to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file "al” and may store the copy of the file “al” in the storage device 150.
  • the content management module 122 may send copy of the file "al” to the desktop 102.
  • the content management module 130 for the desktop 102 may receive copy of the file "al” and may store the copy of the file “al” in the storage device 140.
  • the file “al” stored on the storage device 140 may be modified to another version — file “a2" stored on the storage device 140 ( Figure 8E).
  • the content management module 130 for the desktop 102 may send a copy of the file "a2" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “a2” and may store the copy of the file “a2” in the storage device 150.
  • the content management module 122 may send copy of the file "a2" to the laptop 104.
  • the content management module 132 for the laptop 104 may receive copy of the file "a2” and may store the copy of the file "a2” in the storage device 142.
  • Figure 9A is a flowchart illustrating an exemplary method 900 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 900.
  • the method 900 may be performed by any other suitable system and in any other suitable environment.
  • the block 704 may comprise a block 704B ( Figure 9A) in which the content management system may distribute a copy of content to a remote computing device (such as, a remote computer) for collaboration purposes or the like.
  • the block 704B may comprise one or more blocks.
  • a content management module for a local appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like).
  • the content management module for the local appliance may send the copy of the content to a remote appliance.
  • a content management module for the remote appliance may receive the copy of the content and, at a block 908, may optionally store the copy of the content in a storage device associated with the remote appliance.
  • the content management module for the remote appliance may send the copy of the content to the remote computer.
  • a content management module for the remote computer may receive the copy of the content and, at a block 914, may store the copy of the content in a storage device associated with the remote computer.
  • Figure 9B is a block diagram of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 900 ( Figure 9A) may be performed.
  • a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both.
  • the content management module 122 for the appliance 106 may retrieve a copy of the file "a.”
  • the content management module 122 may retrieve a copy of the file "a” from the storage device 150.
  • the content management module 122 may request a copy of the file “a” from the content management module 130 for the desktop 102, which may retrieve a copy of the file “a” from the storage device 140 and send that copy to the content management module 122.
  • the content management module 122 may retrieve a copy of the file "a” in any other suitable manner.
  • the content management module 122 may send a copy of the file "a” to the laptop 104.
  • the content management module 132 for the laptop 104 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 142.
  • the content management module 122 may send a copy of the file "a" to the appliance 1 16.
  • the content management module 126 for the appliance 116 may receive the copy of the file “a,” may store the copy of the file “a” in the storage device 154, and may send the copy of the file “a” to the desktop 114.
  • the content management module 138 for the desktop 114 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 148.
  • Figure 9C is a flowchart illustrating an exemplary method 920 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 920.
  • the method 920 may be performed by any other suitable system and in any other suitable environment.
  • the block 706 may comprise a block 706B ( Figure 9C) in which the content management system may synchronize content to a remote computing device (such as, a remote computer) for collaboration purposes or the like.
  • the block 706B may comprise one or more blocks.
  • a content management module for the source computer may send a version of the content to a local appliance.
  • a content management module for the local appliance may receive the version of the content and, at a block 924, may store the version of the content in a storage device associated with the local appliance.
  • the content management module for the local appliance may delete a prior version of the content.
  • the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the contact management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 924 is optional.
  • the content management module for the local appliance may optionally send the version of the content to one or more local computing devices (such as, local computers) for collaboration purposes or the like.
  • a content management module for the local computer may store the received version of the content in a storage device associated with the local computer and may overwrite (or otherwise delete) any prior version of the content on the storage device associated with the local computer.
  • the content management module for the local appliance may send the version of the content to a remote appliance.
  • a content management module for the remote appliance may receive the version of the content and, at a block 930, may store the version of the content in a storage device associated with the remote appliance.
  • the content management module for the remote appliance may delete a prior version of the content.
  • the content management module for the remote appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version.
  • the content management module for the remote appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices.
  • the content management module for the remote appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
  • the remote appliance need not store any content for collaboration purposes; thus, the block 930 is optional.
  • the content management module for the remote appliance may send the version of the content to one or more remote computing devices (such as, remote computers).
  • a content management module for the remote computer may store the received version of the content in a storage device associated with the remote computer and overwrite (or otherwise delete) any prior version of the content on the storage device associated with the remote computer.
  • Figures 9D, 9E, and 9F are block diagrams of the networking environment 100 ( Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 920 ( Figure 9C) may be performed. As shown in Figures 9B and 9D, the file “a" stored on the storage device 142 ( Figure 9B) may be modified to another version — file “al” stored on the storage device 142 ( Figure 9D).
  • the content management module 132 for the laptop 104 may send a copy of the file "al” to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “al” and may store the copy of the file “al” in the storage device 150.
  • the content management module 122 for the appliance 106 may send copy of the file "al" to the desktop 102.
  • the content management module 130 for the desktop 102 may receive copy of the file "al,” may store the copy of the file "al” in the storage device 140, and may delete the file "a” from the storage device 140.
  • the content management module 122 for the appliance 106 may send copy of the file “al " to the appliance 1 16.
  • the content management module 126 for the appliance 116 may receive the copy of the file “al,” may store the copy of the file “al “ in the storage device 154 and may send the copy of the file “al “ to the desktop 1 14.
  • the content management module 138 for the desktop 1 14 may receive the copy of the file “al,” may store the copy of the file “al” in the storage device 148, and may delete the file "a” from the storage device 148.
  • the file “al " stored on the storage device 148 may be modified to another version — file "a2" stored on the storage device 148 ( Figure 9E).
  • the content management module 138 for the desktop 1 14 may send a copy of the file "a2" to the appliance 1 16.
  • the content management module 126 for the appliance 1 16 may receive the copy of the file “a2” and may store the copy of the file "a2” in the storage device 154.
  • the content management module 126 for the appliance 1 16 may send copy of the file "a2" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “a2,” may store the copy of the file “a2” in the storage device 150, may send the copy of the file “a2” to the desktop 102, and may send the copy of the file “a2” to the laptop 104.
  • the content management module 130 for the desktop 102 may receive the copy of the file “a2,” may store the copy of the file “a2” in the storage device 140, and may delete the file “al” from the storage device 140.
  • the content management module 132 for the laptop 104 may receive the copy of the file "a2,” may store the copy of the file "a2” in the storage device 140, and may delete the file “al” from the storage device 140.
  • Figure 9E may be modified to another version — file "a3" stored on the storage device 140 ( Figure 9F).
  • the content management module 130 for the desktop 102 may send a copy of the file "a3" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “a3” and may store the copy of the file “a3” in the storage device 150.
  • the content management module 122 for the appliance 106 may send copy of the file "a3" to the laptop 104.
  • the content management module 132 for the laptop 104 may receive copy of the file "a3,” may store the copy of the file “a3” in the storage device 142, and may delete the file "a2" from the storage device 142.
  • the content management module 122 for the appliance 106 may send copy of the file "a3" to the appliance 116.
  • the content management module 126 for the appliance 116 may receive the copy of the file “a3,” may store the copy of the file “a3” in the storage device 154, and may send the copy of the file “a3” to the desktop 114.
  • the content management module 138 for the desktop 114 may receive the copy of the file "a3,” may store the copy of the file "a3” in the storage device 148, and may delete the file "a2" from the storage device 148.
  • Figures 1OA, 1OB, 1OC, 10D, and 1OE are block diagrams of the networking environment 100 ( Figures 1 A and 1 B) in which some or all aspects of the methods 700 (Figure 7A), 900 ( Figure 9A), and 920 ( Figure 9C) may be performed.
  • a file “a” may be stored on the storage device 148 of the desktop 114, may be stored on the storage device 154 of the appliance 116, or both.
  • a file “b” may be stored on the storage device 144 of the PDA 108, may be stored on the storage device 152 of the appliance 110, or both.
  • the content management module 126 for the appliance 1 16 may retrieve a copy of the file "a.”
  • the content management module 126 may retrieve a copy of the file “a” from the storage device 154.
  • the content management module 126 may request a copy of the file “a” from the content management module 138 for the desktop 114, which may retrieve a copy of the file "a” from the storage device 148 and send that copy to the content management module 126.
  • the content management module 126 may retrieve a copy of the file "a” in any other suitable manner.
  • the content management module 126 may send a copy of the file "a" to the appliance 1 10.
  • the content management module 124 for the appliance 110 may receive the copy of the file “a,” may store the copy of the file “a” in the storage device 152, and may send the copy of the file “a” to the PDA 108.
  • the content management module 134 for the PDA 108 may receive the copy of the file “a” and may store the copy of the file “a” in the storage device 144.
  • the content management module 124 for the appliance 1 10 may retrieve a copy of the file "b.”
  • the content management module 124 may retrieve a copy of the file “b” from the storage device 152.
  • the content management module 124 may request a copy of the file “b” from the content management module 134 for the PDA 108, which may retrieve a copy of the file "b” from the storage device 144 and send that copy to the content management module 124.
  • the content management module 124 may retrieve a copy of the file "b” in any other suitable manner.
  • the content management module 124 may send a copy of the file "b" to the appliance 1 16.
  • the content management module 126 for the appliance 1 16 may receive the copy of the file “b,” may store the copy of the file “b” in the storage device 154, and may send the copy of the file “b” to the desktop 1 14.
  • the content management module 138 for the desktop 1 14 may receive the copy of the file “b” and may store the copy of the file “b” in the storage device 148.
  • Figure 10B may be modified to another version — file "bl " stored on the storage device 148 ( Figure 10C).
  • the content management module 138 for the desktop 114 may send a copy of the file "bl" to the appliance 1 16.
  • the content management module 126 for the appliance 116 may receive the copy of the file “bl” and may store the copy of the file “bl” in the storage device 154.
  • the content management module 126 for the appliance 1 16 may send copy of the file "bl" to the appliance 110.
  • the content management module 124 for the appliance 110 may receive the copy of the file “bl,” may store the copy of the file “bl” in the storage device 152 and may send the copy of the file “bl " to the PDA 108.
  • the content management module 134 for the PDA 108 may receive the copy of the file “bl,” may store the copy of the file “bl” in the storage device 144, and may delete the file “b” from the storage device 144.
  • a file "c" may be stored on the storage device
  • the content management module 132 for the laptop 104 may send a copy of the file "c" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “c” and may store the copy of the file “c” in the storage device 150. As shown in Figures IA and 1OE, the content management module 122 for the appliance 106 may retrieve a copy of the file "c.”
  • the content management module 122 may retrieve a copy of the file "c" from the storage device 150.
  • the content management module 122 may request a copy of the file “c” from the content management module 132 for the laptop 104, which may retrieve a copy of the file “c” from the storage device 142 and send that copy to the content management module 122.
  • the content management module 122 may retrieve a copy of the file "c” in any other suitable manner.
  • the content management module 122 may send a copy of the file "c" to the appliance 110.
  • the content management module 124 for the appliance 1 10 may receive the copy of the file “c,” may store the copy of the file “c” in the storage device 152, and may send the copy of the file “c” to the PDA 108.
  • the content management module 134 for the PDA 108 may receive the copy of the file “c” and may store the copy of the file "a” in the storage device 144.
  • any computing device may optionally distribute different content to different sets of destination appliances, destination computing devices, and the like.
  • a computing device may distribute a first set of content to a first set of one or more destination devices and distribute another set of content to another set of one or more destination devices.
  • any computing device may receive different content from different source appliances, source computing devices, and the like.
  • a computing device may receive a first set of content from one source device and may receive a second set of content from another source device. Accordingly, because a computing device may distribute various content to ⁇ and may receive various content from — one or more other devices in a virtually unlimited number of configurations, the networking system 100 may be customized and scaled to meet the needs of many businesses and individuals.
  • a computing device may distribute and/or synchronize content without being associated with an appliance. Accordingly, while appliances have advantages, the networking system 100 does not require any appliances.
  • Figure HA is a block diagram that illustrates an embodiment of the networking system 100 in which one or more computing devices may distribute and/or synchronize content in any suitable manner without using an appliance.
  • FIGS. 1 IB-I ID are block diagrams of an embodiment of the networking system 100 in which appliances may be optional.
  • a file “a” may be stored on the storage device 144 of the PDA 108.
  • a file “b” may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both.
  • a file “c” may be stored on the storage device 146 of the laptop 112.
  • the content management module 134 for the PDA 108 may retrieve a copy of the file "a” from the storage device 144.
  • the content management module 134 may send a copy of the file “a” to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “a,” may store the copy of the file “a” in the storage device 150, and may send the copy of the file “a” to the laptop 104.
  • the content management module 132 for the laptop 104 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 142.
  • the content management module 130 for the desktop 102 may retrieve a copy of the file "b" from the storage device 140.
  • the content management module 130 may send a copy of the file “b” to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “b,” may store the copy of the file “b” in the storage device 150, and may send the copy of the file “b” to the PDA 108.
  • the content management module 134 for the PDA 108 may receive the copy of the file "b” and may store the copy of the file "b” in the storage device 144.
  • the content management module 136 for the laptop 1 12 may retrieve a copy of the file "c" from the storage device 146.
  • the content management module 136 may send a copy of the file “c” to the PDA 108.
  • the content management module 134 for the PDA 108 may receive the copy of the file “c” and may store the copy of the file “c” in the storage device 144.
  • a plurality of computing devices may distribute content with or without the use of any appliance.
  • a plurality of computing devices may distribute and/or synchronize content in any suitable fashion and for any suitable purpose with or without the use of any appliance.
  • a person may advantageously access content using a computing device generally uninvolved with the distribution and/or the synchronization of the particular content.
  • a businessperson may use an appliance to distribute and/or synchronize content among a few desktop computers at the businessperson' s office. Away on a business trip, the businessperson may remember some forgotten data files and may advantageously use a laptop to access those data files stored on a storage device associated with the appliance.
  • a person may use an appliance to backup photographs from a family reunion. Using a web browser, the family members may advantageously access a server that may advantageously retrieve one or more images files of the family reunion that are stored in a storage device associated with the appliance.
  • any person could access content for any of a variety of other purposes. Further, any person could access content using any of a variety of other suitable computing devices, appliances, and the like.
  • a computing device may access content distributed and/or synchronized by one or more other computing devices, one or more appliances, and the like.
  • Figure 12A is a flowchart illustrating an exemplary method 1200 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB.
  • a content management system may perform some or all of the method 1200.
  • the method 1200 may be performed by any other suitable system and in any other suitable environment.
  • a connection may be established between an appliance and a computing device (such as, a remote computer) using any suitable connection, protocol, or the like.
  • the connection may be directly established via a network (such as, the WAN 118), may be indirectly established and/or brokered via a server (such as, the server 120), or may be established in any other suitable fashion.
  • a content management module for the remote computer a content management module for the appliance, a content management module for a server, a web browser associated with the remote computer, or any combination thereof may establish a connection. Any other suitable components or devices could establish a connection.
  • the remote computer may receive content from the appliance directly via a network, indirectly brokered via a server, or in any other suitable manner.
  • a content management module for the appliance could send the content to the remote computer directly via a network, could send the content to a server (which could send the content to the remote computer), or could send the content in any other suitable fashion.
  • a content management module for the remote computer may receive the content, and, at a block 1206, may store the received content in a storage device associated with the remote computer.
  • a content management module for the remote computer may optionally synchronize and/or further distribute the received content in any suitable manner.
  • a computer need not use an appliance to distribute and/or synchronize content.
  • the remote computer may advantageously be configured to synchronize and/or further distribute the received content.
  • the remote computer need not synchronize and/or further distribute the received content.
  • Figures 12B-12E are block diagrams of an embodiment of the networking system
  • One or more computing devices, appliances, and the like may advantageously distribute and/or synchronize content.
  • a plurality of computing devices may distribute content to various appliances.
  • the content management module 130 for the desktop 102 may retrieve a copy of the file "a" from the storage device 140.
  • the content management module 130 may send a copy of the file "a” to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file "a” and may store the copy of the file "a” in the storage device 150.
  • the content management module 132 for the laptop 104 may retrieve a copy of the file "b" from the storage device 142.
  • the content management module 132 may send a copy of the file "b" to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file “b” and may store the copy of the file “b” in the storage device 150.
  • the content management module 138 for the desktop 1 14 may retrieve a copy of the file “c” from the storage device 148.
  • the content management module 138 may send a copy of the file “c” to the appliance 1 16.
  • the content management module 126 for the appliance 116 may receive the copy of the file "c” and may store the copy of the file "c” in the storage device 154. As shown in Figures IA and 12C, the content may be distributed further.
  • the content management module 122 for the appliance 106 may retrieve a copy of the file “a” in any suitable manner and may send a copy of the file “a” to the laptop 104.
  • the content management module 132 for the laptop 104 may receive the copy of the file “a” and may store the copy of the file “a” in the storage device 142.
  • the content management module 126 for the appliance 116 may retrieve a copy of the file “c” and may send the copy of the file “c” to the appliance 106.
  • the content management module 122 for the appliance 106 may receive the copy of the file "c,” may store the copy of the file "c” in the storage device 150, and may send the copy of the file “c” to the laptop 104.
  • the content management module 132 for the laptop 104 may receive the copy of the file “c” and may store the copy of the file “c” in the storage device 142.
  • a computing device such as, a laptop 156) may advantageously connect to the WAN 118 in any suitable manner.
  • the computing device may include one or more associated storage devices (such as, the storage device 158), a web browser (such as, a web browser 160), and/or a content management module (such as, a content management module 162).
  • the laptop 156 may connect to the WAN to distribute and/or synchronize content.
  • the browser 160, the content management module 162, or both may request access to content.
  • one or more content management modules associated with an appliance, a computing device, a server, or a combination thereof may send the content to the laptop 156.
  • the content management module 122 for the appliance 106 may retrieve a copy of the file "c” in any suitable manner.
  • the content management module 122 may send a copy of the file “c” to the laptop 156.
  • the content management module 162 for the laptop 156 may receive the file “c” and may store the file “c” on the storage device 158.
  • a person using the browser 160 to access a website, a web application, or the like hosted by the server 120 — may view from the website a displayed set of content that the person may access.
  • the server 120 may use the content management module 128 to request the content from the appliance 106.
  • the appliance 106 may send the content directly to the laptop 156, may send the content to the content management module 128 (which may send the content to the laptop 156), or may send the content in any other suitable manner.
  • the laptop 156 may be (but need not be) remotely located from some or all of the appliances 106 and 166, the desktops 102 and 114, the laptops 104 and-112, the server 120, and any associated storage devices. Of course, the laptop 156 may be in any suitable location relative to any other component of the networking environment 100. Further, although the laptop 156 may be a computing device generally uninvolved with the prior distribution and/or synchronization of content (such as, the files "a,” "b,” and "c"), it will be appreciated that any device may be configured as the laptop 156 without regard to whether the device was involved with the prior distribution and/or synchronization of content.
  • the laptop 104 could be disconnected from the appliance 106 and connected to the WAN 118 to continue the distribution and/or synchronization of content.
  • any other suitable computing devices may access, distribute, and/or synchronize content in any other suitable manner.
  • the content management module 128 of the server 120 may be configured to help authenticate and/or facilitate communication among two or more appliances, computing devices, web browsers, or the like. Accordingly, if desired, two or more appliances, computing devices, web browsers, or the like may establish communication and authenticate with each other. In one embodiment, the content management module 128 of the server 120 may be configured to facilitate communication among two or more appliances, computing devices, web browsers, or the like.
  • software, hardware, or both can be implemented using software, hardware, or both hardware and software.
  • the software may advantageously be configured to reside on an addressable storage medium and be configured to execute on one or more processors.
  • software, hardware, or both may include, by way of example, any suitable module ⁇ such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, variables, field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), controllers, computers, and firmware to implement those methods described above.
  • the functionality provided for in the software, hardware, or both may be combined into fewer components or further separated into additional components. Additionally, the components may advantageously be implemented to execute on one or more computing devices.
  • Embodiments within the scope of the present invention also include computer- readable media for carrying or having computer-executable instructions or data structures stored thereon.
  • Such computer-readable media can be any available media that can be accessed by a computing device.
  • Such computer- readable media can comprise any storage device or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a computing device.
  • Computer-executable instructions comprise, for example, instructions and data which cause a computing device to perform a certain function or group of functions.
  • Data structures include, for example, data frames, data packets, or other defined or formatted sets of data having fields that contain information that facilitates the performance of useful methods and operations.
  • Computer-executable instructions and data structures can be stored or transmitted on computer-readable media, including the examples presented above.

Abstract

A content management system may include a plurality of computing devices (102, 104, 108, 1 12, 1 14). One or more content management modules may manage content-related events among the computing devices, the appliances (106, 110, 116), or both. The content management modules may apply one or more rules to manage the content-related events The content-related events may help provide various content relationships, such as content backup and content subscription.

Description

CONTENT DISTRIBUTION AND SYNCHRONIZATION
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to communication. More specifically, the present invention relates to systems and methods for content distribution, content synchronization, and other suitable activities.
2. Related Technology
Computer and data communications networks continue to proliferate. Such networks - including wide area networks ("WANs") and local area networks ("LANs") - help increase productivity through sharing resources and transferring (or otherwise processing) voice and data. For example, in many systems, a file server may be connected to a network. Once connected to the network, a plurality of computers may access the file server to store and/or revise data files on the file server.
In some systems, computers may remotely access a file server, allowing a variety of persons in a variety of remote locations to collaborate on the same file. However, unreliable networks, unreliable hardware, and limited bandwidth can limit the effective collaboration in these systems. Further, because many businesses and individuals use incompatible networks, accessing the file server can often be difficult.
Accordingly, to collaborate, many persons choose to manually distribute original copies and any subsequent revisions using electronic mail ("e-mail"). Of course, this practice requires a person to diligently remember to circulate versions regularly to ensure that the other collaborators may see the latest revisions. Also, this requires a user to remember to address the e-mail to each recipient. This can be frustrating and time consuming for users that frequently share different files among different groups. Further, in some instances, attaching files to an e-mail message may result in truncated and/or corrupted files. Lastly, sending files via e-mail can waste a significant amount of storage space on an e-mail server — requiring users and/or system administrators to delete messages more often.
In some systems, computers may access a file server, allowing a person manually store a redundant copy of a data file on the file server. While helping to avoid some loss of data, this practice requires a person to diligently remember to store backups regularly to minimize data loss. Further, even with systems that backup data on scheduled intervals, the data loss between intervals can be significant. BRIEF SUMMARY OF EMBODIMENTS OF THE INVENTION
A need therefore exists for systems and methods that reduce some of the above- described disadvantages and problems, reduce all of the above-described disadvantages and problems, and/or reduce other disadvantages and problems.
In one embodiment, one or more appliances and/or one or more computing devices may communicate in a network. An appliance or a computing device may include a content management module configured to distribute and/or to synchronize content for backup purposes, for collaboration purposes, or for any other suitable purpose. In one embodiment, the content management modules may manage content- related events among the computing devices, the appliances, or both. The content management modules may apply one or more rules to manage the content-related events. The content-related events may help provide various content relationships, such as content backup, content subscription, or any other suitable content relationships.
For purposes of summarizing, some aspects, advantages, and novel features have been described. Of course, it is to be understood that not necessarily all such aspects, advantages, or features will be embodied in any particular embodiment of the invention.
Further, embodiments of the invention may comprise aspects, advantages, or features other than those that have been described. Some aspects, advantages, or features of embodiments of the invention may become more fully apparent from the following description and appended claims or may be learned by the practice of embodiments of the invention as set forth in this disclosure.
BRIEF DESCRIPTION OF THE DRAWINGS
To further clarify the above and other advantages and features of the present invention, a more particular description of the invention will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. Certain embodiments of the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Figure IA is a block diagram illustrating an exemplary embodiment of a networking system;
Figure IB is a block diagram illustrating an embodiment of the networking system shown in Figure IA;
Figure 2A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 2B is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 3B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figure 2 A and Figure 3 A may be performed; Figure 3C is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figure 2 A and Figure 3 A may be performed;
Figure 3D is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 3E is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 3D may be performed;
Figure 4A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 4B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 4A may be performed; Figure 4C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 4D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2 A and 4C may be performed;
Figure 5A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 5B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 5 A may be performed;
Figure 5C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA; Figure 5D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 5C may be performed;
Figure 6A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 6B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 6A may be performed;
Figure 6C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 6D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 2A and 6C may be performed;
Figure 7A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 7B is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA; Figure 8 A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 8B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 8 A may be performed;
Figure 8C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 8D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7 A and 8C may be performed;
Figure 8E is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 8C may be performed; Figure 9A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure 1 A;
Figure 9B is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9A may be performed;
Figure 9C is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 9D is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
Figure 9E is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed; Figure 9F is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
Figure 1OA is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
Figure 1OB is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
Figure 1 OC is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
Figure 1 OD is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
Figure 1 OE is a block diagram of the networking system shown in Figure IA in which aspects of the methods shown in Figures 7A and 9C may be performed;
Figure HA is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional; Figure HB is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional;
Figure HC is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional;
Figure HD is a block diagram that illustrates an embodiment of the networking system shown in Figure IA in which appliances may be optional;
Figure 12A is a flowchart illustrating an exemplary method that may be performed using the networking system shown in Figure IA;
Figure 12B is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed; Figure 12C is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed;
Figure 12D is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed; and Figure 12E is a block diagram of an embodiment of the networking system shown in Figure IA in which aspects of the method shown in Figure 12A may be performed.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS EXEMPLARY NETWORKING SYSTEM
Figure IA is a block diagram illustrating an exemplary embodiment of a networking system 100 for implementing embodiments of the present invention. The networking system 100 may include one or more computing devices. As used herein, "computing device" is a broad term and is used in its ordinary meaning and may include, but is not limited to, devices such as, personal computers, desktop computers, laptop computers, palmtop computers, a general purpose computer, a special purpose computer, mobile telephones, personal digital assistants (PDAs), Internet terminals, multi-processor systems, hand-held computing devices, portable computing devices, microprocessor- based consumer electronics, programmable consumer electronics, network PCs, minicomputers, mainframe computers, computing devices that may generate data, computing devices that may have the need for storing data, and the like. As shown in Figure IA, the networking system 100 may include one or more appliances 106, 1 16, and 110, which are also examples of computing devices. Each appliance 106, 110, and 116 may be associated with one or more other computing devices. For example, a desktop computer 102 and a laptop computer 104 may be connected to the appliance 106; a PDA 108 may be connected to the appliance 1 10; and a laptop computer 112 and a desktop computer 1 14 may be connected to the appliance 1 16. Generally, each appliance can be associated with multiple computing devices and each computing device can be associated with multiple appliances.
As further illustrated in Figure IA, an appliance and any associated computing devices may be interconnected to form a network, such as a local area network. For example, the desktop computer 102, the laptop computer 104, and the appliance 106 may comprise a local area network; the PDA 108 and the appliance 1 10 may comprise a local area network; and the laptop computer 1 12, the desktop computer 1 14, and the appliance 116 may comprise a local area network. An appliance and any associated computing devices may be interconnected using any other suitable network including, but not limited to, a local area network, a WAN, the Internet, any other network, any other connection, or any combination thereof. Also, an appliance and any associated computing devices may be interconnected using one or more wired and/or wireless connections, if desired.
As shown in Figure IA, the networking environment 100 may include one or more networks, such as a network 1 18. The network 1 18 may comprise of a plurality of linked local area networks. Although illustrated as a wide-area network (WAN), the network 1 18 may comprise a local area network, a WAN, the Internet, any other network, any other connection, or any combination thereof. The networking environment 100 does not require the network 1 18. As shown in Figure IA, appliances, computing devices, servers, or a combination thereof may advantageously communicate via the network 118. In addition, the network 1 18 may be geographically widespread such that any appliance or computing device may be geographically remote from another appliance or associated computing device. An appliance and/or the appliance's associated computing devices may be positioned in any number of other suitable locations with respect to another appliance and/or one or more of its associated computing devices. As shown in Figure IA, the networking environment 100 may include a server
120, which may comprise one or more servers that may include one or more hardware modules, one or more software modules, or both.
The networking environment 100 may include a content management system. The content management system may advantageously provide communication features, content creation features, content transfer features, content backup features, content sharing features, content distribution features, content synchronization features, any other suitable features, or any suitable combination thereof. As used herein, "content" is a broad term and is used in its ordinary meaning and includes, but is not limited to, software, documents, data, information, electronic files, any electronic materials that may be useful or desirable to backup, any electronic materials that may be useful or desirable to distribute in a network environment, any electronic materials that may be useful or desirable to synchronize in a network environment, any electronic materials that may be useful or desirable to make accessible from a remote location, any other electronic materials that may be useful or desirable to employ embodiments of the invention, and the like. The content management system may comprise a distributed system. The content management system may comprise one or more modules, which may comprise hardware components, software components, or both. The content management system may be implement using one or more computing devices, one or more appliances, one or more servers, or a combination thereof.
For example, the appliance 106 may include a content management module 122; the appliance 110 may include a content management module 124; and the appliance 116 may include a content management module 126. Similarly, a computing device, a server, or both may include module(s) related to content management as described herein. For example, the server 120 may include a content management module 128; the desktop 102 may include a content management module 130; the laptop 104 may include a content management module 132; the PDA 108 may include a content management module 134; the laptop 1 12 may include a content management module 136; and the desktop 114 may include a content management module 138. Figure IB is a block diagram illustrating an embodiment of the networking environment 100 in which appliances, computing devices, or both may include one or more associated storage devices or have access to storage devices (hard drives, Random access memory, flash memory, and the like) either locally or remotely. For example, the desktop 102 may include a storage device 140; the laptop 104 may include a storage device 142; the PDA 108 may include a storage device 144; the laptop 112 may include a storage device 146; and the desktop 1 14 may include a storage device 148. Similarly, the appliance 106 may include a storage device 150; the appliance 1 10 may include a storage device 152; and the appliance 116 may include a storage device 154. BACKUP & SYNCHRONIZATION
Figure 2A is a flowchart illustrating an exemplary method 200 for synchronizing content in a networking environment such as shown in Figures IA and IB. At a block 202, a content management system may create one or more content-management rules. The content-management rules may be identity-based, event-driven, or both. For example, the content management rules may associate one or more backup-related actions to be performed in response to one or more events. Exemplary events may include, but are not limited to, one or more of the following: content creation; content receipt; content modification; content deletion; content encryption; content download; content upload; content conversion; content corruption; virus detection; establishment of communication between a local device and the networking environment 100; establishment of communication between a remote device and the networking environment 100; passage of a predetermined period of time; a user logon to a device in the networking environment 100; a user logoff from a device in the networking environment 100; and any other suitable event. The content management rules may identify one or more backup-related actions to be performed in response to one or more events, in response to metadata associated with content, in response to other suitable factors, or any suitable combination thereof.
At a block 204, the content management system may distribute content to one or more identities, including one or more persons or discrete entities (such as, an application, a service, a module, an appliance, a computing device, or the like) that may be capable of accessing or otherwise interacting with content. At a block 206, the content management system may synchronize content by, for example, providing a version of the content to an identity. The content management system may synchronize content in response to any suitable event, such as, for example, content modification. Thus, in one exemplary embodiment, in response to modification of the content on a storage device associated with a source computing device, the content management system may provide a modified version of the content to an identity.
Figure 2B is a flowchart illustrating an exemplary method 220 for synchronizing content. At a block 222, the content management system may create one or more requests for content backup, which may be presented to a destination identity, a user of a destination identity, or the like. For example, the content management system may receive, via a first user interface, user input indicating a first user's desire to store content for backup purposes on one or more computing devices, appliances, or the like. At a block 224, the content management system may present the one or more requests for content backup to a destination identity, a user of a destination identity, or the like. For example, the content management system may, via a second user interface, display (to a user of an appliance, a user of a computing device, or the like) the first user's desire to store content. At a block 226, the content management system may receive (from a destination identity, a user of a destination identity, or the like) one or more responses to the one or more requests for content backup. For example, the content management system may receive, via the second user interface, user input indicating that the user of an appliance, a user of a computing device, or the like will permit (or will not permit) the requested content backup. As shown in Figure 2B, if the user input indicates that the user of an appliance, a user of a computing device, or the like will permit the requested content backup, the content management system may perform some or all of the method 200 (Figure 2A), which may comprise the blocks 202, 204, and 206. LOCAL APPLIANCE CONTENT BACKUP
Figure 3 A is a flowchart illustrating an exemplary method 300 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system (such as, one or more the content management modules 122, 124, 126, 128, 130, 132, 134, 136, 138 shown in Figure IA) may perform some or all of the method 300. Of course, the method 300 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 204 (Figure 2A) may comprise a block 204A (Figure 3A) in which the content management system may distribute a copy of content to a local appliance for backup purposes or the like. As shown in Figure 3A, the block 204A may comprise one or more blocks. At a block 302, a content management module for the source computer may send a copy of the content to a local appliance. At a block 304, a content management module for the local appliance may receive the copy of the content and, at a block 306, may store the copy of the content in a storage device associated with the local appliance.
Figures 3B and 3 C are block diagrams of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 300 (Figure 3A) may be performed. As shown in Figure 3B, a file "a" may be stored on the storage device 140 of the desktop 102. As shown in Figures IA and 3B, the content management module 130 for the desktop 102 may send a copy of the file "a" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 150. As shown in Figure 3C, a file "b" may be stored on the storage device 142 of the laptop 104. As shown in Figures IA and 3C, the content management module 132 for the laptop 104 may send a copy of the file "b" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "b" and may store the copy of the file "b" in the storage device 150. SYNCHRONIZATION OF LOCAL APPLIANCE CONTENT BACKUP
Figure 3D is a flowchart illustrating an exemplary method 320 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 320. Of course, the method 320 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 206 (Figure 2A) may comprise a block 206A (Figure 3D) in which the content management system may synchronize content to a local appliance. As shown in Figure 3D, the block 206A may comprise one or more blocks. At a block 322, a content management module for the source computer may send a version of the content to a local appliance. At a block 324, a content management module for the local appliance may receive the version of the content and, at a block 326, may store the version of the content in a storage device associated with the local appliance. In response to receiving the received version of the content, the content management module for the local appliance may delete a prior version of the content. In one embodiment, the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Figure 3E is a block diagram of the networking environment 100 (Figures IA and
I B) in which some or all aspects of the methods 200 (Figure 2A) and 320 (Figure 3D) may be performed. As shown in Figures 3C and 3E, the file "a" stored on the storage device 140 (Figure 3C) may be modified to another version — a file "al " stored on the storage device 140 (Figure 3E).
In various examples in this application, a file may be referred to as file "a," file
"b," file "c," and so forth. In these examples, subsequent versions of files typically will include a number corresponding to a version, such as, file "al" for the first subsequent version and "a2" for the second subsequent version. It will be appreciated that such labels as "al " and "a2" are used for convenience only. Accordingly, if desired, subsequent versions of files could be named the same as, similar to, or entirely different from prior versions of files.
As shown in Figures IA and 3E, the content management module 130 for the desktop 102 may send a copy of the file "al" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "al " and may store the copy of the file "al" in the storage device 150.
LOCALCOMPUTINGDEVICECONTENTBACKUP
Figure 4A is a flowchart illustrating an exemplary method 400 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 400. Of course, the method 400 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 204 (Figure 2A) may comprise a block 204B
(Figure 4A) in which the content management system may distribute a copy of content to a local computing device (such as, a local computer) for backup purposes or the like. As shown in Figure 4A, the block 204B may comprise one or more blocks. At a block 402, a content management module for an appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like). At a block 404, the content management module for the local appliance may send the copy of the content to a local computer. At a block 406, a content management module for the local computer may receive the copy of the content and, at a block 408, may store the copy of the content in a storage device associated with the local computer.
Figure 4B is a block diagram of the networking environment 100 (Figures IA and 1 B) in which some or all aspects of the methods 200 (Figure 2A) and 400 (Figure 4A) may be performed. As shown in Figure 4B, a file "a" may be stored on the storage device
140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both. As shown in Figures IA and 4B, the content management module 122 for the appliance 106 may retrieve a copy of the file "a." The content management module 122 may retrieve a copy of the file "a" from the storage device 150. To retrieve a copy of the file "a," the content management module 122 may request a copy of the file "a" from the content management module 130 for the desktop 102, which may retrieve a copy of the file "a" from the storage device 140 and send that copy to the content management module 122. The content management module 122 may retrieve a copy of the file "a" in any other suitable manner.
As shown in Figures IA and 4B, the content management module 122 may send a copy of the file "a" to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 142. SYNCHRONIZATION OF LOCAL COMPUTING DEVICE CONTENT BACKUP
Figure 4C is a flowchart illustrating an exemplary method 420 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 420. Of course, the method 420 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 206 (Figure 2A) may comprise a block 206B (Figure 4C) in which the content management system may synchronize content to a local computing device (such as, a local computer). As shown in Figure 4C, the block 206B may comprise one or more blocks. At a block 422, a content management module for the source computer may send a version of the content to a local appliance. At a block 424, a content management module for the local appliance may receive the version of the content and, at a block 426, may store the version of the content in a storage device associated with the local appliance. In response to receiving the received version of the content, the content management module for the local appliance may delete a prior version of the content. In one embodiment, the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 426 is optional.
As shown in Figure 4C, at a block 428, the content management module for the local appliance may send the version of the content to a local computer. At a block 430, a content management module for the local computer may receive the version of the content and, at a block 432, may store the version of the content in a storage device associated with the local computer. In response to receiving the received version of the content, the content management module for the local computer may delete a prior version of the content. In one embodiment, the content management module for the local computer may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local computer may store any suitable number of versions (such as, 1 , 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the local computer need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
• Figure 4D is a block diagram of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 420 (Figure 4C) may be performed. As shown in Figures 4B and 4D, the file "a" stored on the storage device 140 (Figure 4B) may be modified to another version ~ file "al" stored on the storage device 140 (Figure 4D). As shown in Figures IA and 4D, the content management module 130 for the desktop 102 may send a copy of the file "al " to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "al," may store the copy of the file "al" in the storage device 150, and may send the copy of the file "al " to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "al" and may store the copy of the file "al" in the storage device 142. REMOTE APPLIANCE CONTENT BACKUP Figure 5A is a flowchart illustrating an exemplary method 500 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 500. Of course, the method 500 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 204 (Figure 2A) may comprise a block 204C (Figure 5A) in which the content management system may distribute a copy of content to a remote appliance for backup purposes or the like. As shown in Figure 5A, the block 204C may comprise one or more blocks. At a block 502, a content management module for a local appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like). At a block 504, the content management module for the local appliance may send the copy of the content to a remote appliance. At a block 506, a content management module for the remote appliance may receive the copy of the content and, at a block 508, may store the copy of the content in a storage device associated with the remote appliance.
Figure 5B is a block diagram of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 500 (Figure 5A) may be performed. As shown in Figure 5B, a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both. As shown in Figures IA and 5B, the content management module 122 for the appliance 106 may retrieve a copy of the file "a." The content management module 122 may retrieve a copy of the file "a" from the storage device 150. To retrieve a copy of the file "a," the content management module 122 may request a copy of the file "a" from the content management module 130 for the desktop 102, which may retrieve a copy of the file "a" from the storage device 140 and send that copy to the content management module 122. The content management module 122 may retrieve a copy of the file "a" in any other suitable manner. The content management module 122 may send a copy of the file "a" to the appliance 1 16. The content management module 126 for the appliance 116 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 154 SYNCHRONIZATION OF REMOTE APPLIANCE CONTENT BACKUP
Figure 5C is a flowchart illustrating an exemplary method 520 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 520. Of course, the method 520 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 206 (Figure 2A) may comprise a block 206C (Figure 5C) in which the content management system may synchronize content to a remote appliance. As shown in Figure 5C, the block 206C may comprise one or more blocks. At a block 522, a content management module for the source computer may send a version of the content to a local appliance. At a block 524, a content management module for the local appliance may receive the version of the content and, at a block 526, may store the version of the content in a storage device associated with the local appliance. In response to receiving the received version of the content, the content management module for the local appliance may delete a prior version of the content. In one embodiment, the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the contact management module of the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 526 is optional.
As shown in Figure 5C, at a block 528, the content management module for the local appliance may send the version of the content to a remote appliance. At a block 530, a content management module for the remote appliance may receive the version of the content and, at a block 532, may store the version of the content in a storage device associated with the remote appliance. In response to receiving the received version of the content, the content management module for the remote appliance may delete a prior version of the content. In one embodiment, the content management module for the remote appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the remote appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the contact management module for the remote appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
Figure 5D is a block diagram of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 520 (Figure 5D) may be performed. As shown in Figures 5B and 5D, the file "a" stored on the storage device 140 (Figure 5B) may be modified to another version — file "al " stored on the storage device 140 (Figure 5D). As shown in Figures IA and 5D, the content management module 130 for the desktop 102 may send a copy of the file "al" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "al" and may store the copy of the file "al " in the storage device 150. The content management module 122 may send copy of the file "al" to the appliance 116. The content management module 126 for the appliance 1 16 may receive copy of the file "al" and may store the copy of the file "al" in the storage device 154. REMOTE COMPUTING DEVICE CONTENT BACKUP
Figure 6A is a flowchart illustrating an exemplary method 600 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 600. Of course, the method 600 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 204 (Figure 2A) may comprise a block 204D (Figure 6A) in which the content management system may distribute a copy of content to a remote computing device (such-as, a remote computer) for backup purposes or the like. As shown in Figure 6A, the block 204D may comprise one or more blocks. At a block 602, a content management module for a local appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like). At a block 604, the content management module for the local appliance may send the copy of the content to a remote appliance. At a block 606, a content management module for the remote appliance may receive the copy of the content and, at a block 608, may optionally store the copy of the content in a storage device associated with the remote appliance. At a block 610, the content management module for the remote appliance may send the copy of the content to the remote computer. At a block 612, a content management module for the remote computer may receive the copy of the content and, at a block 614, may store the copy of the content in a storage device associated with the remote computer.
Figure 6B is a block diagram of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 200 (Figure 2A) and 600 (Figure 6A) may be performed. As shown in Figure 6B, a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both. As shown in Figures IA and 6B, the content management module 122 for the appliance 106 may retrieve a copy of the file "a." The content management module 122 may retrieve a copy of the file "a" from the storage device 150. To retrieve a copy of the file "a," the content management module 122 may request a copy of the file "a" from the content management module 130 for the desktop 102, which may retrieve a copy of the file "a" from the storage device 140 and send that copy to the content management module 122. The content management module 122 may retrieve a copy of the file "a" in any other suitable manner.
As shown in Figure 6B, the content management module 122 may send a copy of the file "a" to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 142.
As shown in Figure 6B, the content management module 122 may send a copy of the file "a" to the appliance 1 16. The content management module 126 for the appliance 1 16 may receive the copy of the file "a," may store the copy of the file "a" in the storage device 154, and may send the copy of the file "a" to the laptop 1 12. The content management module 136 for the laptop 1 12 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 146.
As shown in Figure 6B, the content management module 122 may send a copy of the file "a" to the appliance 1 10. The content management module 124 for the appliance 1 10 may receive the copy of the file "a" and may send the copy of the file "a" to the PDA 108. The content management module 134 for the PDA 108 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 144. SYNCHRONIZATION OF REMOTE COMPUTING DEVICE CONTENT BACKUP Figure 6C is a flowchart illustrating an exemplary method 620 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and I B. In one embodiment, a content management system may perform some or all of the method 620. Of course, the method 620 may be performed by any other suitable system and in any other suitable environment. In one embodiment, the block 206 (Figure 2A) may comprise a block 206D
(Figure 6C) in which the content management system may synchronize content to a remote computing device (such as, a remote computer) for backup purposes or the like. As shown in Figure 6C, the block 206D may comprise one or more blocks. At a block 622, a content management module for the source computer may send a version of the content to a local appliance. A content management module for the local appliance may receive the version of the content and, at a block 624, may store the version of the content in a storage device associated with the local appliance. In response to receiving the received version of the content, the content management module for the local appliance may delete a prior version of the content. In one embodiment, the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prioij version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local appliance may store any suitable number of versions (such as, 1 , 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the contact management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 624 is optional. As shown in Figure 6C, at a block 626, the content management module for the local appliance may optionally send the version of the content to one or more local computing devices (such as, local computers) for backup purposes or the like. In response to receiving the received version of the content, a content management module for the local computer may store the received version of the content in a storage device associated with the local computer. In one embodiment, the content management module for the local computer may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local computer may store any suitable number of versions (such as, 1 , 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the local computer need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local computer need not store any content for backup purposes; thus, the block 626 is optional. As shown in Figure 6C, at a block 628, the content management module for the local appliance may send the version of the content to a remote appliance. At a block 630, a content management module for the remote appliance may receive the version of the content and, at a block 632, may store the version of the content in a storage device associated with the remote appliance. In response to receiving the received version of the content, the content management module for the remote appliance may delete a prior version of the content. In one embodiment, the content management module for the remote appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the remote appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the remote appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the remote appliance need not store any content for backup purposes; thus, the block 632 is optional.
As shown in Figure 6C, at a block 634, the content management module for the remote appliance may send the version of the content to one or more remote computing devices (such as, remote computers). In response to receiving the received version of the content, a content management module for the remote computer may store the received version of the content in a storage device associated with the remote computer. In response to receiving the received version of the content, a content management module for the remote computer may delete a prior version of the content. In one embodiment, the content management module for the remote computer may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the remote computer may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the remote computer need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version.
Figure 6D is a block diagram of the networking environment 100 (Figures IA and 1 B) in which some or all aspects of the methods 200 (Figure 2A) and 620 (Figure 6C) may be performed. As shown in Figures 6B and 6D, the file "a" stored on the storage device 140 (Figure 6B) may be modified to another version ~ file "al" stored on the storage device 140 (Figure 6D).
As shown in Figures IA and 6D, the content management module 130 for the desktop 102 may send a copy of the file "al" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "al" and may store the copy of the file "al " in the storage device 150.
As shown in Figures IA and 6D, the content management module 122 for the appliance 106 may send copy of the file "al " to the laptop 104. The content management module 132 for the laptop 104 may receive copy of the file "al" and may store the copy of the file "al" in the storage device 142.
As shown in Figures IA and 6D, the content management module 122 for the appliance 106 may send copy of the file "al" to the appliance 1 16. The content management module 126 for the appliance 1 16 may receive the copy of the file "al," may store the copy of the file "al" in the storage device 154, may delete the file "a" from the storage device 154, and may send the copy of the file "al " to the laptop 1 12. The content management module 136 for the laptop 1 12 may receive the copy of the file "al" and may store the copy of the file "al" in the storage device 146.
As shown in Figures IA and 6D, the content management module 122 for the appliance 106 may send copy of the file "al " to the appliance 1 10. The content management module 124 for the appliance 1 10 may receive the copy of the file "al" and may send the copy of the file "al " to the PDA 108. The content management module 134 for the PDA 108 may receive the copy of the file "al ," may store the copy of the file "al " in the storage device 144, and may delete the file "a" from the storage device 144. CONTENT SUBSCRIPTION & SYNCHRONIZATION Figure 7A is a flowchart illustrating an exemplary method 700 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system (such as, one or more the content management modules 122, 124, 126, 128, 130, 132, 134, 136, 138 shown in Figure IA) may perform some or all of the method 700. Of course, the method 700 may be performed by any other suitable system and in any other suitable environment.
As shown in Figure 7A, at a block 702, the content management system may create one or more content-management rules. The contact management system may implement one or more content-management rules that may be identity-based, event- driven, or both. For example, in one embodiment, at the block 702, the content management rules may associate one or more content-subscription-related actions to be performed in response to one or more events. Exemplary events may include, for example, one or more of the following: content creation; content receipt; content modification; content deletion; content encryption; content download; content upload; content conversion; content corruption; virus detection; establishment of communication between a local device and the networking environment 100; establishment of communication between a remote device and the networking environment 100; passage of a predetermined period of time; a user logon to a device in the networking environment 100; a user logoff from a device in the networking environment 100; and any other suitable event. The content management rules may identify one or more content- subscription-related actions to be performed in response to one or more events, in response to metadata associated with content, in response to other suitable factors, or any suitable combination thereof. The contact management system may optionally comprise embodiments of the content management systems and methods there alike.
As shown in Figure 7A, at a block 704, the content management system may distribute content to one or more identities, including one or more persons or discrete entities (such as, an application, a service, a module or the like) that may be capable of accessing or otherwise interacting with content. At a block 706, the content management system may synchronize content by, for example, providing a version of the content to an identity. The content management system may synchronize content in response to any suitable event, such as, for example, content modification. Thus, in one exemplary embodiment, in response to modification of the content on a storage device associated with a source computing device, the content management system may provide a modified version of the content to an identity.
Figure 7B is a flowchart illustrating an exemplary method 720 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 720. Of course, the method 720 may be performed by any other suitable system and in any other suitable environment.
As shown in Figure 7B, at a block 722, the content management system may create one or more offers for content subscription, which may be presented to a destination identity, a user of a destination identity, or the like. For example, the content management system may receive, via a first user interface, user input indicating a first user's desire to share content for collaboration purposes. The user may desire content stored one or more storage devices associated with a computing device, an appliance, or the like. At a block 724, the content management system may present the one or more offers for content subscription to a destination identity, a user of a destination identity, or the like. For example, the content management system may, via a second user interface, display (to a user of an appliance, a user of a computing device, or the like) the first user's desire to share content. At a block 226, the content management system may receive (from a destination identity, a user of a destination identity, or the like) one or more responses to the one or more requests for content backup. For example, the content management system may receive, via the second user interface, user input indicating that the user of an appliance, a user of a computing device, or the like accepts (or rejects) the offered content. In one embodiment, the second user interface may receive user input identifying a location, such as, a location identifier indicating a location where the offered content may be stored in a storage device associated with the user's appliance, computing device, or the like. Accordingly, content could be distributed to and/or synchronized to the location identified by the user input. As shown in Figure 7B, if the user input indicates that the user of an appliance, a user of a computing device, or the like will accepts the offered content, the content management system may perform some or all of the method 700 (Figure 7A), which may comprise the blocks 702, 704, and 706. Thus, advantageously, a first user may share content with a second user and that shared content may be synchronized in any suitable manner.
In one embodiment, a first user may offer to share content with a second user and may allow (or deny) the second user the ability to share content with other users. For example, the content management system may receive, via a user interface, user input indicating the first user's desire to share content with the second user and to deny the second user the ability to share (via the content management system) the content with other users. LOCAL COMPUTING DEVICE CONTENT SUBSCRIPTION
Figure 8A is a flowchart illustrating an exemplary method 800 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 800. Of course, the method 800 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 704 (Figure 7A) may comprise a block 704A (Figure 8A) in which the content management system may distribute a copy of content to a local computing device (such as, a local computer) for collaboration purposes or the like. As shown in Figure 8A, the block 704A may comprise one or more blocks. At a block 802, a content management module for an appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like). At a block 804, the content management module for the appliance may send the copy of the content to a local computer. At a block 806, a content management module for the local computer may receive the copy of the content and, at a block 808, may store the copy of the content in a storage device associated with the local computer.
Figure 8B is a block diagram of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 800 (Figure 8A) may be performed. As shown in Figure 8B, a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both.
As shown in Figures IA and 8B, the content management module 122 for the appliance 106 may retrieve a copy of the file "a." The content management module 122 may retrieve a copy of the file "a" from the storage device 150. To retrieve a copy of the file "a," the content management module 122 may request a copy of the file "a" from the content management module 130 for the desktop 102, which may retrieve a copy of the file "a" from the storage device 140 and send that copy to the content management module 122. The content management module 122 may retrieve a copy of the file "a" in any other suitable manner.
As shown in Figures IA and 8B, the content management module 122 may send a copy of the file "a" to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 142.
SYNCHRONIZATION OF LOCAL COMPUTING DEVICE CONTENT SUBSCRIPTION Figure 8C is a flowchart illustrating an exemplary method 820 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 820. Of course, the method 820 may be performed by any other suitable system and in any other suitable environment. In one embodiment, the block 706 (Figure 7A) may comprise a block 706A
(Figure 8C) in which the content management system may synchronize content to a local computing device (such as, a local computer). As shown in Figure 8C, the block 706 A may comprise one or more blocks. At a block 822, a content management module for the source computer may send a version of the content to a local appliance. At a block 824, a content management module for the local appliance may receive the version of the content and, at a block 826, may store the version of the content in a storage device associated with the local appliance. In response to receiving the received version of the content, the content management module for the local appliance may delete a prior version of the content. In one embodiment, the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 826 is optional. As shown in Figure 8C, at a block 828, the content management module for the local appliance may send the version of the content to a local computer. A content management module for the local computer may receive the version of the content. In response to receiving the received version of the content, at a block 830, the content management module for the local computer may store the version of the content in a storage device associated with the local computer and may overwrite (or otherwise delete) any prior version of the content on the storage device associated with the local computer.
Figures 8D and 8E are block diagrams of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 820 (Figure 8C) may be performed. As shown in Figures 8B and 8D, the file "a" stored on the storage device 142 (Figure 8B) may be modified to another version — file "al" stored on the storage device 142 (Figure 8D). As shown in Figures IA and 8D, the content management module 132 for the laptop 104 may send a copy of the file "al " to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "al" and may store the copy of the file "al" in the storage device 150. The content management module 122 may send copy of the file "al" to the desktop 102. The content management module 130 for the desktop 102 may receive copy of the file "al" and may store the copy of the file "al" in the storage device 140.
As shown in Figures 8D and 8E, the file "al" stored on the storage device 140 (Figure 8D) may be modified to another version — file "a2" stored on the storage device 140 (Figure 8E). As shown in Figures IA and 8E, the content management module 130 for the desktop 102 may send a copy of the file "a2" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "a2" and may store the copy of the file "a2" in the storage device 150. The content management module 122 may send copy of the file "a2" to the laptop 104. The content management module 132 for the laptop 104 may receive copy of the file "a2" and may store the copy of the file "a2" in the storage device 142. REMOTE COMPUTING DEVICE CONTENT SUBSCRIPTION
Figure 9A is a flowchart illustrating an exemplary method 900 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 900. Of course, the method 900 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 704 (Figure 7A) may comprise a block 704B (Figure 9A) in which the content management system may distribute a copy of content to a remote computing device (such as, a remote computer) for collaboration purposes or the like. As shown in Figure 9A, the block 704B may comprise one or more blocks. At a block 902, a content management module for a local appliance may retrieve a copy of the content from a suitable resource (such as, a storage device associated with the appliance, a content management module for a source computer, or the like). At a block 904, the content management module for the local appliance may send the copy of the content to a remote appliance. At a block 906, a content management module for the remote appliance may receive the copy of the content and, at a block 908, may optionally store the copy of the content in a storage device associated with the remote appliance. At a block 910, the content management module for the remote appliance may send the copy of the content to the remote computer. At a block 912, a content management module for the remote computer may receive the copy of the content and, at a block 914, may store the copy of the content in a storage device associated with the remote computer.
Figure 9B is a block diagram of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 900 (Figure 9A) may be performed. As shown in Figure 9B, a file "a" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both. As shown in Figures IA and 9B, the content management module 122 for the appliance 106 may retrieve a copy of the file "a." The content management module 122 may retrieve a copy of the file "a" from the storage device 150. To retrieve a copy of the file "a," the content management module 122 may request a copy of the file "a" from the content management module 130 for the desktop 102, which may retrieve a copy of the file "a" from the storage device 140 and send that copy to the content management module 122. The content management module 122 may retrieve a copy of the file "a" in any other suitable manner.
As shown in Figure 9B, the content management module 122 may send a copy of the file "a" to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 142.
As shown in Figure 9B, the content management module 122 may send a copy of the file "a" to the appliance 1 16. The content management module 126 for the appliance 116 may receive the copy of the file "a," may store the copy of the file "a" in the storage device 154, and may send the copy of the file "a" to the desktop 114. The content management module 138 for the desktop 114 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 148.
SYNCHRONIZATION OF REMOTE COMPUTING DEVICE CONTENT SUBSCRIPTION
Figure 9C is a flowchart illustrating an exemplary method 920 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 920. Of course, the method 920 may be performed by any other suitable system and in any other suitable environment.
In one embodiment, the block 706 (Figure 7A) may comprise a block 706B (Figure 9C) in which the content management system may synchronize content to a remote computing device (such as, a remote computer) for collaboration purposes or the like. As shown in Figure 9C, the block 706B may comprise one or more blocks. At a block 922, a content management module for the source computer may send a version of the content to a local appliance. A content management module for the local appliance may receive the version of the content and, at a block 924, may store the version of the content in a storage device associated with the local appliance. In response to receiving the received version of the content, the content management module for the local appliance may delete a prior version of the content. In one embodiment, the content management module for the local appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the local appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the contact management module for the local appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the local appliance need not store the version of the content at any time; thus, the block 924 is optional. As shown in Figure 9C, at a block 926, the content management module for the local appliance may optionally send the version of the content to one or more local computing devices (such as, local computers) for collaboration purposes or the like. In response to receiving the received version of the content, a content management module for the local computer may store the received version of the content in a storage device associated with the local computer and may overwrite (or otherwise delete) any prior version of the content on the storage device associated with the local computer.
As shown in Figure 9C, at a block 928, the content management module for the local appliance may send the version of the content to a remote appliance. A content management module for the remote appliance may receive the version of the content and, at a block 930, may store the version of the content in a storage device associated with the remote appliance. In response to receiving the received version of the content, the content management module for the remote appliance may delete a prior version of the content. In one embodiment, the content management module for the remote appliance may, when the received version of the content exceeds a predetermined limit of versions, delete a prior version of the content (such as, the oldest prior version) in response to receiving the received version. The content management module for the remote appliance may store any suitable number of versions (such as, 1, 2, 3, 4, 5, 6, 7, 8, or more versions) for any suitable number of files from any suitable number of computing devices. Of course, the content management module for the remote appliance need not store multiple versions and may, for example, delete any prior version of the content in response to receiving the received version. Further, the remote appliance need not store any content for collaboration purposes; thus, the block 930 is optional.
As shown in Figure 9C, at a block 932, the content management module for the remote appliance may send the version of the content to one or more remote computing devices (such as, remote computers). In response to receiving the received version of the content, a content management module for the remote computer may store the received version of the content in a storage device associated with the remote computer and overwrite (or otherwise delete) any prior version of the content on the storage device associated with the remote computer.
Figures 9D, 9E, and 9F are block diagrams of the networking environment 100 (Figures IA and IB) in which some or all aspects of the methods 700 (Figure 7A) and 920 (Figure 9C) may be performed. As shown in Figures 9B and 9D, the file "a" stored on the storage device 142 (Figure 9B) may be modified to another version — file "al" stored on the storage device 142 (Figure 9D).
As shown in Figures IA and 9D, the content management module 132 for the laptop 104 may send a copy of the file "al" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "al" and may store the copy of the file "al" in the storage device 150. As shown in Figures IA and 9D, the content management module 122 for the appliance 106 may send copy of the file "al" to the desktop 102. The content management module 130 for the desktop 102 may receive copy of the file "al," may store the copy of the file "al" in the storage device 140, and may delete the file "a" from the storage device 140. As shown in Figures IA and 9D, the content management module 122 for the appliance 106 may send copy of the file "al " to the appliance 1 16. The content management module 126 for the appliance 116 may receive the copy of the file "al," may store the copy of the file "al " in the storage device 154 and may send the copy of the file "al " to the desktop 1 14. The content management module 138 for the desktop 1 14 may receive the copy of the file "al," may store the copy of the file "al" in the storage device 148, and may delete the file "a" from the storage device 148.
As shown in Figures 9D and 9E, the file "al " stored on the storage device 148 (Figure 9D) may be modified to another version — file "a2" stored on the storage device 148 (Figure 9E). As shown in Figures IA and 9E, the content management module 138 for the desktop 1 14 may send a copy of the file "a2" to the appliance 1 16. The content management module 126 for the appliance 1 16 may receive the copy of the file "a2" and may store the copy of the file "a2" in the storage device 154. As shown in Figures IA and 9E, the content management module 126 for the appliance 1 16 may send copy of the file "a2" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "a2," may store the copy of the file "a2" in the storage device 150, may send the copy of the file "a2" to the desktop 102, and may send the copy of the file "a2" to the laptop 104. The content management module 130 for the desktop 102 may receive the copy of the file "a2," may store the copy of the file "a2" in the storage device 140, and may delete the file "al" from the storage device 140. The content management module 132 for the laptop 104 may receive the copy of the file "a2," may store the copy of the file "a2" in the storage device 140, and may delete the file "al" from the storage device 140. As shown in Figures 9E and 9F, the file "a2" stored on the storage device 140
(Figure 9E) may be modified to another version — file "a3" stored on the storage device 140 (Figure 9F).
As shown in Figures IA and 9F, the content management module 130 for the desktop 102 may send a copy of the file "a3" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "a3" and may store the copy of the file "a3" in the storage device 150.
As shown in Figures IA and 9F, the content management module 122 for the appliance 106 may send copy of the file "a3" to the laptop 104. The content management module 132 for the laptop 104 may receive copy of the file "a3," may store the copy of the file "a3" in the storage device 142, and may delete the file "a2" from the storage device 142.
As shown in Figures IA and 9F, the content management module 122 for the appliance 106 may send copy of the file "a3" to the appliance 116. The content management module 126 for the appliance 116 may receive the copy of the file "a3," may store the copy of the file "a3" in the storage device 154, and may send the copy of the file "a3" to the desktop 114. The content management module 138 for the desktop 114 may receive the copy of the file "a3," may store the copy of the file "a3" in the storage device 148, and may delete the file "a2" from the storage device 148.
Figures 1OA, 1OB, 1OC, 10D, and 1OE are block diagrams of the networking environment 100 (Figures 1 A and 1 B) in which some or all aspects of the methods 700 (Figure 7A), 900 (Figure 9A), and 920 (Figure 9C) may be performed.
As shown in Figure 1OA, a file "a" may be stored on the storage device 148 of the desktop 114, may be stored on the storage device 154 of the appliance 116, or both. Also, a file "b" may be stored on the storage device 144 of the PDA 108, may be stored on the storage device 152 of the appliance 110, or both.
As shown in Figures IA and 1OB, the content management module 126 for the appliance 1 16 may retrieve a copy of the file "a." The content management module 126 may retrieve a copy of the file "a" from the storage device 154. To retrieve a copy of the file "a," the content management module 126 may request a copy of the file "a" from the content management module 138 for the desktop 114, which may retrieve a copy of the file "a" from the storage device 148 and send that copy to the content management module 126. The content management module 126 may retrieve a copy of the file "a" in any other suitable manner. As shown in Figures IA and Figure 1OB, the content management module 126 may send a copy of the file "a" to the appliance 1 10. The content management module 124 for the appliance 110 may receive the copy of the file "a," may store the copy of the file "a" in the storage device 152, and may send the copy of the file "a" to the PDA 108. The content management module 134 for the PDA 108 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 144.
As shown in Figures IA and 1OB, the content management module 124 for the appliance 1 10 may retrieve a copy of the file "b." The content management module 124 may retrieve a copy of the file "b" from the storage device 152. To retrieve a copy of the file "b," the content management module 124 may request a copy of the file "b" from the content management module 134 for the PDA 108, which may retrieve a copy of the file "b" from the storage device 144 and send that copy to the content management module 124. The content management module 124 may retrieve a copy of the file "b" in any other suitable manner.
As shown in Figures IA and 1OB, the content management module 124 may send a copy of the file "b" to the appliance 1 16. The content management module 126 for the appliance 1 16 may receive the copy of the file "b," may store the copy of the file "b" in the storage device 154, and may send the copy of the file "b" to the desktop 1 14. The content management module 138 for the desktop 1 14 may receive the copy of the file "b" and may store the copy of the file "b" in the storage device 148. As shown in Figures 1OB and 1OC, the file "b" stored on the storage device 148
(Figure 10B) may be modified to another version — file "bl " stored on the storage device 148 (Figure 10C).
As shown in Figures IA and 1OC, the content management module 138 for the desktop 114 may send a copy of the file "bl" to the appliance 1 16. The content management module 126 for the appliance 116 may receive the copy of the file "bl" and may store the copy of the file "bl" in the storage device 154.
As shown in Figures IA and 1OC, the content management module 126 for the appliance 1 16 may send copy of the file "bl" to the appliance 110. The content management module 124 for the appliance 110 may receive the copy of the file "bl," may store the copy of the file "bl" in the storage device 152 and may send the copy of the file "bl " to the PDA 108. The content management module 134 for the PDA 108 may receive the copy of the file "bl," may store the copy of the file "bl" in the storage device 144, and may delete the file "b" from the storage device 144. As shown in Figures IA and 10D, a file "c" may be stored on the storage device
142 of the laptop 104. The content management module 132 for the laptop 104 may send a copy of the file "c" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "c" and may store the copy of the file "c" in the storage device 150. As shown in Figures IA and 1OE, the content management module 122 for the appliance 106 may retrieve a copy of the file "c." The content management module 122 may retrieve a copy of the file "c" from the storage device 150. To retrieve a copy of the file "c," the content management module 122 may request a copy of the file "c" from the content management module 132 for the laptop 104, which may retrieve a copy of the file "c" from the storage device 142 and send that copy to the content management module 122. The content management module 122 may retrieve a copy of the file "c" in any other suitable manner.
As shown in Figures IA and 1OE, the content management module 122 may send a copy of the file "c" to the appliance 110. The content management module 124 for the appliance 1 10 may receive the copy of the file "c," may store the copy of the file "c" in the storage device 152, and may send the copy of the file "c" to the PDA 108. The content management module 134 for the PDA 108 may receive the copy of the file "c" and may store the copy of the file "a" in the storage device 144.
DISTRIBUTION AND SYNCHRONIZATION OF CONTENT
In distributing and/or synchronizing content for backup purposes, for collaboration purposes or for any other suitable purpose, any computing device may optionally distribute different content to different sets of destination appliances, destination computing devices, and the like. For example, in one embodiment, a computing device may distribute a first set of content to a first set of one or more destination devices and distribute another set of content to another set of one or more destination devices. Likewise, any computing device may receive different content from different source appliances, source computing devices, and the like. For example, in one embodiment, a computing device may receive a first set of content from one source device and may receive a second set of content from another source device. Accordingly, because a computing device may distribute various content to ~ and may receive various content from — one or more other devices in a virtually unlimited number of configurations, the networking system 100 may be customized and scaled to meet the needs of many businesses and individuals.
DIRECTLY DISTRIBUTING AND SYNCHRONIZING CONTENT
In one embodiment, a computing device may distribute and/or synchronize content without being associated with an appliance. Accordingly, while appliances have advantages, the networking system 100 does not require any appliances. For example, Figure HA is a block diagram that illustrates an embodiment of the networking system 100 in which one or more computing devices may distribute and/or synchronize content in any suitable manner without using an appliance.
■ In one embodiment, some or all of a set of computing devices do not require an appliance and may distribute and/or synchronize content in any suitable manner. For example, Figures 1 IB-I ID are block diagrams of an embodiment of the networking system 100 in which appliances may be optional.
As shown in Figure 1 IB, a file "a" may be stored on the storage device 144 of the PDA 108. Also, a file "b" may be stored on the storage device 140 of the desktop 102, may be stored on the storage device 150 of the appliance 106, or both. Also, a file "c" may be stored on the storage device 146 of the laptop 112.
As shown in Figures IA and HB, the content management module 134 for the PDA 108 may retrieve a copy of the file "a" from the storage device 144. The content management module 134 may send a copy of the file "a" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "a," may store the copy of the file "a" in the storage device 150, and may send the copy of the file "a" to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 142. As shown in Figures IA and HC, the content management module 130 for the desktop 102 may retrieve a copy of the file "b" from the storage device 140. The content management module 130 may send a copy of the file "b" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "b," may store the copy of the file "b" in the storage device 150, and may send the copy of the file "b" to the PDA 108. The content management module 134 for the PDA 108 may receive the copy of the file "b" and may store the copy of the file "b" in the storage device 144.
As shown in Figures IA and HD, the content management module 136 for the laptop 1 12 may retrieve a copy of the file "c" from the storage device 146. The content management module 136 may send a copy of the file "c" to the PDA 108. The content management module 134 for the PDA 108 may receive the copy of the file "c" and may store the copy of the file "c" in the storage device 144.
As shown in Figures 1 IA-I ID, a plurality of computing devices may distribute content with or without the use of any appliance. Of course, if desired, a plurality of computing devices may distribute and/or synchronize content in any suitable fashion and for any suitable purpose with or without the use of any appliance. REMOTELY ACCESSING CONTENT
In one embodiment, a person may advantageously access content using a computing device generally uninvolved with the distribution and/or the synchronization of the particular content. For example, a businessperson may use an appliance to distribute and/or synchronize content among a few desktop computers at the businessperson' s office. Away on a business trip, the businessperson may remember some forgotten data files and may advantageously use a laptop to access those data files stored on a storage device associated with the appliance. Also, as an example, a person may use an appliance to backup photographs from a family reunion. Using a web browser, the family members may advantageously access a server that may advantageously retrieve one or more images files of the family reunion that are stored in a storage device associated with the appliance. Of course, any person could access content for any of a variety of other purposes. Further, any person could access content using any of a variety of other suitable computing devices, appliances, and the like.
In one embodiment, a computing device (such as, a remote computer) may access content distributed and/or synchronized by one or more other computing devices, one or more appliances, and the like. Figure 12A is a flowchart illustrating an exemplary method 1200 that may be performed using any suitable system, such as, the networking environment 100 shown in Figures IA and IB. In one embodiment, a content management system may perform some or all of the method 1200. The method 1200 may be performed by any other suitable system and in any other suitable environment.
As shown in Figure 12A, at a block 1202, a connection may be established between an appliance and a computing device (such as, a remote computer) using any suitable connection, protocol, or the like. The connection may be directly established via a network (such as, the WAN 118), may be indirectly established and/or brokered via a server (such as, the server 120), or may be established in any other suitable fashion. For example, a content management module for the remote computer, a content management module for the appliance, a content management module for a server, a web browser associated with the remote computer, or any combination thereof may establish a connection. Any other suitable components or devices could establish a connection.
At a block 1204, the remote computer may receive content from the appliance directly via a network, indirectly brokered via a server, or in any other suitable manner. For example, a content management module for the appliance could send the content to the remote computer directly via a network, could send the content to a server (which could send the content to the remote computer), or could send the content in any other suitable fashion. A content management module for the remote computer may receive the content, and, at a block 1206, may store the received content in a storage device associated with the remote computer.
At a block 1208, a content management module for the remote computer, a content management module for the appliance, a content management module for a server, a web browser associated with the remote computer, or any combination thereof may optionally synchronize and/or further distribute the received content in any suitable manner. For example, as described above, a computer need not use an appliance to distribute and/or synchronize content. Accordingly, if desired, the remote computer may advantageously be configured to synchronize and/or further distribute the received content. Of course, the remote computer need not synchronize and/or further distribute the received content. Figures 12B-12E are block diagrams of an embodiment of the networking system
100 in which some or all of the method 1200 (Figure 12A) may be performed.
One or more computing devices, appliances, and the like may advantageously distribute and/or synchronize content. For example, as shown in Figures IA and 12B, a plurality of computing devices may distribute content to various appliances. As shown, the content management module 130 for the desktop 102 may retrieve a copy of the file "a" from the storage device 140. The content management module 130 may send a copy of the file "a" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 150. Also, the content management module 132 for the laptop 104 may retrieve a copy of the file "b" from the storage device 142. The content management module 132 may send a copy of the file "b" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "b" and may store the copy of the file "b" in the storage device 150. Also, the content management module 138 for the desktop 1 14 may retrieve a copy of the file "c" from the storage device 148. The content management module 138 may send a copy of the file "c" to the appliance 1 16. The content management module 126 for the appliance 116 may receive the copy of the file "c" and may store the copy of the file "c" in the storage device 154. As shown in Figures IA and 12C, the content may be distributed further. For example, the content management module 122 for the appliance 106 may retrieve a copy of the file "a" in any suitable manner and may send a copy of the file "a" to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "a" and may store the copy of the file "a" in the storage device 142. Also, the content management module 126 for the appliance 116 may retrieve a copy of the file "c" and may send the copy of the file "c" to the appliance 106. The content management module 122 for the appliance 106 may receive the copy of the file "c," may store the copy of the file "c" in the storage device 150, and may send the copy of the file "c" to the laptop 104. The content management module 132 for the laptop 104 may receive the copy of the file "c" and may store the copy of the file "c" in the storage device 142.
As shown in Figures 12D, a computing device (such as, a laptop 156) may advantageously connect to the WAN 118 in any suitable manner. The computing device may include one or more associated storage devices (such as, the storage device 158), a web browser (such as, a web browser 160), and/or a content management module (such as, a content management module 162).
As shown in Figures 12E, the laptop 156 may connect to the WAN to distribute and/or synchronize content. In one embodiment, the browser 160, the content management module 162, or both may request access to content. In response to receiving the request, one or more content management modules associated with an appliance, a computing device, a server, or a combination thereof may send the content to the laptop 156.
For example, as shown in Figures IA and 12E, the content management module 122 for the appliance 106 may retrieve a copy of the file "c" in any suitable manner. The content management module 122 may send a copy of the file "c" to the laptop 156. The content management module 162 for the laptop 156 may receive the file "c" and may store the file "c" on the storage device 158.
As another example, a person ~ using the browser 160 to access a website, a web application, or the like hosted by the server 120 — may view from the website a displayed set of content that the person may access. Upon receiving user input identifying user- selected content from the set of available content, the server 120 may use the content management module 128 to request the content from the appliance 106. The appliance 106 may send the content directly to the laptop 156, may send the content to the content management module 128 (which may send the content to the laptop 156), or may send the content in any other suitable manner.
As shown in Figure 12E, it will be appreciated that the laptop 156 may be (but need not be) remotely located from some or all of the appliances 106 and 166, the desktops 102 and 114, the laptops 104 and-112, the server 120, and any associated storage devices. Of course, the laptop 156 may be in any suitable location relative to any other component of the networking environment 100. Further, although the laptop 156 may be a computing device generally uninvolved with the prior distribution and/or synchronization of content (such as, the files "a," "b," and "c"), it will be appreciated that any device may be configured as the laptop 156 without regard to whether the device was involved with the prior distribution and/or synchronization of content. For example, if desired, the laptop 104 could be disconnected from the appliance 106 and connected to the WAN 118 to continue the distribution and/or synchronization of content. Of course, any other suitable computing devices may access, distribute, and/or synchronize content in any other suitable manner.
For example, in one embodiment, the content management module 128 of the server 120 may be configured to help authenticate and/or facilitate communication among two or more appliances, computing devices, web browsers, or the like. Accordingly, if desired, two or more appliances, computing devices, web browsers, or the like may establish communication and authenticate with each other. In one embodiment, the content management module 128 of the server 120 may be configured to facilitate communication among two or more appliances, computing devices, web browsers, or the like.
The methods and systems described above can be implemented using software, hardware, or both hardware and software. For example, the software may advantageously be configured to reside on an addressable storage medium and be configured to execute on one or more processors. Thus, software, hardware, or both may include, by way of example, any suitable module ~ such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, variables, field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), controllers, computers, and firmware to implement those methods described above. The functionality provided for in the software, hardware, or both may be combined into fewer components or further separated into additional components. Additionally, the components may advantageously be implemented to execute on one or more computing devices.
Embodiments within the scope of the present invention also include computer- readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a computing device. By way of example, and not limitation, such computer- readable media can comprise any storage device or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a computing device.
When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer- readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and data which cause a computing device to perform a certain function or group of functions. Data structures include, for example, data frames, data packets, or other defined or formatted sets of data having fields that contain information that facilitates the performance of useful methods and operations. Computer-executable instructions and data structures can be stored or transmitted on computer-readable media, including the examples presented above.
The methods and systems described above require no particular component or function. Thus, any described component or function — despite its advantages — is optional. Also, some or all of the described components and functions may be used in connection with any number of other suitable components and functions. The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

CLAIMSWhat is claimed is:
1. In a networking environment that includes a first local area network including a first storage device, a first computing device, and a first appliance associated with the first computing device; and a second local area network including a second storage device, a second computing device, and a second appliance associated with the second computing device; the method comprising: receiving data indicating a request for a content distribution relationship, the content distribution relationship including an initial transmission of first content stored at the first storage device to the second storage device for storage as second content at the second storage device, the second content comprising a copy of the first content, the initial transmission at least partially made via the first appliance, the initial transmission at least partially made via the second appliance; displaying the request; and receiving a response to the request.
2. The method of Claim 1, wherein the content distribution relationship comprises a content backup relationship.
3. The method of Claim 1 , wherein the content distribution relationship comprises a content subscription relationship.
4. The method of Claim 1 , wherein the content distribution relationship includes a subsequent transmission of third content stored at the first storage device to the second storage device for storage as fourth content at the second storage device; the third content comprising another version of the first content; the fourth content comprising a copy of the third content; the subsequent transmission at least partially made via the first appliance; the subsequent transmission at least partially made via the second appliance.
5. The method of Claim 1 , wherein the content distribution relationship includes a subsequent transmission of third content stored at the second storage device to the first storage device for storage as fourth content at the first storage device; the third content comprising another version of the second content; the fourth content comprising a copy of the third content; the subsequent transmission at least partially made via the first appliance; the subsequent transmission at least partially made via the second appliance.
6. The method of Claim 1 , wherein the first computing device includes the first storage device, and wherein the second computing device includes the second storage device.
7. The method of Claim 1 , wherein the first appliance includes the first storage device, and wherein the second appliance includes the second storage device.
8. The method of Claim 1 , wherein a set of one or more rules define the content relationship and wherein the set of one or more rules are applied using one or more content management modules at least partially implemented within each of the first computing device, the first appliance, the second computing device, and the second appliance.
9. A networking system including: a first storage device; a second storage device a first appliance; a first computing device associated with the first appliance, the first computing device configured to create first data indicating a request for a content relationship; and a second computing device configured to receive second data indicating the request for the content relationship, to display the request at least partially in response to receiving the second data, and to receive a user input indicating a user response to the request; wherein the content relationship includes an initial transmission of first content stored at the first storage device to the second storage device for storage as second content at the second storage device; the second content comprising a copy of the first content; the initial transmission at least partially made via the first appliance.
10. The networking system of Claim 9, wherein the content distribution relationship comprises a content backup relationship.
1 1. The networking system of Claim 9, wherein the content distribution relationship comprises a content subscription relationship.
12. The networking system of Claim 9, wherein the content distribution relationship includes a subsequent transmission of third content stored at the first storage device to the second storage device for storage as fourth content at the second storage device; the third content comprising another version of the first content; the fourth content comprising a copy of the third content; the subsequent transmission at least partially made via the first appliance.
13. The networking system of Claim 9, wherein the content distribution relationship includes a subsequent transmission of third content stored at the second storage device to the first storage device for storage as fourth content at the first storage device; the third content comprising another version of the second content; the fourth content comprising a copy of the third content; the subsequent transmission at least partially made via the first appliance.
14. The networking system of Claim 9, wherein the second data is the first data.
15. In a network including a first storage device, a first computing device, a second storage device, a second computing device, and a first appliance associated with the first computing device; the method comprising: creating first data indicating a request for a content distribution relationship, the content distribution relationship including an initial transmission of first content stored at the first storage device to the second storage device for storage as second content at the second storage device, the second content comprising a copy of the first content, the initial transmission at least partially made via the first appliance; transmitting the first data; and receiving second data indicating a user response to the request.
16. The method of Claim 15, wherein the content distribution relationship comprises a content backup relationship.
17. The method of Claim 15, wherein the content distribution relationship comprises a content subscription relationship.
18. The method of Claim 15, wherein the first computing device and the first appliance are configured to communicate at least partially via a wireless communication connection.
19. The method of Claim 15, wherein the first appliance is associated with the second computing device and wherein the second computing device and the appliance are configured to communicate at least partially via a wireless communication connection.
20. The method of Claim 15, wherein a set of one or more rules define the content relationship and wherein the set of one or more rules are applied using one or more content management modules at least partially implemented within each of the first computing device, the appliance, the second computing device, and a server.
21. The method of Claim 15, wherein the network further includes a server and a second appliance, the second appliance associated with the second computing device, the server facilitating communication between the first appliance and the second appliance.
PCT/US2005/026652 2004-07-30 2005-07-28 Content distribution and synchronization WO2006015051A2 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US59263204P 2004-07-30 2004-07-30
US59267104P 2004-07-30 2004-07-30
US60/592,671 2004-07-30
US60/592,632 2004-07-30
US11/178,131 2005-07-08
US11/178,131 US20060026171A1 (en) 2004-07-30 2005-07-08 Content distribution and synchronization

Publications (3)

Publication Number Publication Date
WO2006015051A2 true WO2006015051A2 (en) 2006-02-09
WO2006015051A8 WO2006015051A8 (en) 2006-05-26
WO2006015051A3 WO2006015051A3 (en) 2007-09-13

Family

ID=35787798

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/026652 WO2006015051A2 (en) 2004-07-30 2005-07-28 Content distribution and synchronization

Country Status (1)

Country Link
WO (1) WO2006015051A2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019640A1 (en) * 2002-07-25 2004-01-29 Bartram Linda Ruth System and method for distributing shared storage for collaboration across multiple devices
US6832242B2 (en) * 2000-12-28 2004-12-14 Intel Corporation System and method for automatically sharing information between handheld devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6832242B2 (en) * 2000-12-28 2004-12-14 Intel Corporation System and method for automatically sharing information between handheld devices
US20040019640A1 (en) * 2002-07-25 2004-01-29 Bartram Linda Ruth System and method for distributing shared storage for collaboration across multiple devices

Also Published As

Publication number Publication date
WO2006015051A3 (en) 2007-09-13
WO2006015051A8 (en) 2006-05-26

Similar Documents

Publication Publication Date Title
US11789930B2 (en) Method and apparatus for a file sharing and synchronization system
US7650389B2 (en) Wireless system and method for managing logical documents
US20180278684A1 (en) System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US20060026171A1 (en) Content distribution and synchronization
US20110072365A1 (en) Distributed clipboard
US7584196B2 (en) Systems and methods for remote storage of electronic data
KR20040077566A (en) Method and system for synchronizing data shared among peer computing devices
US8769277B2 (en) Content retrieval
US20060026216A1 (en) Server-assited communication among clients
WO2006015051A2 (en) Content distribution and synchronization
WO2006015104A2 (en) Server-assisted communication among clients

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

CFP Corrected version of a pamphlet front page
CR1 Correction of entry in section i

Free format text: IN PCT GAZETTE 06/2006 UNDER (30) REPLACE "NOT FURNISHED" BY "11/178,131"

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase