This invention relates generally to a synchronization system and, more particularly, to a system and method for enabling a user to access and edit, via a virtual drive, objects synchronized to a plurality of synchronization clients.
Many users have multiple computing devices, such as a home computer, a work computer, and a mobile phone. Different files may be stored by synchronization software clients on different devices. Virtual drives enable a user to back up files on a computer to a server and have remote access to files stored on the server, presented as though the files exist on a locally mounted file system. However, in a synchronization system, a user may have synchronized an object to multiple clients, and known virtual drives do not enable a user to make a change to a remote file and then have that change automatically synchronized across multiple clients. As an example, User A has a folder that resides on his work and home computer. User A has also shared that folder with User B. User A desires not only to be able to remotely access the folder from another synchronization software client via a virtual drive, but also to have any changes made to the folder via the virtual drive automatically synchronized to his home and work computer, as well as any client devices of User B that have a corresponding copy of the folder. Therefore, there is a need for a system and method for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients.
The present invention is directed to a synchronization system, method, and computer program for enabling a user to access and edit, via a virtual drive, local and remote objects, including objects synchronized to a plurality of synchronization software clients. The present invention enables a user to make a change to an object via a virtual drive and have that change automatically synchronized to a plurality of synchronization clients.
The method includes enabling a user to synchronize one or more objects using a synchronization software client, a synchronization server, and other synchronization clients. Objects may be folders, music files, video files, images, contacts, calendar items, and other types of electronic files or items. All objects, across a plurality of synchronization clients that a user has synchronized to the synchronization server, are identified. A virtual drive is displayed on the user's local client device with the identified objects. The virtual drive appears as a separate disk drive on the user's local client device and includes objects that reside on one or more remote clients. A user is able to access and edit any object displayed in the virtual drive, including objects that reside only on remote clients. In response to detecting a change in an object in the virtual drive, the object is updated on the synchronization server. All remote synchronization clients of the user are identified in the synchronization system, as well as all remote synchronization clients, if any, of other users whom have access to the changed object. The identified synchronization clients are notified of the change to the object. In response to the change being a change to content within the object, the content of the object is automatically updated on any identified remote clients that have a corresponding object.
In certain embodiments, a user is able to create a collection that comprises items across a plurality of synchronization clients that share one or more specified attributes, regardless of the folder(s) in which the items reside. The collection is displayed in the virtual drive. A user is able to access and edit items within the collection. In response to a user editing an item within a collection, a folder is identified in which the item resides. The folder is updated on the synchronization server with the edit to the item. All remote synchronization clients of the user in the synchronization system are identified, as well as all remote synchronization software clients, if any, of other users whom have access to the changed folder. The identified clients are notified of the change to the folder. In response to the change being a change to content within the folder, the content of the folder is automatically updated on any identified remote clients that have a corresponding folder. In certain embodiments, the items in the collection are not limited to files organized within folders on a file system, but are arbitrary objects existing within an arbitrary organizational scheme.
The attributes may be specified by the user, other software programs, or the synchronization system. The attributes may include one or more of the following: location associated with the file, version of the file, a time stamp associated with the file, client device on which the file resides, and the file type. The attributes may include a permission class associated with the shared files.
In one embodiment the user is able to perform share and synchronization functions via the virtual drive. The folders in the virtual drive may be organized by client device or may be client device-independent.
The present invention provides a system, method, and computer program for enabling a user to access and edit, via a virtual drive, local and remote objects in a synchronization system, including objects synchronized to a plurality of synchronization software clients. Examples of synchronization systems are disclosed in (i) U.S. Pat. No. 7,885,925, titled “Method and Apparatus for File Sharing and Synchronization System,” and (ii) U.S. Pat. No. 8,019,900, titled “Opportunistic Peer to Peer Synchronization in a Synchronization System.” The contents of both of these patents are incorporated herein by reference as if fully disclosed herein. A person skilled in the art would understand that other synchronization systems may be used within the scope of the present invention.
As used herein, a virtual drive is a file system representation on the user's local client device, of data from a source that is external to the local file system. In the present invention, the virtual drive provides a file system representation, on the user's local client device, of all objects, across a plurality of clients including the local client, which a user has synchronized or otherwise saved to the synchronization system. In the preferred embodiment, a local sync database stores metadata about these objects, and this metadata is used to generate the virtual drive. As used herein, metadata is a collection of attributes that describe the state of an object and is used by the synchronization system to detect and orchestrate changes to the object.
As used herein, an object may be a folder, a file (e.g., a WORD document, an EXCEL spreadsheet, a POWERPOINT presentation, an email, contact, or calendar item, such as in MICROSOFT OUTLOOK), a media object (e.g., a video file, an audio or music file, an image file), or a collection. A person skilled in the art would understand that objects are not limited to the above-specified examples.
As used herein, a collection includes items, across a plurality of synchronization software clients, which share one or more specified attributes. An attribute is a property that the user can assign to any object or collection (e.g., client name). An attribute has an attribute value (i.e., the value that a user might assign to an attribute) and an attribute type (i.e., the data type of the attribute value). One example of a collection may be the user's recent photographs from Hawaii that are stored across the user's camera, mobile device, laptop, and home computer. Attributes may be specified automatically by the synchronization system, by another software program, or by the user. Types of attributes available for specification by the user include (i) permission class associated with a shared object, (ii) a file type associate with a file, (iii) a location associated with an object, (iv) version of the file, (v) time stamp associated with the file, (vi) client device on which the file resides, and (vii) an arbitrary attribute type defined by the user or other software program. A person skilled in the art would understand that other attributes may be assigned within the scope of the present invention.
Referring to
A virtual drive is displayed on the user's local client device with the identified folders (step 115). The virtual drive appears as a separate disk drive on the user's local client device. The virtual drive includes all of the user's synced folders, regardless of whether a folder resides on the local client or only on a remote client. A user is enabled to access and edit any item within any folder displayed in the virtual drive, including folders that do not reside on the local client (step 120). In one embodiment, when a user double clicks on a file or item in a remote folder in the virtual drive, the server downloads its copy of the file/item to the local synchronization software client (i.e., the client currently being used by the user). The user can then edit the file/item as desired. In one embodiment, when a user double clicks on a local folder, the user is taken to the folder in the local file system view. In another embodiment, the server downloads its copy of the item/file in the local computer.
In response to detecting a change in a folder in the virtual drive, the folder is updated on the synchronization server (step 125). All remote clients of the user in the synchronization system are identified, as well as all remote synchronization clients, if any, of other users whom have access to the changed folder (step 130). In one embodiment, all synchronization clients that have an interest in updates to the folder “register” for notices of changes to the folder. The identified clients are notified of the change to the folder (step 135). In response to the change being a change to content within the folder, the content of the folder is automatically updated on any identified remote clients that have a corresponding folder. In one embodiment, the synchronization server first sends metadata to all the identified clients, notifying them of the change. The synchronization clients that have their own copy of the changed folder will then request the applicable file data from the server and the server will download the requested file data to the requesting synchronization clients.
The collection is displayed in the virtual drive (step 145). The collection may be displayed in the virtual drive as a folder, as a file, or as an object (e.g., a node). A user is enabled to access and edit items within the collection (step 150). In response to a user editing an item within a collection, a folder is identified in which the item resides (step 155). The folder is updated on the synchronization server with the edit to the item (step 160). All remote clients of the user in the synchronization system and all remote synchronization clients, if any, of other users whom have access to the changed folder are identified (step 165). The identified clients are notified of the change to the folder (step 170). In response to the change being a change to content within the folder, the content of the folder is automatically updated on any identified remote clients that have a corresponding folder. In the case where the items in the collection reside across an alternate organizational scheme (other than a file or folder system), the identified clients are notified of changes to any item. In response to the change being a change to content within the original physical or logical location, the content of the item is automatically updated on any identified remote clients that have a corresponding representation of the item.
The virtual drive may be organized by client device or may be client device-independent. A user may be able to perform share and synchronization management functions via the virtual drive. For example, a user may be able to right click on an object in the virtual drive to take a specific share action (e.g., share an object with another user or change the permission settings for another user with respect to the object) or alter the synchronization settings for the folder.
Synchronization system 200 includes a synchronization server (i.e., internet/network) 220, which provides synchronization and back up services to a plurality of end users. For example, all synchronized objects between a user's client devices and between users are stored on server 220 and are accessible from any client device having access to the server 220. Synchronization server 220 is representative of the server-side of a synchronization system and, in a large synchronization system, is likely a plurality of synchronization servers networked together. A person skilled in the art would understand that the synchronization system 200 may have any number of client devices, including one or more desktops, laptops, and mobile devices.
When a synchronization software client in the synchronization system detects a change to a local object, it notifies the synchronization server 220 of the change, and synchronization server 220 then modifies the corresponding object (and/or metadata related to the corresponding object) on the server as applicable. Server 220 notifies the user's other synchronization clients of the change, as well as any clients of other users with access to the changed object. If the content of the object has changed and a synchronization software client has a corresponding copy of the changed object, the synchronization software client requests the applicable content data from synchronizations sever 220.
Within client device 230 is local synchronization client software 240, which functions to synchronize client device 230 with the synchronization server 220. The local synchronization software 240 has a metadata manager 242 for receiving and sending change notices to and from synchronizations server 220. The metadata manager stores metadata about objects the user has synchronized or backed up to server 220 in the local sync database 245. Metadata for objects other users have shared with the user is also stored in the local sync database 245.
The local synchronization client software 240 includes a file data manager 243 for monitoring synchronized files (via operating system 255) on physical disk drive 260. Physical disk drive 260 stores the user's local files. When a user accesses a remote file via the virtual drive, a copy of such file is temporarily stored on a local physical disk drive 260. The file data manager 243 informs the metadata manager 242 if it detects a change to a synchronized object in physical disk drive 260. The metadata manager 242 then updates the applicable metadata in local sync database 245 and notifies server 220 of the change.
The local synchronization software 240 is operatively coupled to a file system abstraction module 250, within operating system 255. The operating system 255 is connected to one or more disk drives 260. The operating system 255 is also connected to a user interface 270 (e.g., MAC FINDER or WINDOWS EXPLORER) which displays the physical drive user interface 280 and the virtual drive user interface 290. The file system abstraction module 250 functions to process and normalize the metadata related to the synchronized objects so that the file system user interface module 270 is able to display the virtual drive 290.
The methods described with respect to
b illustrate a method for enabling a user to change a remote folder via the virtual drive according to one embodiment of the invention. The same method may be applied if a user changes a local folder. In
Each client device has a local synchronization client 340a-340d and a file system 350a-350d. Each file system stores one or more of Folders #1-9 on the local client device. For example, Client Device A has Folders #1-3 in its file system 350a, Client Device B has Folders #1, 3, and 5-7 in its file system 350b, Client Device C has Folders #3, 5, and 7 in its file system 350c, and Client Device D has Folders #8-9 in its file system 350d. In addition, the first user, Elisabeth, has shared Folder 5 with the second user, Andrew, which appears on the local synchronization client 340d of Client Device D. Database 360 is connected to synchronization server 320 and has all folders (i.e., Folders #1-9) of all synchronized client devices stored on it.
In
The synchronization server 320 identifies Client Devices B and C as belonging to Elisabeth. Synchronization server 320 identifies Client Device D as belonging to Andrew, with whom Elisabeth has shared Folder #5 (step 440). Synchronization server 320 notifies Client Devices B, C, and D of the change to Folder #5 (step 450). The local synchronization clients 340b, 340c, 340d on Client Devices B, C, and D update the metadata for the virtual drive and synchronization user interface (step 460). The local synchronization clients 340b, 340c, 340d on Client Devices B and C each realizes that they have a Folder #5 and requests relevant file data from synchronization server 320 (step 470). The synchronization server 320 sends file data to Client Devices B and C (step 480). Client Devices B and C update corresponding Folder #5 on Client Devices B and C (step 490).
In
As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the above disclosure of the present invention is intended to be illustrative and not limiting of the invention.
This present application is a continuation of U.S. patent application Ser. No. 15/992,342, filed May 30, 2018, which is a continuation of U.S. patent application Ser. No. 14/873,004, filed Oct. 1, 2015, which is a continuation of U.S. patent application Ser. No. 13/571,512, filed Aug. 10, 2012 which issued as U.S. Pat. No. 10,057,318. Each of the aforementioned applications are hereby incorporated by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
5165031 | Pruul et al. | Nov 1992 | A |
5862346 | Kley et al. | Jan 1999 | A |
6052735 | Ulrich et al. | Apr 2000 | A |
6125369 | Wu et al. | Sep 2000 | A |
6256634 | Moshaiov et al. | Jul 2001 | B1 |
6260040 | Kauffman et al. | Jul 2001 | B1 |
6272545 | Flanagin et al. | Aug 2001 | B1 |
6348932 | Nishikawa et al. | Feb 2002 | B1 |
6407750 | Gioscia et al. | Jun 2002 | B1 |
6467034 | Yanaka | Oct 2002 | B1 |
6496979 | Chen et al. | Dec 2002 | B1 |
6636873 | Carini et al. | Oct 2003 | B1 |
6636888 | Bookspan et al. | Oct 2003 | B1 |
6725281 | Zintel et al. | Apr 2004 | B1 |
6795688 | Plasson et al. | Sep 2004 | B1 |
6904185 | Wilkins et al. | Jun 2005 | B1 |
6938076 | Meyer et al. | Aug 2005 | B2 |
7039723 | Hu et al. | May 2006 | B2 |
7103357 | Kirani et al. | Sep 2006 | B2 |
7139555 | Apfel | Nov 2006 | B2 |
7143194 | Curley et al. | Nov 2006 | B1 |
7162454 | Donner et al. | Jan 2007 | B1 |
7228352 | Yaguchi et al. | Jun 2007 | B1 |
7263712 | Spencer | Aug 2007 | B2 |
7317699 | Godfrey et al. | Jan 2008 | B2 |
7319536 | Wilkins et al. | Jan 2008 | B1 |
7321919 | Jacobs et al. | Jan 2008 | B2 |
7369161 | Easwar et al. | May 2008 | B2 |
7372485 | Bodnar et al. | May 2008 | B1 |
7421458 | Taylor et al. | Sep 2008 | B1 |
7441180 | Kaczmarek et al. | Oct 2008 | B1 |
7502795 | Svendsen et al. | Mar 2009 | B1 |
7576752 | Benson et al. | Aug 2009 | B1 |
7644124 | Porter | Jan 2010 | B1 |
7680067 | Prasad et al. | Mar 2010 | B2 |
7707500 | Martinez | Apr 2010 | B2 |
7747596 | Bigioi et al. | Jun 2010 | B2 |
7773106 | Serdy, Jr. et al. | Aug 2010 | B2 |
7774326 | Arrouye et al. | Aug 2010 | B2 |
7809682 | Paterson et al. | Oct 2010 | B2 |
7873353 | Kloba et al. | Jan 2011 | B2 |
7885925 | Strong et al. | Feb 2011 | B1 |
7917628 | Hesselink et al. | Mar 2011 | B2 |
7930270 | Tsang | Apr 2011 | B2 |
7962137 | Coppinger et al. | Jun 2011 | B2 |
7962622 | Friend et al. | Jun 2011 | B2 |
8001088 | Tawa, Jr. | Aug 2011 | B2 |
8019900 | Sekar et al. | Sep 2011 | B1 |
8230026 | Gilhuly et al. | Jul 2012 | B2 |
8321374 | Holt et al. | Nov 2012 | B2 |
8341345 | Tulskie et al. | Dec 2012 | B2 |
8370298 | Strong et al. | Feb 2013 | B2 |
8600934 | Strong et al. | Dec 2013 | B2 |
8612439 | Prahlad et al. | Dec 2013 | B2 |
8620861 | Uhrhane et al. | Dec 2013 | B1 |
8650498 | Mihovilovic | Feb 2014 | B1 |
8965847 | Chang et al. | Feb 2015 | B1 |
9037540 | Strong et al. | May 2015 | B2 |
9131054 | Vendrow et al. | Sep 2015 | B2 |
9501762 | Babenko et al. | Nov 2016 | B2 |
9817878 | Newhouse | Nov 2017 | B2 |
10057318 | Rashid et al. | Aug 2018 | B1 |
10158708 | Strong et al. | Dec 2018 | B2 |
10320904 | Strong et al. | Jun 2019 | B2 |
20020013852 | Janik | Jan 2002 | A1 |
20020044159 | Kuroiwa et al. | Apr 2002 | A1 |
20020059604 | Papagan et al. | May 2002 | A1 |
20020065848 | Walker et al. | May 2002 | A1 |
20020066050 | Lerman et al. | May 2002 | A1 |
20020099772 | Deshpande et al. | Jul 2002 | A1 |
20020129096 | Mansour et al. | Sep 2002 | A1 |
20020184264 | Berg et al. | Dec 2002 | A1 |
20020198858 | Stanley et al. | Dec 2002 | A1 |
20030004952 | Nixon et al. | Jan 2003 | A1 |
20030014478 | Noble | Jan 2003 | A1 |
20030037114 | Nishio et al. | Feb 2003 | A1 |
20030041094 | Lara et al. | Feb 2003 | A1 |
20030055825 | Chen et al. | Mar 2003 | A1 |
20030058277 | Bowman-Amuah | Mar 2003 | A1 |
20030074418 | Coker | Apr 2003 | A1 |
20030097361 | Huang et al. | May 2003 | A1 |
20030131098 | Huntington et al. | Jul 2003 | A1 |
20030154187 | Hayakawa et al. | Aug 2003 | A1 |
20030159136 | Huang et al. | Aug 2003 | A1 |
20030172127 | Northrup et al. | Sep 2003 | A1 |
20030217181 | Kiiskinen | Nov 2003 | A1 |
20030218633 | Mikhail et al. | Nov 2003 | A1 |
20040024979 | Kaminsky et al. | Feb 2004 | A1 |
20040044732 | Fushiki et al. | Mar 2004 | A1 |
20040044799 | Sivaraman et al. | Mar 2004 | A1 |
20040054736 | Daniell et al. | Mar 2004 | A1 |
20040068524 | Aboulhosn et al. | Apr 2004 | A1 |
20040088420 | Allen et al. | May 2004 | A1 |
20040107236 | Nakagawa et al. | Jun 2004 | A1 |
20040123048 | Mullins et al. | Jun 2004 | A1 |
20040126750 | Theilmann et al. | Jul 2004 | A1 |
20040143598 | Drucker et al. | Jul 2004 | A1 |
20040148207 | Smith et al. | Jul 2004 | A1 |
20040148375 | Levett et al. | Jul 2004 | A1 |
20040172423 | Kaasten et al. | Sep 2004 | A1 |
20040177319 | Horn et al. | Sep 2004 | A1 |
20040267905 | Mcdonough et al. | Dec 2004 | A1 |
20040268364 | Faraj | Dec 2004 | A1 |
20050015441 | Attwood et al. | Jan 2005 | A1 |
20050038863 | Onyon et al. | Feb 2005 | A1 |
20050044164 | O'Farrell et al. | Feb 2005 | A1 |
20050044165 | O'Farrell et al. | Feb 2005 | A1 |
20050091595 | Shappell et al. | Apr 2005 | A1 |
20050149481 | Hesselink et al. | Jul 2005 | A1 |
20050149508 | Deshpande et al. | Jul 2005 | A1 |
20050165869 | Huang et al. | Jul 2005 | A1 |
20050193361 | Vitanov et al. | Sep 2005 | A1 |
20050198015 | Sezan et al. | Sep 2005 | A1 |
20050208803 | Rohatgi et al. | Sep 2005 | A1 |
20050223061 | Auerbach et al. | Oct 2005 | A1 |
20050246373 | Faulkner et al. | Nov 2005 | A1 |
20050246374 | Blinn et al. | Nov 2005 | A1 |
20050248374 | Kushnick | Nov 2005 | A1 |
20050262166 | Rajeev et al. | Nov 2005 | A1 |
20050278458 | Berger et al. | Dec 2005 | A1 |
20060018444 | Pantana et al. | Jan 2006 | A1 |
20060052091 | Onyon et al. | Mar 2006 | A1 |
20060069809 | Serlet | Mar 2006 | A1 |
20060085429 | Wener et al. | Apr 2006 | A1 |
20060101053 | Proctor et al. | May 2006 | A1 |
20060101064 | Strong et al. | May 2006 | A1 |
20060123010 | Landry et al. | Jun 2006 | A1 |
20060156239 | Jobs et al. | Jul 2006 | A1 |
20060168000 | Bodlaender et al. | Jul 2006 | A1 |
20060170669 | Walker et al. | Aug 2006 | A1 |
20060184673 | Liebman | Aug 2006 | A1 |
20060198015 | Engler et al. | Sep 2006 | A1 |
20060242206 | Brezak et al. | Oct 2006 | A1 |
20060259957 | Tam et al. | Nov 2006 | A1 |
20070005581 | Arrouye et al. | Jan 2007 | A1 |
20070005707 | Teodosiu et al. | Jan 2007 | A1 |
20070016586 | Samji | Jan 2007 | A1 |
20070016695 | Rabbers et al. | Jan 2007 | A1 |
20070043830 | Housenbold et al. | Feb 2007 | A1 |
20070078938 | Hu et al. | Apr 2007 | A1 |
20070156434 | Martin et al. | Jul 2007 | A1 |
20070179989 | Maes | Aug 2007 | A1 |
20070180075 | Chasman et al. | Aug 2007 | A1 |
20070180084 | Mohanty et al. | Aug 2007 | A1 |
20070198473 | Carrier et al. | Aug 2007 | A1 |
20070209005 | Shaver et al. | Sep 2007 | A1 |
20070239898 | Friend et al. | Oct 2007 | A1 |
20070250645 | Meadows et al. | Oct 2007 | A1 |
20070276836 | Chatterjee et al. | Nov 2007 | A1 |
20070288614 | May et al. | Dec 2007 | A1 |
20070294366 | Ozzie et al. | Dec 2007 | A1 |
20080109448 | Aboel-Nil et al. | May 2008 | A1 |
20080126936 | Williams | May 2008 | A1 |
20080140732 | Wilson et al. | Jun 2008 | A1 |
20080168185 | Robbin et al. | Jul 2008 | A1 |
20080184125 | Suleiman et al. | Jul 2008 | A1 |
20080189627 | Nikitin et al. | Aug 2008 | A1 |
20080195729 | Chand et al. | Aug 2008 | A1 |
20080195739 | Ozzie et al. | Aug 2008 | A1 |
20080208870 | Tsang | Aug 2008 | A1 |
20080208998 | Warren et al. | Aug 2008 | A1 |
20080250083 | Kovacs et al. | Oct 2008 | A1 |
20080307504 | Cisler et al. | Dec 2008 | A1 |
20090024931 | Bae | Jan 2009 | A1 |
20090064284 | Poston et al. | Mar 2009 | A1 |
20090094252 | Wong et al. | Apr 2009 | A1 |
20090183060 | Heller et al. | Jul 2009 | A1 |
20090187609 | Barton et al. | Jul 2009 | A1 |
20090192976 | Spivack et al. | Jul 2009 | A1 |
20090300020 | Chen et al. | Dec 2009 | A1 |
20090327900 | Noll et al. | Dec 2009 | A1 |
20100063670 | Brzezinski et al. | Mar 2010 | A1 |
20100115614 | Barile et al. | May 2010 | A1 |
20100205196 | Schreiber et al. | Aug 2010 | A1 |
20100241980 | Sosnosky et al. | Sep 2010 | A1 |
20100332682 | Sharp et al. | Dec 2010 | A1 |
20110010332 | Vasudevan et al. | Jan 2011 | A1 |
20110106880 | Strong et al. | May 2011 | A1 |
20120016915 | Choi et al. | Jan 2012 | A1 |
20120084355 | Locker et al. | Apr 2012 | A1 |
20120096389 | Flam et al. | Apr 2012 | A1 |
20120102410 | Gewecke et al. | Apr 2012 | A1 |
20120127156 | Goossens | May 2012 | A1 |
20120197862 | Woytowitz et al. | Aug 2012 | A1 |
20120330887 | Young | Dec 2012 | A1 |
20130007207 | Dietrich | Jan 2013 | A1 |
20130066975 | Kantor et al. | Mar 2013 | A1 |
20130067594 | Kantor et al. | Mar 2013 | A1 |
20130091550 | Joyce et al. | Apr 2013 | A1 |
20130110903 | Myerscough et al. | May 2013 | A1 |
20130117423 | Gupta | May 2013 | A1 |
20130191451 | Tse | Jul 2013 | A1 |
20130198868 | Georgiev | Aug 2013 | A1 |
20130205251 | Cisler et al. | Aug 2013 | A1 |
20130212486 | Joshi et al. | Aug 2013 | A1 |
20130232187 | Workman et al. | Sep 2013 | A1 |
20130246610 | Hirano | Sep 2013 | A1 |
20130275509 | Micucci et al. | Oct 2013 | A1 |
20130282830 | Besen et al. | Oct 2013 | A1 |
20130305039 | Gauda et al. | Nov 2013 | A1 |
20130311598 | Arrouye et al. | Nov 2013 | A1 |
20130311986 | Arrouye et al. | Nov 2013 | A1 |
20130318582 | McCann et al. | Nov 2013 | A1 |
20140095457 | Quan et al. | Apr 2014 | A1 |
20140181016 | Whitehead et al. | Jun 2014 | A1 |
20140188868 | Hunter et al. | Jul 2014 | A1 |
20140317031 | Babenko et al. | Oct 2014 | A1 |
20150213101 | Strong et al. | Jul 2015 | A1 |
20150264115 | Reilly et al. | Sep 2015 | A1 |
20150358406 | Scheer et al. | Dec 2015 | A1 |
20160026704 | Strong et al. | Jan 2016 | A1 |
20160028809 | Strong et al. | Jan 2016 | A1 |
20160028810 | Strong et al. | Jan 2016 | A1 |
20160028811 | Rashid et al. | Jan 2016 | A1 |
20160028812 | Strong et al. | Jan 2016 | A1 |
20160028813 | Strong et al. | Jan 2016 | A1 |
20160028814 | Strong et al. | Jan 2016 | A1 |
20160028815 | Strong et al. | Jan 2016 | A1 |
20160028852 | Strong et al. | Jan 2016 | A1 |
20160055171 | Araki et al. | Feb 2016 | A1 |
20170093780 | Lieb et al. | Mar 2017 | A1 |
20180278684 | Rashid et al. | Sep 2018 | A1 |
Entry |
---|
Non-Final Office Action from U.S. Appl. No. 16/508,059, dated Apr. 2, 2021, 14 pages. |
Notice of Allowance for U.S. Appl. No. 14/873,186 dated May 15, 2019, 32 pages. |
Notice of Allowance for U.S. Appl. No. 14/873,195 dated Apr. 2, 2019, 15 pages. |
Office Action for U.S. Appl. No. 14/872,019 dated Aug. 14, 2019, 14 pages. |
Office Action for U.S. Appl. No. 14/873,195 dated Oct. 26, 2018, 14 pages. |
Final Office Action from U.S. Appl. No. 15/964,267, dated Nov. 30, 2020, 27 pages. |
Notice of Allowance from U.S. Appl. No. 16/397,945, dated Jan. 6, 2021, 11 pages. |
Final Office Action from U.S. Appl. No. 16/397,945, dated Sep. 29, 2020, 20 pages. |
Non-Final Office Action from U.S. Appl. No. 16/397,945, dated Jul. 23, 2020, 18 pages. |
Notice of Allowance from U.S. Appl. No. 14/873,004, dated Aug. 12, 2020, 6 pages. |
Notice of Allowance from U.S. Appl. No. 14/873,187, dated Jul. 30, 2020, 8 pages. |
Notice of Allowance from U.S. Appl. No. 15/992,342, dated Aug. 27, 2020, 5 pages. |
Advisory Action from U.S. Appl. No. 14/873,004, dated May 19, 2020, 3 pages. |
Advisory Action from U.S. Appl. No. 15/992,342, dated May 19, 2020, 3 pages. |
Deshpande M., et al., “Item-Based Top-N Recommendation Algorithms,” ACM Transactions on Information Systems, vol. 22, No. 1, Jan. 2004, pp. 143-177. |
Final Office Action from U.S. Appl. No. 14/873,004, dated Feb. 12, 2020, 18 pages. |
Final Office Action from U.S. Appl. No. 15/992,342, dated Feb. 25, 2020, 19 pages. |
Jmans25, “Map/Mount Dropbox as a Network Drive,” Oct. 14, 2011, Youtube, 1 page. |
Non-Final Office Action from U.S. Appl. No. 14/873,187, dated Jan. 10, 2020, 17 pages. |
Non-Final Office Action from U.S. Appl. No. 15/964,267, dated Jul. 27, 2020, 21 pages. |
Notice of Allowance from U.S. Appl. No. 14/873,004, dated Jun. 12, 2020, 11 pages. |
Notice of Allowance from U.S. Appl. No. 14/873,187, dated Jun. 24, 2020, 13 pages. |
Notice of Allowance from U.S. Appl. No. 15/992,342, dated Jun. 15, 2020, 10 pages. |
Notice of Allowance for U.S. Appl. No. 12/157,772 dated Oct. 6, 2010, 15 pages. |
Notice of Allowance for U.S. Appl. No. 12/928,998 dated Oct. 9, 2012, 13 pages. |
Notice of Allowance for U.S. Appl. No. 13/571,512 dated Apr. 6, 2018, 17 pages. |
Notice of Allowance for U.S. Appl. No. 13/757,024 dated Jul. 25, 2013, 11 pages. |
Notice of Allowance for U.S. Appl. No. 13/757,024 dated Oct. 30, 2013, 7 pages. |
Notice of Allowance for U.S. Appl. No. 14/075,598 dated Jan. 14, 2015, 10 pages. |
Notice of Allowance for U.S. Appl. No. 14/683,341 dated Jun. 25, 2018, 10 pages. |
Notice of Allowance for U.S. Appl. No. 14/873,199 dated Jan. 25, 2019, 16 pages. |
Notice Of Allowance for U.S. Appl. No. 14/873,197 dated Aug. 29, 2019, 14 pages. |
Office Action for U.S. Appl. No. 14/873,187 dated Apr. 24, 2019, 21 pages. |
Office Action for U.S. Appl. No. 11/269,498 dated Aug. 22, 2007, 18 pages. |
Office Action for U.S. Appl. No. 11/269,498 dated Mar. 25, 2008, 17 pages. |
Office Action for U.S. Appl. No. 11/269,498 dated Mar. 7, 2007, 14 pages. |
Office Action for U.S. Appl. No. 12/928,998 dated Apr. 22, 2011,26 pages. |
Office Action for U.S. Appl. No. 12/928,998 dated Nov. 23, 2011,24 pages. |
Office Action for U.S. Appl. No. 13/571,512 dated Apr. 23, 2015, 23 pages. |
Office Action for U.S. Appl. No. 13/571,512 dated Feb. 24, 2014, 17 pages. |
Office Action for U.S. Appl. No. 13/571,512 dated Jun. 13, 2014, 22 pages. |
Office Action for U.S. Appl. No. 13/571,512 dated May 19, 2016, 21 pages. |
Office Action for U.S. Appl. No. 13/571,512 dated Oct. 20, 2016, 27 pages. |
Office Action for U.S. Appl. No. 13/571,512 dated Oct. 26, 2017, 28 pages. |
Office Action for U.S. Appl. No. 13/571,512 dated Sep. 23, 2014, 25 pages. |
Office Action for U.S. Appl. No. 14/683,341 dated Nov. 16, 2017, 14 pages. |
Office Action for U.S. Appl. No. 14/872,004 dated Jan. 18, 2018, 8 pages. |
Office Action for U.S. Appl. No. 14/872,004 dated Mar. 28, 2019, 19 pages. . |
Office Action for U.S. Appl. No. 14/872,004 dated Sep. 6, 2018, 11 pages. |
Office Action for U.S. Appl. No. 14/872,019 dated Aug. 29, 2018, 13 pages. |
Office Action for U.S. Appl. No. 14/872,019 dated Feb. 26, 2019, 15 pages. |
Office Action for U.S. Appl. No. 14/872,019 dated Nov. 16, 2017, 14 pages. |
Office Action for U.S. Appl. No. 14/872,943 dated Jul. 11, 2018, 12 pages. |
Office Action for U.S. Appl. No. 14/872,943 dated Oct. 4, 2017, 13 pages. |
Office Action for U.S. Appl. No. 14/872,943 dated Dec. 19, 2018, 19 pages. |
Office Action for U.S. Appl. No. 14/873,004 dated Aug. 10, 2018, 19 pages. |
Office Action for U.S. Appl. No. 14/873,004 dated Feb. 9, 2018, 28 pages. |
Office Action for U.S. Appl. No. 14/873,004 dated Jul. 17, 2019, 17 pages. |
Office Action for U.S. Appl. No. 14/873,004 dated Nov. 23, 2018, 34 pages. |
Office Action for U.S. Appl. No. 14/873,004 dated Oct. 26, 2017, 26 pages. |
Office Action for U.S. Appl. No. 14/873,186 dated Mar. 22, 2018, 24 pages. |
Office Action for U.S. Appl. No. 14/873,186 dated Dec. 13, 2018, 33 pages. |
Office Action for U.S. Appl. No. 14/873,187 dated Apr. 17, 2018, 15 pages. |
Office Action for U.S. Appl. No. 14/873,187 dated Dec. 10, 2018, 18 pages. |
Office Action for U.S. Appl. No. 14/873,195 dated Apr. 19, 2018, 14 pages. |
Office Action for U.S. Appl. No. 14/873,197 dated Jul. 11, 2018, 13 pages. |
Office Action for U.S. Appl. No. 14/873,197 dated Jun. 3, 2019, 20 pages. |
Office Action for U.S. Appl. No. 14/873,197 dated Oct. 5, 2017, 13 pages. |
Office Action for U.S. Appl. No. 14/873,197 dated Dec. 14, 2018, 16 pages. |
Office Action for U.S. Appl. No. 14/873,199 dated Jun. 1, 2018, 16 pages. |
Office Action for U.S. Appl. No. 15/992,342 dated Jul. 31, 2019, 29 pages. |
Office Action for U.S. Appl. No. 14/872,943 dated Jun. 17, 2019, 19 pages. |
Rhee E., “How to Map a Drive Letter to Google Drive in Windows,” May 3, 2012, Retrieved from https://www.cnet.com/how-to/how-to-Map-a-Drive-Letter-to-Google-Drive-in-Windows/ on Oct. 7, 2016, pp. 1-2. |
Srinet K., et al., “10-605-HW 5—Distributed SGD for Matrix Factorization on Spark,” Carnegie Mellon University, Pittsburgh, PA, Nov. 12, 2015, pp. 1-11. |
Advisory Action from U.S. Appl. No. 15/964,267, dated Feb. 18, 2021, 3 pages. |
Notice of Allowance from U.S. Appl. No. 16/397,945, dated Feb. 25, 2021, 2 pages. |
Non-Final Office Action from U.S. Appl. No. 15/964,267, dated Aug. 6, 2021, 26 pages. |
Number | Date | Country | |
---|---|---|---|
20200374347 A1 | Nov 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15992342 | May 2018 | US |
Child | 16991446 | US | |
Parent | 14873004 | Oct 2015 | US |
Child | 15992342 | US | |
Parent | 13571512 | Aug 2012 | US |
Child | 14873004 | US |