US7139780B2 - System and method for synchronizing files in multiple nodes - Google Patents

System and method for synchronizing files in multiple nodes Download PDF

Info

Publication number
US7139780B2
US7139780B2 US10/335,516 US33551602A US7139780B2 US 7139780 B2 US7139780 B2 US 7139780B2 US 33551602 A US33551602 A US 33551602A US 7139780 B2 US7139780 B2 US 7139780B2
Authority
US
United States
Prior art keywords
file
local
central
server
database
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime, expires
Application number
US10/335,516
Other versions
US20040068516A1 (en
Inventor
Chung-I Lee
Floye Lin
Benson Luo
Yekoo Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datacloud Technologies LLC
Original Assignee
Hongfujin Precision Industry Shenzhen Co Ltd
Hon Hai Precision Industry Co Ltd
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
Family has litigation
US case filed in Delaware District Court litigation Critical https://portal.unifiedpatents.com/litigation/Delaware%20District%20Court/case/1%3A23-cv-00072 Source: District Court Jurisdiction: Delaware District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Georgia Northern District Court litigation https://portal.unifiedpatents.com/litigation/Georgia%20Northern%20District%20Court/case/1%3A23-cv-05514 Source: District Court Jurisdiction: Georgia Northern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Delaware District Court litigation https://portal.unifiedpatents.com/litigation/Delaware%20District%20Court/case/1%3A21-cv-00170 Source: District Court Jurisdiction: Delaware District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
First worldwide family litigation filed litigation https://patents.darts-ip.com/?family=32041184&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US7139780(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Eastern District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Eastern%20District%20Court/case/2%3A23-cv-00522 Source: District Court Jurisdiction: Texas Eastern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Eastern District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Eastern%20District%20Court/case/2%3A23-cv-00508 Source: District Court Jurisdiction: Texas Eastern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Delaware District Court litigation https://portal.unifiedpatents.com/litigation/Delaware%20District%20Court/case/1%3A23-cv-01451 Source: District Court Jurisdiction: Delaware District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Delaware District Court litigation https://portal.unifiedpatents.com/litigation/Delaware%20District%20Court/case/1%3A24-cv-00067 Source: District Court Jurisdiction: Delaware District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Delaware District Court litigation https://portal.unifiedpatents.com/litigation/Delaware%20District%20Court/case/1%3A22-cv-01644 Source: District Court Jurisdiction: Delaware District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hongfujin Precision Industry Shenzhen Co Ltd, Hon Hai Precision Industry Co Ltd filed Critical Hongfujin Precision Industry Shenzhen Co Ltd
Publication of US20040068516A1 publication Critical patent/US20040068516A1/en
Assigned to HONG FU JIN PRECISION INDUSTRY (SHENZHEN) CO., LTD., HON HAI PRECISION INDUSTY CO., LTD. reassignment HONG FU JIN PRECISION INDUSTRY (SHENZHEN) CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HON HAI PRECISION INDUSTRY CO., LTD.
Application granted granted Critical
Publication of US7139780B2 publication Critical patent/US7139780B2/en
Assigned to HON HAI PRECISION INDUSTRY CO., LTD. reassignment HON HAI PRECISION INDUSTRY CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HONG FU JIN PRECISION INDUSTRY (SHENZHEN) CO., LTD.
Assigned to HON HAI PRECISION INDUSTRY CO., LTD. reassignment HON HAI PRECISION INDUSTRY CO., LTD. CONFIRMATORY ASSIGNMENT OF PATENT RIGHTS Assignors: HONG FU JIN PRECISION INDUSTRY (SHENZHEN) CO., LTD.
Assigned to HON HAI PRECISION INDUSTRY CO., LTD. reassignment HON HAI PRECISION INDUSTRY CO., LTD. NUNC PRO TUNC ASSIGNMENT (SEE DOCUMENT FOR DETAILS). Assignors: LUO, BENSON, LEE, CHUNG-I, LIN, FLOYE, WANG, YEKOO
Assigned to TORQUE CAPITAL SOLUTIONS, LIMITED LIABILITY COMPANY reassignment TORQUE CAPITAL SOLUTIONS, LIMITED LIABILITY COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HON HAI PRECISION INDUSTRY, CO., LTD.
Assigned to XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY reassignment XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY MERGER (SEE DOCUMENT FOR DETAILS). Assignors: TORQUE CAPITAL SOLUTIONS, LIMITED LIABILITY COMPANY
Assigned to INTELLECTUAL VENTURES ASSETS 148 LLC reassignment INTELLECTUAL VENTURES ASSETS 148 LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY
Assigned to DATACLOUD TECHNOLOGIES, LLC reassignment DATACLOUD TECHNOLOGIES, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTELLECTUAL VENTURES ASSETS 148 LLC
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Definitions

  • the present invention relates to a system and method for synchronizing files, and especially to a system and method for synchronizing files in multiple nodes via a central node in a network.
  • the intranet comprises a plurality of local area networks (LAN).
  • Each LAN includes at least one server computer and a plurality of client computers, which together constitute a network computer system.
  • a characteristic feature of the network computer system is that the server computers only store resources, and the client computers only run client side programs to communicate with the server computers.
  • server computers include server side programs, data for processing, and so on.
  • server computers have different uses.
  • an application server is used for running server application programs
  • a file server is used for uploading and downloading files
  • a database server is used for accessing a vast store of structured data.
  • Clients in the intranet may need to compile a file that is cooperatively shared among different LANs.
  • the file server in each LAN stores one copy of the file.
  • file synchronization of the copies of the file in the different file servers should be performed. This is needed in order to maintain consistency between any updated copy in one file server and other copies in the other file servers.
  • P.R.China Patent No. CN1353836 discloses a system and method for managing files in a distributed environment.
  • the invention includes a method for synchronizing files among different nodes in a network.
  • a file controller is installed on the client side.
  • the file controller is used for managing local files, exchanging data among nodes, and generating indexes for orientating files in a network.
  • the file controller obtains the storage location of the file according to the relevant indexes, copies the file to the node, and amends information in the relevant indexes.
  • the file controller performs file synchronization with all other nodes that have other copies of the file according to the indexes of the file.
  • nodes A, B, C there are 3 nodes in a network named nodes A, B, C; and each node has one copy of a same file.
  • node A updates its copy
  • node C is updated accordingly.
  • node B updates its copy
  • node C accesses its own copy only after Node B updates its copy. That means the first file synchronization in node C is not needed.
  • the present invention provides a system for synchronizing files in multiple nodes.
  • the system for synchronizing files in multiple nodes comprising a central node, and a plurality of local nodes connected with the central node by a network.
  • the local nodes act as servers in the network.
  • Each local node comprises: a local file server that stores one copy of each file that is shared between the local nodes, and copies of files needing to be synchronized with corresponding files in the central node; a local database that stores information on copies of files in the local file server; and a local application server that runs a proxy to update copies of files in the local file server, and to download latest editions of corresponding files from the central node.
  • the central node acts as a server in the network, and comprises: a central database that records all update information on copies of files in all the local file servers; a central file server that stores latest editions of files that are shared between the local nodes; and a central application server comprising a synchronization program for update files in the central file server.
  • the synchronization program downloads updated copies of files from the relevant local file servers, and updates the central file server accordingly.
  • the present invention also provides a method for synchronizing files in multiple nodes.
  • File synchronization is performed between a plurality of local nodes via a central node.
  • the central node comprises a central application server, a central file server, and a central database.
  • Each local node comprises a local application, a local file server, and a local database.
  • the method for synchronizing files in multiple nodes comprises the following steps: (i) storing one copy of each file that is shared between the local nodes in each of the local file servers; (ii) creating a first table in each of the local databases to store information on copies of files in its respective local file server; (iii) creating a second table in the central database to record all update information on copies of files in all the local file servers; (iv) updating a copy of a file in one of the local file servers; (v) adding a new item of update information on the file in the second table; (vi) downloading the updated copy of the file from said one of the local file servers, and uploading the updated copy of the file to the central file server as the latest edition of the file; (vii) determining whether a required copy of the file in another of the local file servers needs to be updated; and (viii) downloading the latest edition of the file from the central file server to update said another of the local file servers if the required copy of the file needs to be updated.
  • FIG. 1 is a schematic diagram of architecture of a system for synchronizing files in multiple nodes in accordance with a preferred embodiment of the present invention
  • FIG. 2 is a schematic diagram of working principles of said system for synchronizing files in multiple nodes
  • FIG. 3 shows an exemplary local file information table used in accordance with the preferred embodiment of the present invention
  • FIG. 4 shows an exemplary file update information table used in accordance with the preferred embodiment of the present invention
  • FIG. 5 is a block diagram of function modules of one proxy of said system for synchronizing files in multiple nodes
  • FIG. 6 is a block diagram of function modules of a synchronization program of said system for synchronizing files in multiple nodes;
  • FIGS. 7 and 8 cooperatively comprise a flow chart of operation of said one proxy in accordance with a preferred embodiment of the present invention.
  • FIG. 9 is a flow chart of operation of said synchronization program in accordance with the preferred embodiment of the present invention.
  • FIG. 1 is a schematic diagram of architecture of a system for synchronizing files in multiple nodes in accordance with a preferred embodiment of the present invention.
  • the system for synchronizing files in multiple nodes comprises a central node 120 , and a plurality of local nodes 100 connected with the central node 120 by a common communications network 110 .
  • the central node 120 comprises a central application server 121 , a synchronization program 122 , a central file server 123 , and a central database 124 .
  • Each local node 100 comprises a local application server 101 , a proxy 102 , a local file server 103 , and a local database 104 .
  • the local nodes 100 act as servers in their respective local networks (not shown). Each local network is connected with the network 110 via a router or switch, and includes a plurality of client sides (not shown). The client sides run client application programs to send requests for file access to the local nodes 100 . In the preferred embodiment of the present invention, each local node 100 has the same system architecture as the other local nodes 100 . That is, each local node 100 can run its respective proxy 102 to accept file access requests from the client sides in the respective local network.
  • Each local application server 101 is any appropriate kind of computer as is known in the art, which is used to run various kinds of server application programs (not shown) such as a server edition of an integrated management studio.
  • Each proxy 102 runs on its respective local application server 101 as one of Dynamic Link Libraries (DLLs).
  • the proxy 102 is called by its respective server application programs in order to determine whether copies of files in the local file server 103 need to be updated, and to download latest editions of corresponding files from the central node 120 .
  • DLL Dynamic Link Libraries
  • a DLL is a library of executable functions or data that can be used by a Windows application program.
  • a DLL provides one or more particular functions, and a program accesses the functions by creating a static or dynamic link to the DLL.
  • Each local file server 103 is any appropriate kind of computer combined with the appropriate software as is known in the art.
  • the local file server 103 is connected with the local application server 101 .
  • the local file server 103 stores one copy of each file that is shared between the local nodes 100 , and provides download and upload services.
  • Each local database 104 is connected with its respective local application server 101 , and stores essential information on copies of files in the local file server 103 . This is described in more detail below with reference to FIG. 3 .
  • the local database 104 needs a database management system (not shown) to run.
  • the database management system may be a relational database system.
  • the network 110 is the Internet, an intranet, or a wide area network that comprises a plurality of local area networks connected together via routers and switches. Through the network 110 , the local nodes 100 and the central node 120 can communicate with each other and perform file synchronization.
  • the central node 120 acts as a server in the network 110 .
  • the central node 120 comprises a central application server 121 , a central file server 123 , and a central database 124 .
  • the central application server 121 runs the synchronization program 122 therein, to updates files in the central file server 123 .
  • the central file server 123 stores the latest editions of the files that are shared between the local nodes 100 .
  • the central database 124 stores file update annals.
  • the file update annals record all updating information on all copies of files in all the local file servers 103 . This is described in more detail below with reference to FIG. 4 .
  • any of the local nodes 100 may function as the central node 120 instead of the central node 120 . If one of the local nodes 100 functions in this way, its local database 104 stores not only essential information on copies of files in its local file server 103 , but also file update annals similar to those described above. Said local file server 103 functions in the same way as the above-described central file server 123 . The above-described synchronization program 122 runs on the relevant local application server 101 .
  • FIG. 2 is a schematic diagram of working principles of said system for synchronizing files in multiple nodes.
  • compiling a file shared by multiple users means compiling a plurality of copies of the shared file respectively used by the users. These copies of the file need to be synchronized in order to maintain consistent content of the file.
  • each local node 100 has one copy of each file that is shared between all local nodes 100 , and these copies of files are stored in the relevant local file server 103 . If a user updates a copy of a file in the local file server 103 , the other copies of the file in other local nodes 100 then need to be updated accordingly by way of file synchronization.
  • the proxy 102 is a DLL stored in the local application server 101 .
  • the proxy 102 is called to upload the required file to the local file server 103 , and to add a new item of update information to the file update annals in the central database 124 .
  • the proxy 102 is called to determine whether the copy needs to be updated. If the copy needs to be updated, the proxy 102 downloads the corresponding latest edition of the file from the central file server 123 , and updates the copy in the local file server 103 .
  • the synchronization program 122 running on the central application server 121 continuously updates files in the central file server 123 .
  • the synchronization program 122 periodically connects with the local file servers 103 , downloads updated copies of files, and uploads updated copies of files to the central file server 123 as the latest editions of the corresponding files.
  • FIG. 3 shows an exemplary local file information table used in accordance with the preferred embodiment of the present invention.
  • each local node 100 has one local file information table 130 stored in the relevant local database 104 .
  • the local file information table 130 stores essential information on copies of files in the relevant local file server 103 .
  • the local file information table 130 comprises the following fields: file serial number 131 , file name 132 , file directory 133 , and update time 134 .
  • File serial number 131 indicates copies of files in the local file server 103 . Each copy of a file has a unique serial number.
  • File directory 133 indicates where in the local file server 103 copies of files are stored.
  • Update time 134 indicates when copies of files in the local file server 103 were updated.
  • FIG. 4 shows an exemplary file update information table used in accordance with the preferred embodiment of the present invention.
  • the proxy 102 After updating a copy of a file in the local file server 103 , the proxy 102 adds a new item of update information to the file update annals.
  • the file update annals are stored in the file update information table 140 in the central database 124 .
  • the file update information table 140 can be read and written by both the proxy 102 and the synchronization program 122 .
  • the file update information table 140 comprises the following fields: file serial number 141 , file name 142 , original directory 143 , update time 144 , target directory 145 , and upload completion 146 .
  • File serial number 141 , file name 142 , original directory 143 and update time 144 respectively correspond to file serial number 131 , file name 132 , file directory 133 and update time 134 of the local file information table 130 .
  • said fields 141 , 142 , 143 , 144 are filled out according to the values in the corresponding fields 131 , 132 , 133 , 134 in the local file information table 130 .
  • target directory 145 and upload completion 146 are set to null by the proxy 102 .
  • FIG. 5 is a block diagram of function modules of one proxy of said system for synchronizing files in multiple nodes.
  • the proxy 102 comprises a proxy module 1021 , a database access module 1022 , and a file transport module 1023 .
  • the proxy module 1021 receives file access requests from application programs running on its local application server 101 . For each file access request, the proxy module 1021 calls the database access module 1022 to read corresponding items from the local file information table 130 and the file update information table 140 respectively. The proxy module 1021 compares a value in update time 134 and a value in update time 144 for read corresponding items, and determines whether the required file has already been updated. The proxy module 1021 then calls the file transport module 1023 .
  • the database access module 1022 serves as a middle layer between the proxy module 1021 and the local database 104 or the central database 124 .
  • the database access module 1022 is used to access the local file information table 130 and the file update information table 140 .
  • the file transport module 1023 serves as a middle layer between the proxy module 1021 and the local file server 103 or the central file server 123 .
  • the file transport module 1023 is used for downloading copies of files from the its local file server 103 , or for downloading latest editions of files from the central file server 123 and uploading said latest editions of files to the local file server 103 .
  • FIG. 6 is a block diagram of function modules of a synchronization program of said system for synchronizing files in multiple nodes.
  • the synchronization program 122 running on the central application server 121 reads the file update information table 140 , downloads updated copies of files from local file servers 103 , and uploads said copies as the latest editions of shared files to the central file server 123 .
  • the synchronization program 122 comprises a synchronization module 1221 , a database access module 1222 , a file transport module 1223 , and a user interface module 1224 .
  • the synchronization module 1221 communicates with the database access module 1222 , the file transport module 1223 , and the user interface module 1224 .
  • the synchronization module 1221 calls the database access module 1222 to read the file update information table 140 , and obtains items from the file update information table 140 that have a value of null in upload completion 146 .
  • the synchronization module 1221 reads said items, downloads corresponding updated copies of files from local file servers 103 , and uploads said copies of files to the central file server 123 .
  • the synchronization module 1221 periodically scans the file update information table 140 to obtain said items.
  • the file update information table 140 has an index that indicates all items that have a value of null in upload completion 146 .
  • the database access module 1222 is used to access the central database 124 , and to read the file update information table 140 including the index thereof.
  • the file transport module 1223 is used to download updated copies of files from the local file servers 103 , and to upload said updated copies of files to the central file server 123 .
  • the user interface module 1224 provides an operating interface for a user.
  • the user interface module 1224 is mainly used to set a period of regular scanning of the file update information table 140 by the synchronization module 1221 , and to examine a status of updating of files in the central file server 123 via the file update information table 140 .
  • FIGS. 7 and 8 cooperatively comprise a flow chart of operation of the proxy 102 of one local node 100 , in accordance with the preferred embodiment of the present invention.
  • an application running on the local application server 101 calls the proxy 102 (Step S 11 ).
  • the proxy module 1021 determines whether the application requires reading or writing of a file (Step S 11 ). If reading of a file is required, the proxy module 1021 calls the database access module 1022 to read corresponding items in the local file information table 130 and the file update information table 140 respectively. If there is a plurality of items of the required file in the file update information table 140 , only the latest item is read. The latest item is determined according to a value in update time 144 being the latest value (Step S 21 ).
  • the proxy module 1021 compares a value in update time 134 and a value in update time 144 for read corresponding items (Step S 22 ). If the value in update time 134 is not earlier than the value in update time 144 , this means that the required file has not been updated by any of the other local nodes 100 . Therefore, the corresponding copy of the file in the local file server 103 does not need to be updated.
  • the proxy module 1021 calls the file transport module 1023 to access the local file server 103 in order to download the copy of the required file (Step S 23 ), whereupon the procedure is ended. If the value in update time 134 is earlier than the value in update time 144 , this means that the required file has been updated by one of the other local nodes 100 .
  • the proxy module 1021 also ascertains whether a value in upload completion 146 for the corresponding item is null (Step S 24 ). If the value in upload completion 146 is null, this means that a latest edition of the required file is not in the central file server 123 . The proxy module 1021 sends a message to said application in order to finish the call (Step S 25 ), whereupon the procedure is ended. If the value in upload completion 146 is not null, this means that the latest edition of the required file is in the central file server 123 . The proxy module 1021 calls the file transport module 1023 to download the file from the central file server 123 , and to upload the file to the local file server 103 in order to update the corresponding copy therein. The proxy module 1021 then resets a value in update time 134 for the corresponding item (Step S 26 ), whereupon the procedure is ended.
  • Step S 1 if in Step S 1 the proxy module 1021 determines that the application requires writing of a file, the proxy module 1021 calls the database module 1022 to read corresponding items from the local file information table 130 and the file update information table 140 respectively. If there is a plurality of items of the required file in the file update information table 140 , only the latest item is read. The latest item is determined according to a value in update time 144 being the latest value (Step S 31 ). The proxy module 1021 compares a value in update time 134 and a value in update time 144 for read corresponding items (Step S 32 ).
  • the proxy module 1021 sends a message to said application in order to finish the call (Step S 33 ), whereupon the procedure is ended. If the value in update time 134 is not earlier than the value in update time 144 , this means that the required file has not been updated by any of the other local nodes 100 .
  • the proxy module 1021 calls the file transport module 1023 to upload the required file to the local file server 103 (Step S 34 ).
  • the proxy module 1021 still calls the database access module 1022 to write the local file information table 130 and the file update information table 140 respectively.
  • Such writing includes resetting a value in update time 134 for the corresponding item in the local file information table 130 , and adding one new item to the file update information table 140 .
  • the fields 141 , 142 , 143 , 144 are filled out according to corresponding fields 131 , 132 , 133 , 134 of the corresponding item in the local file information table 130 .
  • the other two fields in the file update information table 140 namely target directory 145 and upload completion 146 , are set to null.
  • the values in update time 134 and update time 144 are equal to the modifying time of the required file (Step S 35 ). The procedure is thus ended.
  • FIG. 9 is a flow chart of operation of the synchronization program 122 of the central node 120 , in accordance with the preferred embodiment of the present invention.
  • the synchronization module 1221 begins to run on the central application server 121 at the end of the predefined period (Step S 50 ).
  • the synchronization module 1221 calls the database access module 1222 to read items whose values are null in upload completion 146 of the file update information table 140 (Step S 51 ).
  • the synchronization module 1221 ascertains whether a current item is null (Step S 52 ). If the current item is not null, the synchronization module 1221 reads the values in file serial number 141 , file name 142 and original directory 143 for the current item.
  • the synchronization module 1221 calls the file transport module 1223 to download a copy of the file from the relevant local file server 103 according to the read values, and upload said copy of the file to the central file server 123 as the latest edition (Step S 53 ).
  • the synchronization module 1221 then reads a next item by returning to Step S 52 (Step S 54 ). If and when the current item is null, this means that there are no more files in the central file server 123 which needing updating, and the procedure is ended.

Abstract

A system and method for performing file synchronization in multiple nodes. The system includes a central node (120), and a plurality of local nodes (100) connected with the central node by a common communications network (110). Each local node includes a local application server (101), a local file server (103), and a local database (104). The central node includes a central application server (121), a central file server (123), and a central database (124). A synchronization program (122) running on the central application server downloads updated copies of files from the local file servers, and uploads the updated copies of files to the central file server as latest editions of the files. A proxy (102) running on each local application server updates copies of files in its respective local file server, and downloads latest editions of files from the central node.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a system and method for synchronizing files, and especially to a system and method for synchronizing files in multiple nodes via a central node in a network.
2. Description of Related Art
A large enterprise that has branch offices distributed in different areas typically uses an intranet for communication among the branch offices. The intranet comprises a plurality of local area networks (LAN). Each LAN includes at least one server computer and a plurality of client computers, which together constitute a network computer system. A characteristic feature of the network computer system is that the server computers only store resources, and the client computers only run client side programs to communicate with the server computers.
The resources stored in server computers include server side programs, data for processing, and so on. In practice, a variety of server computers have different uses. For example, an application server is used for running server application programs, a file server is used for uploading and downloading files, and a database server is used for accessing a vast store of structured data.
Clients in the intranet may need to compile a file that is cooperatively shared among different LANs. The file server in each LAN stores one copy of the file. In these circumstances, file synchronization of the copies of the file in the different file servers should be performed. This is needed in order to maintain consistency between any updated copy in one file server and other copies in the other file servers.
P.R.China Patent No. CN1353836 discloses a system and method for managing files in a distributed environment. The invention includes a method for synchronizing files among different nodes in a network. According to the invention, a file controller is installed on the client side. The file controller is used for managing local files, exchanging data among nodes, and generating indexes for orientating files in a network. When a user in a node requires access to a file, the file controller obtains the storage location of the file according to the relevant indexes, copies the file to the node, and amends information in the relevant indexes. When the copy of the file is changed, the file controller performs file synchronization with all other nodes that have other copies of the file according to the indexes of the file.
However, the method disclosed in this invention is still relatively rudimentary. There are two important shortcomings, as described below.
First, unneeded file synchronization is performed. Suppose that there are 3 nodes in a network named nodes A, B, C; and each node has one copy of a same file. When node A updates its copy, the copy in node C is updated accordingly. When node B updates its copy, the copy in node C is updated accordingly, too. But node C accesses its own copy only after Node B updates its copy. That means the first file synchronization in node C is not needed.
Second, in some cases of file synchronization, excessively large network communication traffic is required. Suppose that a file is needed by every node in a network, and each node has one copy of the file. When a copy of the file in one of the nodes is changed, all the other nodes are required to perform file synchronization with said one of the nodes at the same time. In this case, relatively heavy network communication traffic is needed.
SUMMARY OF THE INVENTION
It is a general object of the present invention to provide a system and method for synchronizing files in multiple nodes, whereby a node performs file synchronization only when files in the node need to be accessed.
It is another object of the present invention to provide a system and method for synchronizing files in multiple nodes, whereby excessively large network communication traffic is avoided.
In order to achieve the aforementioned objects, the present invention provides a system for synchronizing files in multiple nodes. The system for synchronizing files in multiple nodes comprising a central node, and a plurality of local nodes connected with the central node by a network.
The local nodes act as servers in the network. Each local node comprises: a local file server that stores one copy of each file that is shared between the local nodes, and copies of files needing to be synchronized with corresponding files in the central node; a local database that stores information on copies of files in the local file server; and a local application server that runs a proxy to update copies of files in the local file server, and to download latest editions of corresponding files from the central node.
The central node acts as a server in the network, and comprises: a central database that records all update information on copies of files in all the local file servers; a central file server that stores latest editions of files that are shared between the local nodes; and a central application server comprising a synchronization program for update files in the central file server. The synchronization program downloads updated copies of files from the relevant local file servers, and updates the central file server accordingly.
In order to achieve the aforementioned objects, the present invention also provides a method for synchronizing files in multiple nodes. File synchronization is performed between a plurality of local nodes via a central node. The central node comprises a central application server, a central file server, and a central database. Each local node comprises a local application, a local file server, and a local database. The method for synchronizing files in multiple nodes comprises the following steps: (i) storing one copy of each file that is shared between the local nodes in each of the local file servers; (ii) creating a first table in each of the local databases to store information on copies of files in its respective local file server; (iii) creating a second table in the central database to record all update information on copies of files in all the local file servers; (iv) updating a copy of a file in one of the local file servers; (v) adding a new item of update information on the file in the second table; (vi) downloading the updated copy of the file from said one of the local file servers, and uploading the updated copy of the file to the central file server as the latest edition of the file; (vii) determining whether a required copy of the file in another of the local file servers needs to be updated; and (viii) downloading the latest edition of the file from the central file server to update said another of the local file servers if the required copy of the file needs to be updated.
Other objects, advantages and novel features of the present invention will be drawn from the following detailed description of preferred embodiments of the present invention with the attached drawings, in which:
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram of architecture of a system for synchronizing files in multiple nodes in accordance with a preferred embodiment of the present invention;
FIG. 2 is a schematic diagram of working principles of said system for synchronizing files in multiple nodes;
FIG. 3 shows an exemplary local file information table used in accordance with the preferred embodiment of the present invention;
FIG. 4 shows an exemplary file update information table used in accordance with the preferred embodiment of the present invention;
FIG. 5 is a block diagram of function modules of one proxy of said system for synchronizing files in multiple nodes;
FIG. 6 is a block diagram of function modules of a synchronization program of said system for synchronizing files in multiple nodes;
FIGS. 7 and 8 cooperatively comprise a flow chart of operation of said one proxy in accordance with a preferred embodiment of the present invention; and
FIG. 9 is a flow chart of operation of said synchronization program in accordance with the preferred embodiment of the present invention.
DETAIL DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
FIG. 1 is a schematic diagram of architecture of a system for synchronizing files in multiple nodes in accordance with a preferred embodiment of the present invention. The system for synchronizing files in multiple nodes comprises a central node 120, and a plurality of local nodes 100 connected with the central node 120 by a common communications network 110. The central node 120 comprises a central application server 121, a synchronization program 122, a central file server 123, and a central database 124. Each local node 100 comprises a local application server 101, a proxy 102, a local file server 103, and a local database 104.
The local nodes 100 act as servers in their respective local networks (not shown). Each local network is connected with the network 110 via a router or switch, and includes a plurality of client sides (not shown). The client sides run client application programs to send requests for file access to the local nodes 100. In the preferred embodiment of the present invention, each local node 100 has the same system architecture as the other local nodes 100. That is, each local node 100 can run its respective proxy 102 to accept file access requests from the client sides in the respective local network.
Each local application server 101 is any appropriate kind of computer as is known in the art, which is used to run various kinds of server application programs (not shown) such as a server edition of an integrated management studio.
Each proxy 102 runs on its respective local application server 101 as one of Dynamic Link Libraries (DLLs). The proxy 102 is called by its respective server application programs in order to determine whether copies of files in the local file server 103 need to be updated, and to download latest editions of corresponding files from the central node 120. These procedures are described in more detail below. A DLL is a library of executable functions or data that can be used by a Windows application program. Typically, a DLL provides one or more particular functions, and a program accesses the functions by creating a static or dynamic link to the DLL.
Each local file server 103 is any appropriate kind of computer combined with the appropriate software as is known in the art. The local file server 103 is connected with the local application server 101. The local file server 103 stores one copy of each file that is shared between the local nodes 100, and provides download and upload services.
Each local database 104 is connected with its respective local application server 101, and stores essential information on copies of files in the local file server 103. This is described in more detail below with reference to FIG. 3. The local database 104 needs a database management system (not shown) to run. The database management system may be a relational database system.
The network 110 is the Internet, an intranet, or a wide area network that comprises a plurality of local area networks connected together via routers and switches. Through the network 110, the local nodes 100 and the central node 120 can communicate with each other and perform file synchronization.
The central node 120 acts as a server in the network 110. The central node 120 comprises a central application server 121, a central file server 123, and a central database 124. The central application server 121 runs the synchronization program 122 therein, to updates files in the central file server 123. The central file server 123 stores the latest editions of the files that are shared between the local nodes 100. The central database 124 stores file update annals. The file update annals record all updating information on all copies of files in all the local file servers 103. This is described in more detail below with reference to FIG. 4.
In alternative embodiments of the present invention, any of the local nodes 100 may function as the central node 120 instead of the central node 120. If one of the local nodes 100 functions in this way, its local database 104 stores not only essential information on copies of files in its local file server 103, but also file update annals similar to those described above. Said local file server 103 functions in the same way as the above-described central file server 123. The above-described synchronization program 122 runs on the relevant local application server 101.
FIG. 2 is a schematic diagram of working principles of said system for synchronizing files in multiple nodes. For convenience, only one local node 100 is shown. In a distributed network environment, compiling a file shared by multiple users means compiling a plurality of copies of the shared file respectively used by the users. These copies of the file need to be synchronized in order to maintain consistent content of the file. In the preferred embodiment of the present invention, each local node 100 has one copy of each file that is shared between all local nodes 100, and these copies of files are stored in the relevant local file server 103. If a user updates a copy of a file in the local file server 103, the other copies of the file in other local nodes 100 then need to be updated accordingly by way of file synchronization.
The proxy 102 is a DLL stored in the local application server 101. When an application program running on its local application server 101 needs to rewrite a copy of a file in the local file server 103, the proxy 102 is called to upload the required file to the local file server 103, and to add a new item of update information to the file update annals in the central database 124.
In addition, when an application program running on its local application server 101 needs to read a copy of a file in the local file server 103, the proxy 102 is called to determine whether the copy needs to be updated. If the copy needs to be updated, the proxy 102 downloads the corresponding latest edition of the file from the central file server 123, and updates the copy in the local file server 103.
On the central node 120 side, the synchronization program 122 running on the central application server 121 continuously updates files in the central file server 123. The synchronization program 122 periodically connects with the local file servers 103, downloads updated copies of files, and uploads updated copies of files to the central file server 123 as the latest editions of the corresponding files.
FIG. 3 shows an exemplary local file information table used in accordance with the preferred embodiment of the present invention. Normally, in order to provide convenient transportation of files, each local node 100 has one local file information table 130 stored in the relevant local database 104. The local file information table 130 stores essential information on copies of files in the relevant local file server 103. The local file information table 130 comprises the following fields: file serial number 131, file name 132, file directory 133, and update time 134.
File serial number 131 indicates copies of files in the local file server 103. Each copy of a file has a unique serial number. File directory 133 indicates where in the local file server 103 copies of files are stored. Update time 134 indicates when copies of files in the local file server 103 were updated.
FIG. 4 shows an exemplary file update information table used in accordance with the preferred embodiment of the present invention. After updating a copy of a file in the local file server 103, the proxy 102 adds a new item of update information to the file update annals. The file update annals are stored in the file update information table 140 in the central database 124. The file update information table 140 can be read and written by both the proxy 102 and the synchronization program 122. The file update information table 140 comprises the following fields: file serial number 141, file name 142, original directory 143, update time 144, target directory 145, and upload completion 146.
File serial number 141, file name 142, original directory 143 and update time 144 respectively correspond to file serial number 131, file name 132, file directory 133 and update time 134 of the local file information table 130. When the proxy 102 adds a new item of update information to the file update information table 140, said fields 141, 142, 143, 144 are filled out according to the values in the corresponding fields 131, 132, 133, 134 in the local file information table 130. In addition, target directory 145 and upload completion 146 are set to null by the proxy 102. Once the updated copy of the file is uploaded to the central file server 123, the synchronization program 122 fills out said fields 145, 146.
FIG. 5 is a block diagram of function modules of one proxy of said system for synchronizing files in multiple nodes. The proxy 102 comprises a proxy module 1021, a database access module 1022, and a file transport module 1023.
The proxy module 1021 receives file access requests from application programs running on its local application server 101. For each file access request, the proxy module 1021 calls the database access module 1022 to read corresponding items from the local file information table 130 and the file update information table 140 respectively. The proxy module 1021 compares a value in update time 134 and a value in update time 144 for read corresponding items, and determines whether the required file has already been updated. The proxy module 1021 then calls the file transport module 1023.
The database access module 1022 serves as a middle layer between the proxy module 1021 and the local database 104 or the central database 124. The database access module 1022 is used to access the local file information table 130 and the file update information table 140.
The file transport module 1023 serves as a middle layer between the proxy module 1021 and the local file server 103 or the central file server 123. The file transport module 1023 is used for downloading copies of files from the its local file server 103, or for downloading latest editions of files from the central file server 123 and uploading said latest editions of files to the local file server 103.
FIG. 6 is a block diagram of function modules of a synchronization program of said system for synchronizing files in multiple nodes. The synchronization program 122 running on the central application server 121 reads the file update information table 140, downloads updated copies of files from local file servers 103, and uploads said copies as the latest editions of shared files to the central file server 123. The synchronization program 122 comprises a synchronization module 1221, a database access module 1222, a file transport module 1223, and a user interface module 1224.
The synchronization module 1221 communicates with the database access module 1222, the file transport module 1223, and the user interface module 1224. The synchronization module 1221 calls the database access module 1222 to read the file update information table 140, and obtains items from the file update information table 140 that have a value of null in upload completion 146. The synchronization module 1221 reads said items, downloads corresponding updated copies of files from local file servers 103, and uploads said copies of files to the central file server 123. The synchronization module 1221 periodically scans the file update information table 140 to obtain said items. In addition, the file update information table 140 has an index that indicates all items that have a value of null in upload completion 146.
The database access module 1222 is used to access the central database 124, and to read the file update information table 140 including the index thereof.
The file transport module 1223 is used to download updated copies of files from the local file servers 103, and to upload said updated copies of files to the central file server 123.
The user interface module 1224 provides an operating interface for a user. The user interface module 1224 is mainly used to set a period of regular scanning of the file update information table 140 by the synchronization module 1221, and to examine a status of updating of files in the central file server 123 via the file update information table 140.
FIGS. 7 and 8 cooperatively comprise a flow chart of operation of the proxy 102 of one local node 100, in accordance with the preferred embodiment of the present invention. First, an application running on the local application server 101 calls the proxy 102 (Step S11). The proxy module 1021 determines whether the application requires reading or writing of a file (Step S11). If reading of a file is required, the proxy module 1021 calls the database access module 1022 to read corresponding items in the local file information table 130 and the file update information table 140 respectively. If there is a plurality of items of the required file in the file update information table 140, only the latest item is read. The latest item is determined according to a value in update time 144 being the latest value (Step S21). The proxy module 1021 compares a value in update time 134 and a value in update time 144 for read corresponding items (Step S22). If the value in update time 134 is not earlier than the value in update time 144, this means that the required file has not been updated by any of the other local nodes 100. Therefore, the corresponding copy of the file in the local file server 103 does not need to be updated. The proxy module 1021 calls the file transport module 1023 to access the local file server 103 in order to download the copy of the required file (Step S23), whereupon the procedure is ended. If the value in update time 134 is earlier than the value in update time 144, this means that the required file has been updated by one of the other local nodes 100. The proxy module 1021 also ascertains whether a value in upload completion 146 for the corresponding item is null (Step S24). If the value in upload completion 146 is null, this means that a latest edition of the required file is not in the central file server 123. The proxy module 1021 sends a message to said application in order to finish the call (Step S25), whereupon the procedure is ended. If the value in upload completion 146 is not null, this means that the latest edition of the required file is in the central file server 123. The proxy module 1021 calls the file transport module 1023 to download the file from the central file server 123, and to upload the file to the local file server 103 in order to update the corresponding copy therein. The proxy module 1021 then resets a value in update time 134 for the corresponding item (Step S26), whereupon the procedure is ended.
However, referring particularly to FIG. 8, if in Step S1 the proxy module 1021 determines that the application requires writing of a file, the proxy module 1021 calls the database module 1022 to read corresponding items from the local file information table 130 and the file update information table 140 respectively. If there is a plurality of items of the required file in the file update information table 140, only the latest item is read. The latest item is determined according to a value in update time 144 being the latest value (Step S31). The proxy module 1021 compares a value in update time 134 and a value in update time 144 for read corresponding items (Step S32). If the value in update time 134 is earlier than the value in update time 144, this means that the required file has been updated by one of the other local nodes 100, and the latest edition of the file has not yet been read by the relevant local node 100. The proxy module 1021 sends a message to said application in order to finish the call (Step S33), whereupon the procedure is ended. If the value in update time 134 is not earlier than the value in update time 144, this means that the required file has not been updated by any of the other local nodes 100. The proxy module 1021 calls the file transport module 1023 to upload the required file to the local file server 103 (Step S34). The proxy module 1021 still calls the database access module 1022 to write the local file information table 130 and the file update information table 140 respectively. Such writing includes resetting a value in update time 134 for the corresponding item in the local file information table 130, and adding one new item to the file update information table 140. In the file update information table 140, the fields 141, 142, 143, 144 are filled out according to corresponding fields 131, 132, 133, 134 of the corresponding item in the local file information table 130. The other two fields in the file update information table 140, namely target directory 145 and upload completion 146, are set to null. The values in update time 134 and update time 144 are equal to the modifying time of the required file (Step S35). The procedure is thus ended.
FIG. 9 is a flow chart of operation of the synchronization program 122 of the central node 120, in accordance with the preferred embodiment of the present invention. First, the synchronization module 1221 begins to run on the central application server 121 at the end of the predefined period (Step S50). The synchronization module 1221 calls the database access module 1222 to read items whose values are null in upload completion 146 of the file update information table 140 (Step S51). The synchronization module 1221 ascertains whether a current item is null (Step S52). If the current item is not null, the synchronization module 1221 reads the values in file serial number 141, file name 142 and original directory 143 for the current item. The synchronization module 1221 calls the file transport module 1223 to download a copy of the file from the relevant local file server 103 according to the read values, and upload said copy of the file to the central file server 123 as the latest edition (Step S53). The synchronization module 1221 then reads a next item by returning to Step S52 (Step S54). If and when the current item is null, this means that there are no more files in the central file server 123 which needing updating, and the procedure is ended.
Although the present invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described above. Rather, the specific features and steps described above are disclosed as preferred forms of implementing the claimed invention.

Claims (8)

1. A method for synchronizing files in multiple nodes, whereby file synchronization between a plurality of local nodes is performed via a central node, the central node comprising a central application server, a central file server and a central database, and each of the local nodes comprising a local application, a local file server and a local database, the method comprising the following steps:
(a) storing one copy of each file that is shared between the local nodes;
(b) creating a first table in each of the local databases to store information on copies of files in its respective local file server;
(c) creating a second table in the central database to record all update information on copies of files in all the local file servers;
(d) updating a copy of a file in one of the local file servers;
(e) adding a new item of update information on the file in the second table;
(f) downloading the updated copy of the file from said one of the local file servers, and uploading the updated copy of the file to the central file server as the latest edition of the file;
(g) determining whether a required copy of the file in another of the local file servers needs to be updated; and
(h) downloading the latest edition of the file from the central file server to update said another of the local file servers if the required copy of the file needs to be updated.
2. The method of claim 1, wherein the first table comprises fields of file name, file directory, and update time.
3. The method of claim 2, wherein the second table comprises fields of file name, original directory, update time, target directory, and upload completion.
4. The method of claim 3, wherein the fields of file name, original directory and update time in the second table correspond with the fields of file name, file directory and update time in the first table respectively.
5. The method of claim 3, wherein step (e) further comprises the step of:
filling out the fields of file name, original directory and update time for the new item of update information in the second table according to the corresponding fields of the corresponding item in the first table, and setting the files of target directory and upload completion in the second table to null.
6. The method of claim 3, wherein step (f) further comprises the step of:
reading items whose values in the field of upload completion in the second table are null, in order to update the central file server.
7. The method of claim 3, wherein step (g) further comprises the step of:
comparing values in the field of update time for corresponding items in the first table and in the second table in order to determine whether the required copy of the file needs to be updated.
8. A method of synchronizing files based upon a same item in multiple nodes comprising a central node connected with a plurality of local nodes, wherein the central node is equipped with a central application server, a central file server and a central database, and each of said local nodes is equipped with a local application server, a local file server and a local database, the method comprising steps of:
in a READ procedure:
(1) obtaining a file updated time in the local database;
(2) comparing said updated time with that recorded in the central database;
(3) downloading a corresponding file from the local file server if the updated time in the local database is later than that in the central database, or
(4) downloading a corresponding file from the central file server if the updated time in the local database is earlier than that in the central database;
in a WRITE procedure:
(1) obtaining a file updated time in the local database;
(2) comparing said updated time with that recorded in the central database;
(3) uploading the corresponding file from the local file server to the central file server if the updated time in the local database is later than that in the central database, or
(4) warning an editor of the corresponding file regarding other editors having already revised the file from other local nodes if the updated time in the local database is earlier than that in the central database.
US10/335,516 2002-10-04 2002-12-30 System and method for synchronizing files in multiple nodes Expired - Lifetime US7139780B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW091122978A TWI220713B (en) 2002-10-04 2002-10-04 System and method for synchronizing documents between multi-nodes
TW91122978 2002-10-04

Publications (2)

Publication Number Publication Date
US20040068516A1 US20040068516A1 (en) 2004-04-08
US7139780B2 true US7139780B2 (en) 2006-11-21

Family

ID=32041184

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/335,516 Expired - Lifetime US7139780B2 (en) 2002-10-04 2002-12-30 System and method for synchronizing files in multiple nodes

Country Status (2)

Country Link
US (1) US7139780B2 (en)
TW (1) TWI220713B (en)

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259579A1 (en) * 2005-05-11 2006-11-16 Bigfoot Networks, Inc. Distributed processing system and method
US20070060373A1 (en) * 2005-09-12 2007-03-15 Bigfoot Networks, Inc. Data communication system and methods
US20070078929A1 (en) * 2005-09-30 2007-04-05 Bigfoot Networks, Inc. Distributed processing system and method
US20070204031A1 (en) * 2006-02-21 2007-08-30 Kent Alstad Storing and retrieving user context data
US20070209040A1 (en) * 2006-02-21 2007-09-06 Kent Alstad Asynchronous Context Data Messaging
US20080016166A1 (en) * 2006-07-17 2008-01-17 Bigfoot Networks, Inc. Host posing network device and method thereof
US20080016236A1 (en) * 2006-07-17 2008-01-17 Bigfoot Networks, Inc. Data buffering and notification system and methods thereof
US20080104133A1 (en) * 2006-10-27 2008-05-01 Purdue Pharma L.P. Data cache techniques in support of synchronization of databases in a distributed environment
US20080120434A1 (en) * 2006-02-21 2008-05-22 Strangeloop Networks, Inc. In-Line Network Device for Storing Application-Layer Data, Processing Instructions, and/or Rule Sets
US20080183861A1 (en) * 2007-01-26 2008-07-31 Bigfoot Networks, Inc. Communication Socket State Monitoring System and Methods Thereof
US20080235713A1 (en) * 2007-03-23 2008-09-25 Bigfoot Networks, Inc. Distributed Processing System and Method
US20080239954A1 (en) * 2007-03-26 2008-10-02 Bigfoot Networks, Inc. Method and system for communication between nodes
US20080281981A1 (en) * 2007-05-09 2008-11-13 Murata Machinery, Ltd. Relay server and relay communication system
US20090024872A1 (en) * 2007-07-20 2009-01-22 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
US20090025073A1 (en) * 2007-07-20 2009-01-22 Bigfoot Networks, Inc. Client authentication device and methods thereof
US20090043881A1 (en) * 2007-08-10 2009-02-12 Strangeloop Networks, Inc. Cache expiry in multiple-server environment
US20090141713A1 (en) * 2007-11-29 2009-06-04 Bigfoot Networks, Inc. Remote Message Routing Device and Methods Thereof
US20090254707A1 (en) * 2008-04-08 2009-10-08 Strangeloop Networks Inc. Partial Content Caching
US20090276488A1 (en) * 2008-05-05 2009-11-05 Strangeloop Networks, Inc. Extensible, Asynchronous, Centralized Analysis And Optimization Of Server Responses To Client Requests
CN101132269B (en) * 2007-07-26 2010-06-23 中兴通讯股份有限公司 Data synchronization method and IPTV content distribution network system using the same
US20110102180A1 (en) * 2009-11-03 2011-05-05 Electronics And Telecommunications Research Institute Apparatus and method for estimating tag location
US20110231482A1 (en) * 2010-03-22 2011-09-22 Strangeloop Networks Inc. Automated Optimization Based On Determination Of Website Usage Scenario
US20130054527A1 (en) * 2011-08-29 2013-02-28 Pantech Co., Ltd. Terminal, server, and method for synchronizing application
WO2014078992A1 (en) * 2012-11-20 2014-05-30 杭州华为数字技术有限公司 Method and node device for upgrade
US9009098B1 (en) * 2008-06-30 2015-04-14 Emc Corporation Methods and apparatus for creating a centralized data store
US9292467B2 (en) 2011-09-16 2016-03-22 Radware, Ltd. Mobile resource accelerator
US9542501B2 (en) 2011-01-28 2017-01-10 Radware Ltd. System and method for presenting content in a client/server environment
US9549039B2 (en) 2010-05-28 2017-01-17 Radware Ltd. Accelerating HTTP responses in a client/server environment
CN106487852A (en) * 2015-08-31 2017-03-08 阿里巴巴集团控股有限公司 Realize the synchronous method of client file, device, terminal unit and system
US10157236B2 (en) 2011-05-23 2018-12-18 Radware, Ltd. Optimized rendering of dynamic content
US10831776B2 (en) 2012-02-28 2020-11-10 International Business Machines Corporation On-demand file synchronization

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117221B2 (en) * 2003-01-09 2006-10-03 International Business Machines Corporation Replication of changed information in a multi-master environment
US20040143626A1 (en) * 2003-01-21 2004-07-22 Dell Products L.P. Method and system for operating a cache for multiple files
US9678967B2 (en) * 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
US8942834B2 (en) * 2005-06-27 2015-01-27 Rockwell Automation Technologies, Inc. Method and apparatus for communicating transactions between an industrial controller and a programming interface
US8046448B2 (en) * 2005-11-03 2011-10-25 Sony Corporation System and method for information sharing
US8024290B2 (en) * 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
CN100561474C (en) * 2006-01-17 2009-11-18 鸿富锦精密工业(深圳)有限公司 Indexes of remote files at multiple points synchro system and method
US8225311B1 (en) 2006-03-30 2012-07-17 Emc Corporation Deploying and distributing content management code
US20080027892A1 (en) * 2006-07-27 2008-01-31 Kestrelink Corporation Dynamic stream file system network support
US20080034008A1 (en) * 2006-08-03 2008-02-07 Yahoo! Inc. User side database
JP2008059367A (en) * 2006-08-31 2008-03-13 Fujitsu Ltd System data structure management program, system data structure management device, and system data structure management method
EP2023260A1 (en) * 2007-08-08 2009-02-11 Hurra Communications GmbH Central profile server and method for operating a client-server system
US20090083441A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Synchronization of web service endpoints in a multi-master synchronization environment
JP5233582B2 (en) * 2008-02-18 2013-07-10 株式会社リコー Information processing apparatus, information processing method, and function expansion program
KR101711863B1 (en) * 2008-11-26 2017-03-13 캘거리 싸이언티픽 인코포레이티드 Method and system for providing remote access to a state of an application program
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
CA2751059A1 (en) * 2009-02-03 2010-08-12 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US8346869B2 (en) * 2009-04-13 2013-01-01 Microsoft Corporation Granular data synchronization for editing multiple data objects
US8930401B2 (en) 2010-10-25 2015-01-06 International Business Machines Corporation Accessing and providing access to computer files over a computer network
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
CN102780724B (en) * 2011-05-12 2016-02-10 阿里巴巴集团控股有限公司 A kind of sending method of category information, system and equipment
US9720747B2 (en) 2011-08-15 2017-08-01 Calgary Scientific Inc. Method for flow control and reliable communication in a collaborative environment
JP2014531626A (en) 2011-08-15 2014-11-27 カルガリー サイエンティフィック インコーポレイテッド Non-invasive remote access to application programs
CA2850422C (en) 2011-09-30 2023-09-26 Calgary Scientific Inc. Uncoupled application extensions including interactive digital surface layer for collaborative remote application sharing and annotating
WO2013076554A1 (en) 2011-11-23 2013-05-30 Calgary Scientific Inc. Methods ans systems for collaborative remote application sharing and conferencing
US20130218837A1 (en) * 2012-02-16 2013-08-22 Verizon Patent And Licensing Inc. Cloud data synchronization with local data
WO2013128284A1 (en) 2012-03-02 2013-09-06 Calgary Scientific Inc. Remote control of an application using dynamic-linked library (dll) injection
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
CN103986742B (en) * 2013-02-08 2018-08-31 纬创资通股份有限公司 The method and related electronic device of file synchronization
US20140379646A1 (en) * 2013-06-21 2014-12-25 Lexmark International Technologies, S.A. Replication of Updates to DICOM Content
WO2014209756A2 (en) * 2013-06-25 2014-12-31 Actiontec Electronics, Inc. Systems and methods for sharing digital information between mobile devices of friends and family using embedded devices
US9525991B2 (en) 2013-06-25 2016-12-20 Actiontec Electronics, Inc. Systems and methods for sharing digital information between mobile devices of friends and family using embedded devices
WO2015080845A1 (en) 2013-11-29 2015-06-04 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
WO2015085485A1 (en) * 2013-12-10 2015-06-18 华为终端有限公司 Synchronization method, terminal and server
CN104021200B (en) * 2014-06-16 2018-06-15 北京京东尚科信息技术有限公司 The method of data synchronization and device of a kind of database
GB2530052A (en) 2014-09-10 2016-03-16 Ibm Outputting map-reduce jobs to an archive file
AU2016210974A1 (en) 2015-01-30 2017-07-27 Calgary Scientific Inc. Highly scalable, fault tolerant remote access architecture and method of connecting thereto
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
CN104778214B (en) * 2015-03-20 2018-02-06 四川长虹电器股份有限公司 The distributed file system and its method of data synchronization redirected based on resource localizer
US10915519B2 (en) * 2016-09-09 2021-02-09 Salesforce.Com, Inc. Processing offline updates to records of a database system
IT201600096594A1 (en) * 2016-09-27 2018-03-27 Scuola Superiore Di Studi Univ E Di Perfezionamento Santanna Method of managing a telecommunications network
US10891302B2 (en) * 2018-01-08 2021-01-12 Accenture Global Solutions Limited Scalable synchronization with cache and index management
CN108616598B (en) * 2018-05-10 2021-01-01 新华三技术有限公司成都分公司 Data synchronization method and device and distributed storage system
CN109710586B (en) * 2018-12-28 2019-09-13 北京谷数科技有限公司 A kind of clustered node configuration file synchronous method and device
US20230128035A1 (en) * 2021-10-21 2023-04-27 EMC IP Holding Corpany, LLC System and Method for Distributed Data Consolidation
CN114048269B (en) * 2022-01-12 2022-04-22 北京奥星贝斯科技有限公司 Method and device for synchronously updating metadata in distributed database

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807558B1 (en) * 1995-06-12 2004-10-19 Pointcast, Inc. Utilization of information “push” technology
US5781908A (en) * 1995-12-18 1998-07-14 J.D. Edwards World Source Company File data synchronizer in a distributed data computer network
US6684331B1 (en) * 1999-12-22 2004-01-27 Cisco Technology, Inc. Method and apparatus for distributing and updating group controllers over a wide area network using a tree structure

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects

Cited By (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8167722B2 (en) 2005-05-11 2012-05-01 Qualcomm Atheros, Inc Distributed processing system and method
US9426207B2 (en) 2005-05-11 2016-08-23 Qualcomm Incorporated Distributed processing system and method
US20060259579A1 (en) * 2005-05-11 2006-11-16 Bigfoot Networks, Inc. Distributed processing system and method
US20070060373A1 (en) * 2005-09-12 2007-03-15 Bigfoot Networks, Inc. Data communication system and methods
US20070078929A1 (en) * 2005-09-30 2007-04-05 Bigfoot Networks, Inc. Distributed processing system and method
US9455844B2 (en) 2005-09-30 2016-09-27 Qualcomm Incorporated Distributed processing system and method
US20080120434A1 (en) * 2006-02-21 2008-05-22 Strangeloop Networks, Inc. In-Line Network Device for Storing Application-Layer Data, Processing Instructions, and/or Rule Sets
US8166114B2 (en) 2006-02-21 2012-04-24 Strangeloop Networks, Inc. Asynchronous context data messaging
US8037127B2 (en) 2006-02-21 2011-10-11 Strangeloop Networks, Inc. In-line network device for storing application-layer data, processing instructions, and/or rule sets
US8510400B2 (en) 2006-02-21 2013-08-13 Radware Ltd. Asynchronous context data messaging
US7937435B2 (en) 2006-02-21 2011-05-03 Strangeloop Networks, Inc. Identifying, storing, and retrieving context data for a network message
US20070209040A1 (en) * 2006-02-21 2007-09-06 Kent Alstad Asynchronous Context Data Messaging
US20070204031A1 (en) * 2006-02-21 2007-08-30 Kent Alstad Storing and retrieving user context data
US8612585B2 (en) 2006-02-21 2013-12-17 Radware, Ltd. In-line network device for storing application-layer data, processing instructions, and/or rule sets
US20080016236A1 (en) * 2006-07-17 2008-01-17 Bigfoot Networks, Inc. Data buffering and notification system and methods thereof
US8683045B2 (en) 2006-07-17 2014-03-25 Qualcomm Incorporated Intermediate network device for host-client communication
US20080016166A1 (en) * 2006-07-17 2008-01-17 Bigfoot Networks, Inc. Host posing network device and method thereof
US8874780B2 (en) 2006-07-17 2014-10-28 Qualcomm Incorporated Data buffering and notification system and methods thereof
US20080104133A1 (en) * 2006-10-27 2008-05-01 Purdue Pharma L.P. Data cache techniques in support of synchronization of databases in a distributed environment
US8660987B2 (en) 2006-10-27 2014-02-25 Purdue Pharma L.P. Data cache techniques in support of synchronization of databases in a distributed environment
US8195605B2 (en) * 2006-10-27 2012-06-05 Purdue Pharma L.P. Data cache techniques in support of synchronization of databases in a distributed environment
US7908364B2 (en) 2007-01-26 2011-03-15 Bigfoot Networks, Inc. Method storing socket state information in application space for improving communication efficiency of an application program
US20080183861A1 (en) * 2007-01-26 2008-07-31 Bigfoot Networks, Inc. Communication Socket State Monitoring System and Methods Thereof
US20080235713A1 (en) * 2007-03-23 2008-09-25 Bigfoot Networks, Inc. Distributed Processing System and Method
US8255919B2 (en) 2007-03-23 2012-08-28 Qualcomm Atheros, Inc. Distributed processing system and method
US8687487B2 (en) 2007-03-26 2014-04-01 Qualcomm Incorporated Method and system for communication between nodes
US20080239954A1 (en) * 2007-03-26 2008-10-02 Bigfoot Networks, Inc. Method and system for communication between nodes
US20080281981A1 (en) * 2007-05-09 2008-11-13 Murata Machinery, Ltd. Relay server and relay communication system
US8307100B2 (en) * 2007-05-09 2012-11-06 Murata Machinery, Ltd. Relay server and relay communication system
US20090025073A1 (en) * 2007-07-20 2009-01-22 Bigfoot Networks, Inc. Client authentication device and methods thereof
US20090024872A1 (en) * 2007-07-20 2009-01-22 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
US8499169B2 (en) 2007-07-20 2013-07-30 Qualcomm Incorporated Client authentication device and methods thereof
US8543866B2 (en) 2007-07-20 2013-09-24 Qualcomm Incorporated Remote access diagnostic mechanism for communication devices
US8909978B2 (en) 2007-07-20 2014-12-09 Qualcomm Incorporated Remote access diagnostic mechanism for communication devices
CN101132269B (en) * 2007-07-26 2010-06-23 中兴通讯股份有限公司 Data synchronization method and IPTV content distribution network system using the same
WO2009021318A1 (en) * 2007-08-10 2009-02-19 Strangeloop Networks, Inc. Cache expiry in multiple-server environment
US20090043881A1 (en) * 2007-08-10 2009-02-12 Strangeloop Networks, Inc. Cache expiry in multiple-server environment
US9270570B2 (en) 2007-11-29 2016-02-23 Qualcomm Incorporated Remote message routing device and methods thereof
US20090141713A1 (en) * 2007-11-29 2009-06-04 Bigfoot Networks, Inc. Remote Message Routing Device and Methods Thereof
US20090254707A1 (en) * 2008-04-08 2009-10-08 Strangeloop Networks Inc. Partial Content Caching
US9906620B2 (en) 2008-05-05 2018-02-27 Radware, Ltd. Extensible, asynchronous, centralized analysis and optimization of server responses to client requests
US11297159B2 (en) 2008-05-05 2022-04-05 Radware, Ltd. Extensible, asynchronous, centralized analysis and optimization of server responses to client requests
US20090276488A1 (en) * 2008-05-05 2009-11-05 Strangeloop Networks, Inc. Extensible, Asynchronous, Centralized Analysis And Optimization Of Server Responses To Client Requests
US9009098B1 (en) * 2008-06-30 2015-04-14 Emc Corporation Methods and apparatus for creating a centralized data store
US10735322B2 (en) 2009-04-20 2020-08-04 Radware, Ltd. Accelerating HTTP responses in a client/server environment
US20110102180A1 (en) * 2009-11-03 2011-05-05 Electronics And Telecommunications Research Institute Apparatus and method for estimating tag location
US20110231482A1 (en) * 2010-03-22 2011-09-22 Strangeloop Networks Inc. Automated Optimization Based On Determination Of Website Usage Scenario
US9549039B2 (en) 2010-05-28 2017-01-17 Radware Ltd. Accelerating HTTP responses in a client/server environment
US9542501B2 (en) 2011-01-28 2017-01-10 Radware Ltd. System and method for presenting content in a client/server environment
US10157236B2 (en) 2011-05-23 2018-12-18 Radware, Ltd. Optimized rendering of dynamic content
US20130054527A1 (en) * 2011-08-29 2013-02-28 Pantech Co., Ltd. Terminal, server, and method for synchronizing application
US9292467B2 (en) 2011-09-16 2016-03-22 Radware, Ltd. Mobile resource accelerator
US10831776B2 (en) 2012-02-28 2020-11-10 International Business Machines Corporation On-demand file synchronization
US10885060B2 (en) 2012-02-28 2021-01-05 International Business Machines Corporation On-demand file synchronization
CN104471894B (en) * 2012-11-20 2018-02-09 杭州华为数字技术有限公司 A kind of upgrade method and node device
WO2014078992A1 (en) * 2012-11-20 2014-05-30 杭州华为数字技术有限公司 Method and node device for upgrade
CN104471894A (en) * 2012-11-20 2015-03-25 杭州华为数字技术有限公司 Method and node device for upgrade
CN106487852A (en) * 2015-08-31 2017-03-08 阿里巴巴集团控股有限公司 Realize the synchronous method of client file, device, terminal unit and system
CN106487852B (en) * 2015-08-31 2020-02-18 阿里巴巴集团控股有限公司 Method, device, terminal equipment and system for realizing client file synchronization

Also Published As

Publication number Publication date
US20040068516A1 (en) 2004-04-08
TWI220713B (en) 2004-09-01

Similar Documents

Publication Publication Date Title
US7139780B2 (en) System and method for synchronizing files in multiple nodes
CN1261877C (en) Multi-node file syn chronizing system and method
US6647393B1 (en) Dynamic directory service
US10755234B2 (en) System and method for offline synchronization of exception items of shared services for client applications
US6061726A (en) Dynamic rights assignment apparatus and method using network directory services
AU2002312508B2 (en) Storage system having partitioned migratable metadata
US6845378B1 (en) Integrated data bank combining system
US7539704B2 (en) Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
EP2062125B1 (en) System and method for providing high availability data
US7631017B2 (en) Method and system for maintaining current data for wireless devices
CN101093497B (en) Document management server, document management method, and system for managing document use
US20080256090A1 (en) Dynamic directory service
US20140250064A1 (en) Method and system for supporting off-line mode of operation and synchronization
US7054887B2 (en) Method and system for object replication in a content management system
EA002931B1 (en) Database synchronization and organization system and method
US20020035625A1 (en) System and method for managing network configuration data, computer program for same
US7315854B2 (en) Distributed directory replication
JP2003520363A (en) Data maintenance method in a partially replicated database system network
EP1422901A1 (en) Client driven synchronization of file and folder content in web publishing
JP2001522074A (en) Communication system and method
US6055534A (en) File management system and file management method
JP2000259474A (en) Method for arbitrating different data files
JPH1021061A (en) Automatic version-up system for client software
CN113282540A (en) Cloud object storage synchronization method and device, computer equipment and storage medium
US6976030B2 (en) System and method for synchronizing distributed stored documents

Legal Events

Date Code Title Description
AS Assignment

Owner name: HON HAI PRECISION INDUSTY CO., LTD., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HON HAI PRECISION INDUSTRY CO., LTD.;REEL/FRAME:018084/0810

Effective date: 20060804

Owner name: HONG FU JIN PRECISION INDUSTRY (SHENZHEN) CO., LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HON HAI PRECISION INDUSTRY CO., LTD.;REEL/FRAME:018084/0810

Effective date: 20060804

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: HON HAI PRECISION INDUSTRY CO., LTD., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HONG FU JIN PRECISION INDUSTRY (SHENZHEN) CO., LTD.;REEL/FRAME:026847/0938

Effective date: 20110901

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: HON HAI PRECISION INDUSTRY CO., LTD., TAIWAN

Free format text: CONFIRMATORY ASSIGNMENT OF PATENT RIGHTS;ASSIGNOR:HONG FU JIN PRECISION INDUSTRY (SHENZHEN) CO., LTD.;REEL/FRAME:028415/0550

Effective date: 20110901

Owner name: HON HAI PRECISION INDUSTRY CO., LTD., TAIWAN

Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNORS:LEE, CHUNG-I;LIN, FLOYE;LUO, BENSON;AND OTHERS;SIGNING DATES FROM 20120613 TO 20120617;REEL/FRAME:028414/0693

AS Assignment

Owner name: TORQUE CAPITAL SOLUTIONS, LIMITED LIABILITY COMPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HON HAI PRECISION INDUSTRY, CO., LTD.;REEL/FRAME:028800/0237

Effective date: 20120627

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY, D

Free format text: MERGER;ASSIGNOR:TORQUE CAPITAL SOLUTIONS, LIMITED LIABILITY COMPANY;REEL/FRAME:037563/0612

Effective date: 20150826

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12

AS Assignment

Owner name: INTELLECTUAL VENTURES ASSETS 148 LLC, DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY;REEL/FRAME:050915/0942

Effective date: 20191031

AS Assignment

Owner name: DATACLOUD TECHNOLOGIES, LLC, GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTELLECTUAL VENTURES ASSETS 148 LLC;REEL/FRAME:051409/0144

Effective date: 20191115