WO2011027654A1 - データ同期システムおよびデータ同期方法 - Google Patents
データ同期システムおよびデータ同期方法 Download PDFInfo
- Publication number
- WO2011027654A1 WO2011027654A1 PCT/JP2010/063623 JP2010063623W WO2011027654A1 WO 2011027654 A1 WO2011027654 A1 WO 2011027654A1 JP 2010063623 W JP2010063623 W JP 2010063623W WO 2011027654 A1 WO2011027654 A1 WO 2011027654A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- server
- information
- client
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
Definitions
- the present invention relates to a data synchronization system and a data synchronization method.
- a client such as a mobile phone synchronizes data with the server.
- the client periodically inquires about the presence / absence of changed data, and if there is updated data, downloads the data.
- a server manages whether data has been changed by leaving a change history. For example, in Patent Document 1, by storing the update history of the second database and starting synchronization when the number of update histories is greater than a threshold, a large amount of information can be transmitted and received in one data synchronization. I am trying not to.
- a client such as a mobile phone is not always able to communicate with the server, and if the communication between the server and the client is not possible for a long time, It is necessary to store the change history, and when the server communicates with a plurality of clients, it is necessary to manage how far each client is synchronized.
- the present invention has been made in view of such a background, and provides a data synchronization system and a data synchronization method capable of reducing the load on the server when data is synchronized between the client and the server. With the goal.
- a main invention of the present invention for solving the above problem is a system for synchronizing data between a server and a client communicably connected to the server, wherein the server stores data including an update time point.
- the first database stored can be accessed, the client can access the second database storing data acquired from the server, and the client is the last time the data was acquired from the server
- the update data is searched from the first database, and the update data for each update data
- a change information acquisition unit that generates change information including a data ID indicating and the update time of the update data, and a synchronization information transmission unit that transmits synchronization information including the change information to the client.
- a download determination unit that determines acquisition data to be downloaded, and a download request transmission unit that transmits a download request including a data ID indicating the acquisition data to the server.
- the server includes a data acquisition unit that acquires the data corresponding to the data ID included in the download request from the first database, and download information transmission that transmits download information including the acquired data to the client.
- the client includes the client.
- the download determination unit acquires, from the second database, the update time point included in the data corresponding to the data ID included in the change information for each change information. If the update time acquired from the second database is older than the update time included in the change information, it is determined to download the data, and the update time acquired from the second database is If it is newer than the update time included in the change information, whether to download the data may be determined according to the setting from the user.
- the server includes a server change history storage unit for storing a change history including the data ID indicating the data deleted from the first database and a deletion time point, and the synchronization request.
- a change history acquisition unit that acquires the change history including the deletion time after the included anchor time from the server change history storage unit, and the synchronization information transmission unit is acquired by the change history acquisition unit.
- the change history may be further included in the synchronization information, and the client may include a deletion processing unit that deletes the data corresponding to the change history included in the synchronization information from the second database.
- the server determines, for the data deleted from the first database, a change history including a data ID indicating the deleted data and a deletion time point in the order of the deletion time point.
- a server change history storage unit for storing a number the change information acquisition unit acquires the change history including the deletion time after the anchor time from the server change history storage, the synchronization information transmission unit, In addition to the change information, the boundary time that is the oldest deletion time included in the change history stored in the server change history storage unit and the acquired change history are included in the synchronization information to the client. And the client transmits the data corresponding to the change history included in the synchronization information to the second database.
- the update point of the data is before the boundary point, among the data stored in the second database.
- An obsolete information acquisition unit for generating obsolete information wherein the download request transmission unit includes the stale information in the download request in addition to the acquired data ID, and transmits the data to the server.
- the acquisition unit further includes, for each piece of stale information included in the download request, the data corresponding to the stale information.
- the deletion processing unit may delete the data corresponding to the deletion ID included in the download information from the second database.
- the client sets the second update time of the data corresponding to the data ID included in the change information for each of the change information included in the synchronization information.
- a collision that determines whether to upload the data corresponding to the data ID to the server or to download from the server when the read update time is newer than the update time included in the change information.
- the download request transmission unit transmits the download request further including the data ID indicating the data determined to be downloaded by the collision resolution unit to the server, and the client receives the collision meeting game.
- the data determined to be uploaded is transferred to the second database.
- a resolution request transmission unit that reads the resolution request including the read data from the server and transmits the resolution request to the server, and the server registers the data included in the resolution request in the first database. You may make it provide.
- Another aspect of the present invention is a system that synchronizes data between a server and a client that is communicably connected to the server, and the server stores the data with an update time attached thereto.
- the first database is accessible
- the client is accessible to a second database that stores data obtained from the server
- the server has a predetermined number of data change histories for the first database in order from the newest.
- a server change history storage unit for storing the server change history which is the change history stored in the server change history storage unit, is attached to the data ID indicating the data to be changed and the data.
- the update time, and the client is the anchor that is the last time the data was acquired from the server.
- An anchor storage unit that stores a time point, a condition for acquiring the data and a synchronization request transmission unit that transmits a synchronization request including the anchor time point to the server, and the server from the server change history storage unit, Of the server change history corresponding to the data that matches the condition included in the synchronization request, the update history acquisition unit that acquires the update time after the anchor time, and the synchronization from the first database Of the data that matches the condition included in the request, the update time is after the anchor time and before the boundary time that is the oldest update time stored in the server change history storage unit. A certain thing is searched, and for each of the searched data, the data ID indicating the data and the data are attached.
- a change information acquisition unit that generates change information including the update time, and a synchronization information transmission unit that transmits the boundary time, the acquired server change history, and synchronization information including the change information to the client.
- the client includes a download determination unit for determining what should be downloaded from the server change history or the data corresponding to the change information included in the synchronization information, and the second database from the data that matches the condition. Among them, the search is made for the update time between the anchor time and the boundary time, and for each searched data, the data ID indicating the data and the update time attached to the data are obsolete.
- An obsolete information acquisition unit for generating the conversion information, and an acquisition data indicating the determined data A download request transmitting unit that transmits a download request including a data ID and the stale information to the server, wherein the server includes the data corresponding to the stale information included in the download request, A data acquisition unit for acquiring from the first database an update point that is newer than the update point included in the stale information, and the data corresponding to the acquired data ID, and download information including the acquired data
- the server change history further includes change type information indicating whether the data change is addition, update, or deletion of data.
- the server change history included in the synchronization information the data indicated by the data ID included in the server change history is deleted from the second database for the change type information indicating deletion.
- a deletion processing unit may be provided.
- the data acquisition unit may store the data corresponding to the data ID included in the stale information among the stale information included in the download request in the first database. For those that are not registered, delete information including the data ID included in the stale information is set in the download information, and the client deletes the delete information when the download information includes the delete information.
- a deletion processing unit that deletes the data corresponding to the data ID included in the information from the second database may be provided.
- the data further includes a column that is generated based on the content of the data and is information for determining whether or not the data matches the condition.
- the server change history further includes change type information indicating whether the data change is addition, update, or deletion of data, and the column attached to the data, and the change history acquisition unit includes: , The server change history, wherein the column matches the condition included in the synchronization request and the update time is later than the anchor time, and the change information acquisition unit is configured to acquire the first database.
- the column attached to the data matches the condition included in the synchronization request, and the update Search for a point after the anchor time and before the boundary time, and for each of the searched data, the data ID indicating the data, the update time attached to the data, and the
- the column included in the data is set as the change information
- the stale information acquisition unit includes the column that matches the condition among the data stored in the second database, and the update time is the anchor. You may make it search the thing between a time point and the said boundary time point.
- the data further includes a hint that is generated based on the content of the data and is information for determining whether the data should be downloaded in the client.
- the server change history further includes change type information indicating whether the data change is addition, update, or deletion of data, and the hint attached to the data, and the change information acquisition unit includes For each of the retrieved data, the hint attached to the data is further included in the change information, and the download determination unit should download based on the hint included in the server change history or the change information Data may be determined.
- the download determination unit outputs the hint included in the server change history or the change information, and downloads the data corresponding to the output hint selected by the user. You may make it determine as data which should be.
- the update time is attached to the data, and the server generates a time value that increases as the data is changed with respect to the first database as the update time. And when the data is written to the first database, the data may be accompanied by the update time point generated by the time point generation unit.
- the update time is attached to the data
- the server acquires a time stamp in the server when the data is changed with respect to the first database.
- a time point generation unit that generates a value obtained by connecting the identification information of the data to the time stamp as the update time point, and the data generated by the time point generation unit is written into the first database when the update is generated. You may make it attach a time.
- the client includes a client change history storage unit that stores a data change history in the second database, and the client change that is the change history stored in the client change history storage unit
- the history includes the data ID indicating the data that has been changed, and the update time point attached to the data
- the synchronization request transmission unit corresponds to the data that matches the condition
- the client change history is acquired from the client change history storage unit, the acquired client change history is set in the synchronization request and transmitted to the server, and the server includes each of the client change history included in the synchronization request.
- the data ID included in the client change history The data stored in the first database when the update time attached to the data stored in the first database is later than the update time included in the client change history.
- a collision detection unit that generates collision information including the update time point and the data ID, and the synchronization information transmission unit transmits the synchronization information further including the collision information to the client.
- a collision resolution unit that determines whether the data corresponding to the data ID included in the collision information is uploaded to the server or downloaded from the server, and the download request transmission unit includes: The download request further includes the data ID indicating the data determined to be downloaded.
- the client includes a resolution request transmission unit that reads the data determined to be uploaded by the collision resolution unit from the second database and transmits a resolution request including the read data to the server.
- the server may include a resolution processing unit that registers the data included in the resolution request in the first database.
- a key that is data obtained by applying a predetermined algorithm to the data is further attached to the data, and the server change history and the client change are added.
- Each history includes the key
- the server includes the key included in any one of the client change histories included in the synchronization request among the data stored in the first database.
- a duplicate detection unit that searches for a match and generates duplicate information including the data ID indicating the searched data, and the synchronization information transmission unit transmits the synchronization information further including the duplicate information to the client.
- a deduplication unit that determines what should be removed, and the decimation request transmission unit further includes decimation information including the data ID indicating the data determined by the deduplication unit to be deleted,
- the data may be transmitted to a server, and the resolution processing unit may further delete the data corresponding to the data ID included in the resolution information included in the resolution request from the first database.
- the data is accompanied by the data ID
- the data ID includes a local ID that is unique identification information in the client, both in the server and the client.
- a global ID that is unique identification information is included, and when the client creates the data, the client assigns the local ID to the created data, and the created
- An unacquired ID storage unit that stores an unacquired ID that is not assigned the global ID among the local IDs assigned to data, and the synchronization request transmission unit further includes the unacquired ID
- the server retrieves the global ID corresponding to the unacquired ID included in the synchronization request from the first database, and there is the global ID corresponding to the unacquired ID If the corresponding global ID is acquired from the first database, ID information including the acquired global ID and the unacquired ID is generated, and there is no global ID corresponding to the local ID,
- a global ID acquisition unit that newly allocates the global ID and generate
- a method for synchronizing data between a server and a client that is communicably connected to the server wherein the server stores data including an update time point.
- a database is accessible, the client is accessible to a second database that stores data obtained from the server, and the client stores an anchor time that is the last time the data was obtained from the server.
- the server transmits a synchronization request including the anchor point to the server, and the server searches the first database for update data whose update point is the data after the anchor point, and each update data Generating change information including the data ID indicating the update data and the update time of the update data
- the synchronization information including the change information is transmitted to the client, and the client determines acquisition data to be downloaded from among the data corresponding to the change information, and download including a data ID indicating the acquisition data Transmitting a request to the server, the server acquires the data corresponding to the data ID included in the download request from the first database, and transmits download information including the acquired data to the client;
- the client registers the
- the client sets the second update time of the data corresponding to the data ID included in the change information for each of the change information included in the synchronization information.
- Read from the database if the read update time is newer than the update time included in the change information, determine whether to upload the data corresponding to the data ID to the server or download from the server, The client transmits the download request further including the data ID indicating the data determined to be downloaded to the server, and the client reads the data determined to be uploaded from the second database, and reads the read data.
- a resolution request including the server Transmitted, the server, the data contained in the resolved request may be registered in the first database.
- a method of synchronizing data between a server and a client that is communicably connected to the server, and the server stores the data with an update time attached thereto.
- the first database is accessible
- the client is accessible to a second database that stores data obtained from the server
- the server has a predetermined number of data change histories for the first database in order from the newest.
- the server change history that is stored and the change history stored by the server includes a data ID indicating the data to be changed, and the update time point attached to the data
- the client Stores the anchor point in time at which the data was last obtained from the server, and the client A synchronization request including a condition for acquiring data and the anchor point in time
- the server includes, among the server change histories corresponding to the data matching the condition included in the synchronization request,
- the update time is acquired after the anchor time, and the server, from the first database, out of the data that matches the condition included in the synchronization request, the update time is after the anchor time.
- the change information including the data ID and the update time attached to the data is generated, and the server is in the boundary time ,
- the acquired server change history, and synchronization information including the change information is transmitted to the client, and the client should download from the server change history or the data corresponding to the change information included in the synchronization information.
- the client searches the second database for the data that matches the condition, and searches for the data whose update time is between the anchor time and the boundary time.
- the server downloads the download Among the data corresponding to the stale information included in the request, the data whose update time is newer than the update time included in the stale information and the data corresponding to the acquired data ID are the first data.
- the server transmits download information including the obtained data to the client, and the client registers the data included in the download information in the second database.
- the client stores a change history of data in the second database, and the client change history that is the change history stored by the client is a target of change.
- the client includes the data ID indicating the data and the update time point attached to the data, and the client acquires the client change history corresponding to the data that matches the condition, and the acquired client change A history is set in the synchronization request and transmitted to the server, and the server corresponds to the data ID included in the client change history for each of the client change histories included in the synchronization request.
- the update time point attached to the data stored in the database is: If it is later than the update time included in the client change history, the server generates collision information including the update time and the data ID attached to the data stored in the first database, and the server The synchronization information further including the collision information is transmitted to the client, and the client determines whether to upload the data corresponding to the data ID included in the collision information to the server or to download from the server.
- the client transmits the download request further including the data ID indicating the data determined to be downloaded to the server, and the client reads and reads the data determined to be uploaded from the second database.
- Request for resolution including the data Serial transmitted to the server, the server, the data contained in the resolved request may be registered in the first database.
- the load on the server can be reduced when data is synchronized between the client and the server.
- FIG. 2 is a diagram illustrating a hardware configuration of a client 10.
- FIG. 2 is a diagram illustrating a hardware configuration of a server 20.
- FIG. 2 is a diagram illustrating a software configuration of a client 10.
- FIG. It is a figure which shows the structural example of a client record.
- 3 is a diagram illustrating a configuration example of an anchor storage unit 132.
- FIG. It is a figure which shows the structural example of the synchronous request
- 6 is a diagram illustrating a configuration example of a download request 43.
- FIG. 2 is a diagram illustrating a software configuration of a server 20.
- FIG. It is a figure which shows the structural example of a server record. It is a figure which shows the structural example of a server change log
- FIG. 4 is a diagram illustrating a flow of application processing executed in a client 10.
- FIG. It is a figure which shows the software structure of the client 10 which concerns on 2nd Embodiment. It is a figure which shows the structural example of the client record which concerns on 2nd Embodiment.
- FIG. 3 is a diagram illustrating a configuration example of a duplication storage unit 136.
- FIG. It is a figure which shows the flow of a process by the client change detection part. It is a figure which shows the flow of the duplication determination process shown to step S407. It is a figure which shows the flow of the change log registration process shown to step S408. It is a figure which shows the structural example of the synchronous request
- FIG. 5 is a diagram illustrating a configuration example of resolution result information 46.
- FIG. It is a figure which shows the software structure of the server 20 which concerns on 2nd Embodiment. It is a figure which shows the structural example of the server record which concerns on 2nd Embodiment. It is a figure explaining the flow of the data synchronous process which concerns on 2nd Embodiment. It is a figure which shows the flow of the production
- 4 is a diagram illustrating a flow of GUID assignment processing executed in the server 20.
- FIG. 1 is a diagram showing an overall configuration of a communication system according to an embodiment of the present invention.
- the communication system according to the present embodiment includes a client 10 and a server 20.
- the client 10 and the server 20 are each connected to a communication network 30, and the client 10 and the server 20 can communicate via the communication network 30.
- the communication system of the present embodiment performs data synchronization between the server 20 and the client 10.
- the server 20 is, for example, a computer such as a personal computer or a workstation.
- the server 20 includes a database for storing data (hereinafter, the database included in the server 20 is referred to as “server database 21”, which corresponds to the “first database” of the present invention).
- the data managed by the server 20 is, for example, image data such as a photograph, data such as a phone book, and the like.
- image data such as a photograph
- data such as a phone book, and the like.
- only the latest predetermined number of change histories for the server database 21 are recorded. It is assumed that the change history exceeding the predetermined number is deleted in order from the oldest.
- the client 10 is, for example, a computer such as a mobile phone terminal, a PDA (Personal Data Assistant), or a personal computer.
- the client 10 also includes a database for storing data (hereinafter, the database included in the client is referred to as “client database 11” and corresponds to the “second database” of the present invention).
- client database 11 the database included in the client is referred to as “client database 11” and corresponds to the “second database” of the present invention).
- the client database 11 and the server database 21 are synchronized.
- each data is set to the time when it was last updated (hereinafter referred to as “update time”.
- the created time is also set as the update time. )) Is attached, and the old and new data are compared by the time of update.
- data creation, update, and deletion are collectively referred to as “change” of data
- it is performed on the server database 21 in the server 20. It is assumed that this is a value indicating what order the change was made. That is, in the server 20, only one piece of data is to be changed at one time point, and each time the data change to the server database 21 is made in the server 20, the value representing the time point is incremented. To do.
- FIG. 2 is a diagram illustrating a hardware configuration of the client 10.
- the client 10 includes a CPU 101, a memory 102, a storage device 103, a communication interface 104, an input device 105, and an output device 106.
- the storage device 103 stores various data and programs, for example, a hard disk drive, a flash memory, a CD-ROM drive, and the like.
- the CPU 101 implements various functions by reading a program stored in the storage device 103 into the memory 102 and executing it.
- the communication interface 104 is an interface for connecting to the communication network 30.
- the communication interface 104 is, for example, an adapter for connecting to Ethernet (registered trademark), a modem for connecting to a telephone line network, a wireless communication device for connecting to a wireless communication network, or the like.
- the input device 105 is a keypad, a touch panel, a keyboard, a mouse, or the like that receives data input from a user who operates the client 10.
- the output device 106 is, for example, a display or a printer that outputs data.
- FIG. 3 is a diagram illustrating a hardware configuration of the server 20.
- the server 20 includes a CPU 201, a memory 202, a storage device 203, a communication interface 204, an input device 205, and an output device 206.
- the storage device 203 stores various data and programs, for example, a hard disk drive, a flash memory, a CD-ROM drive, and the like.
- the CPU 201 implements various functions by reading a program stored in the storage device 203 into the memory 202 and executing it.
- the communication interface 204 is an interface for connecting to the communication network 30.
- the communication interface 204 is, for example, an adapter for connecting to Ethernet (registered trademark), a modem for connecting to a telephone line network, a wireless communication device for connecting to a wireless communication network, and the like.
- the input device 205 is, for example, a keyboard or a mouse that receives data input from a user who operates the server 20.
- the output device 206 is, for example, a display or a printer that outputs data.
- the client 10 synchronizes data mainly.
- the data synchronization procedure is as follows. (1) Information about changed data is exchanged between the client 10 and the server 20. (1.1) Information about data updated in the client 10 is transmitted from the client 10 to the server 20. Note that this procedure is omitted when data is not updated in the client 10. (1.2) Information about data updated in the server 20 is transmitted from the server 20 to the client 10. (1.3) The client 10 detects data conflict and resolves the conflict. Data contention is data collision and duplication. Data collision means that a change has been made to the same record in both the client 10 and the server 20. Data duplication means that different data is updated in both the client 10 and the server 20 so that different data have the same or similar contents. In the present embodiment, the conflict is resolved by selecting one of two pieces of data that are in a competitive relationship (for example, the data of the conflicting client 10 and the data of the server 20 or two overlapping data). And
- the client 10 downloads data to be downloaded from the server 20.
- the client 10 uploads data to be reflected on the server 20 to the server 20.
- the client 10 acquires information on data added, changed, or deleted from the server 20 from the server 20, and selectively downloads necessary data from the information. That is, the server 20 does not manage the synchronization status in the client 10, and the client 10 selectively downloads data necessary for the user.
- FIG. 4 is a diagram illustrating a software configuration of the client 10 according to the first embodiment.
- the client 10 includes a client database 11, a filter selection unit 111, a synchronization request transmission unit 112, a synchronization information reception unit 113, a deletion processing unit 114, a download determination unit 115, an anchor update unit 116, and stale information.
- An acquisition unit 117, a download request transmission unit 118, a download information reception unit 119, an update processing unit 120, a client ID storage unit 131, and an anchor storage unit 132 are provided.
- the unit 119 and the update processing unit 120 are realized by the CPU 101 included in the client 10 reading out the program stored in the storage device 103 to the memory 102 and executing it.
- the client database 11, the client ID storage unit 131, and the anchor storage unit 132 are realized as storage areas provided by the memory 102 and the storage device 103 provided in the client 10.
- the client database 11 may be provided by a computer (database server) different from the client 10. In this case, for example, the client 10 is connected to the database server via the communication network 30 so as to be accessible.
- the client database 11 stores data acquired from the server 20.
- FIG. 5 is a diagram illustrating a configuration example of data stored in the client database 11 (hereinafter also referred to as “client record”).
- the client record includes a GUID (Globally Unique IDentifier), an update time point, an update possibility flag, a delete possibility flag, a key, a column, a hint, and a data body.
- GUID Globally Unique IDentifier
- the GUID (corresponding to “data ID” and “global ID” of the present invention) is identification information assigned to data by the server 20 and is a unique number in the communication system of the present embodiment.
- the update time point indicates a time point when the data is last updated in the server 20.
- the update possibility flag indicates that the data may be updated in the server 20, and the deletion possibility flag indicates that the data may be deleted in the server 20.
- the key is data for determining duplication of client records, and is created based on the data body.
- the key when the data body is address book data, the key can be created by concatenating character strings such as telephone numbers and names, and when the data body is e-mail data, It can be created by concatenating character strings set in the mail addressee (To), the sender (From), the date (Date), and the subject (Subject).
- the column is used to determine whether or not the data satisfies the filter condition, and is a part of the data body.
- the hint is information for determining whether to download data from the server 20. In this embodiment, the hint includes the importance of the data. For example, if the data body is address book data, the name is the name, and the data body is e-mail data.
- the client ID storage unit 131 stores identification information of the client 10 (hereinafter referred to as “client ID”). In the present embodiment, it is assumed that the client ID storage unit 131 stores a client ID in advance.
- the anchor storage unit 132 stores the last synchronized time (hereinafter referred to as “anchor time”). Only data that has been changed after the anchor point is subject to synchronization.
- FIG. 6 is a diagram illustrating a configuration example of the anchor storage unit 132.
- the anchor storage unit 132 stores the anchor time in association with a condition for extracting data managed by the server 20 (hereinafter referred to as “filter condition”).
- the filter selection unit 111 selects, from the anchor storage unit 132, a filter condition to be used when acquiring data from the server 20.
- the filter selection unit 111 may output a list of filter conditions stored in the anchor storage unit 132 and accept the specification of the filter conditions from the user, or may receive the filter conditions from the user via the input device 105. May be accepted.
- the synchronization request transmission unit 112 transmits a command for synchronization (hereinafter referred to as “synchronization request 41”) to the server 20.
- FIG. 7 is a diagram illustrating a configuration example of the synchronization request 41.
- a client ID In the synchronization request 41, a client ID, a filter condition, and an anchor point are set.
- the synchronization request transmission unit 112 sets the client ID stored in the client ID storage unit 131 in the synchronization request 41, and the filter condition selected by the filter selection unit 111 (hereinafter referred to as “selected filter condition”) is a synchronization request. Set to 41.
- the synchronization request transmission unit 112 reads the anchor point corresponding to the selected filter condition from the anchor storage unit 132 and sets the read anchor point in the synchronization request 41.
- the synchronization request transmission unit 112 transmits the synchronization request 41 to the server 20.
- the synchronization information receiving unit 113 receives information necessary for synchronizing data with the server 20 (hereinafter referred to as “synchronization information”) transmitted from the server 20 in response to the synchronization request 41 from the server 20.
- FIG. 8 is a diagram illustrating a configuration example of the synchronization information 42.
- the synchronization information 42 includes the boundary time point, the latest history time point, and the changed feature information.
- the boundary time point is the oldest time point of the change history managed in the server 20.
- the latest history point is the newest point of the change history managed in the server 20.
- the change feature information includes information about data created or updated between the anchor time and the boundary time, and information about data related to the change history managed in the server 20.
- the update time point included in the change feature information is a time point at which data was last updated, and the deletion flag indicates that data has been deleted in the server 20.
- the deletion processing unit 114 deletes data from the client database 11.
- the deletion processing unit 114 deletes data corresponding to the GUID from the client database 11 for each of the changed feature information included in the synchronization information 42 for which the deletion flag is true. The details of the deletion processing by the deletion processing unit 114 will be described later.
- the download determination unit 115 determines data to be acquired (downloaded) from the server 20.
- the data to be downloaded is data registered in the client database 11 and updated in the server 20 (hereinafter also referred to as “update data”), or new in the server 20.
- Added data hereinafter also referred to as “additional data”
- filter-in data that did not match the filter condition at the previous download, but matched with the filter condition because it was updated in the server 20
- the download determination unit 115 compares the update time of the data in the client database 11 corresponding to the GUID of the changed feature information with the update time of the changed feature information, and obtains new data at the updated feature information update time.
- the update data can be determined.
- the download determining unit 115 can determine that the data is additional data or filtered data.
- the download determination unit 115 may determine, for example, all of the additional data, update data, and filtered data as data to be downloaded, or display hints of change feature information corresponding to these data, and the user You may make it receive designation
- the download determining unit 115 may determine, as additional data, update data, and filtered data, data to be downloaded that have a hint, key, column, or the like that satisfies a predetermined condition.
- the download determination unit 115 prioritizes the server record when the update time of the client record corresponding to the GUID of the changed feature information is newer than the update time of the changed feature information. Then, it may be downloaded, or it may be determined that the client record is not preferentially downloaded, or the user may be inquired whether to download.
- the number of downloadable data and the data size may be set, and the download determining unit 115 may determine data to be downloaded within a range not exceeding the number of data and the data size.
- the download determination unit should set the priority order for the client records according to the update time of the client data, the data size, etc., and download in order from the highest priority so as not to exceed the number of data and the data size.
- Data may be determined.
- a policy that specifies how the download determining unit 115 determines data to be downloaded is stored in the memory 102 or the storage device 103, and the download determining unit 115 stores data to be downloaded according to the policy. Can also be determined.
- the download determination unit 115 is registered in the client database 11 but does not match the filter condition in the server 20 (the fact that the update does not match the filter condition due to the update is referred to as “filter out”). May be included in the data to be downloaded.
- the download determining unit 115 searches the client database 11 for data that matches the filter condition, and among the searched data, data in which the GUID is not included in the change feature information of the synchronization information 42 is filtered out. It can be determined that
- the anchor update unit 116 updates the anchor point stored in the anchor storage unit 132.
- the latest history point of the synchronization information 42 is registered in the anchor storage unit 132 as an anchor point corresponding to the selected filter condition.
- the anchor update unit 116 stores the anchor value in association with the newly created filter condition by subtracting 1 from the smallest possible value. Registered in the unit 132.
- the obsolete information acquisition unit 117 matches the selection filter condition among the client records stored in the client database 11 when the anchor point is before the boundary point included in the synchronization information 42, and the update point Is searched for data older than the boundary (hereinafter referred to as obsolete data), and information about the retrieved stale data (hereinafter referred to as “obsolete information”) is created.
- the GUID of the obsolescence data and the update time are set.
- the download request transmission unit 118 transmits a command for acquiring data from the server 20 (hereinafter referred to as “download request”) to the server 20.
- FIG. 9 is a diagram illustrating a configuration example of the download request 43.
- information including the GUID of the data determined by the download determining unit 115 (hereinafter referred to as “acquired information”) is set. Further, when the obsolete information acquisition unit 117 creates the obsolete information, the obsolete information is also set in the download request 43.
- the download information receiving unit 119 receives information (hereinafter referred to as “download information”) including data corresponding to the acquired information and the stale information transmitted from the server 20 in response to the download request 43.
- FIG. 10 is a diagram illustrating a configuration example of download information.
- the download information includes acquired download information and obsolete download information.
- the acquired download information is information including data corresponding to the acquired information
- the stale download information is information including data updated in the server 20 among the data corresponding to the stale information.
- the acquired download information and the stale download information each include a GUID, an update time, a deletion flag, a key, a column, a hint, and a main body.
- the deletion flag is set to true, and the key, column, hint, and main body are omitted.
- the update processing unit 120 updates the client database 11 according to the download information. If the deletion flag is true for each of the acquired download information and the stale download information included in the download information, the update processing unit 120 deletes the data corresponding to the GUID from the client database 11 and the deletion flag is false. If so, the update point, key, column, hint, main body, “false” updateability flag and deleteability flag are associated with the GUID included in the acquired download information or obsolete download information. Register in the database 11. Details of the update processing by the update processing unit 120 will be described later.
- FIG. 11 is a diagram illustrating a software configuration of the server 20.
- the server 20 includes a GUID generation unit 210, a time point generation unit 211, a database change unit 212, a synchronization request reception unit 213, a change history acquisition unit 214, a change acquisition unit 215, a synchronization information transmission unit 216, a download request reception unit 217, and data acquisition.
- the GUID generation unit 210, the time point generation unit 211, and the database change unit 212 include a synchronization request reception unit 213, a change history acquisition unit 214, a change acquisition unit 215, a synchronization information transmission unit 216, a download request reception unit 217, and a data acquisition.
- the unit 218 and the download information transmission unit 219 are realized by the CPU 201 included in the server 20 reading out the program stored in the storage device 203 to the memory 202 and executing it.
- the server database 21 and the server change history storage unit 231 are realized as storage areas provided by the memory 202 and the storage device 203 provided in the server 20.
- the server database 21 may be provided by a computer (database server) different from the server 20. In this case, the server 20 is connected to the database server via the communication network 30 so as to be accessible.
- the server database 21 stores data to be synchronized (hereinafter referred to as “server record”).
- FIG. 12 is a diagram illustrating a configuration example of a server record stored in the server database 21.
- the server record includes a GUID for identifying data, a data creation time, a data update time, a key, a column, a hint, and a data body.
- the server change history storage unit 231 stores a predetermined number of change histories with respect to the server database 21 (hereinafter referred to as “server change history”) in order from the newest.
- FIG. 13 is a diagram illustrating a configuration example of the server change history stored in the server change history storage unit 231.
- the server change history includes a GUID for identifying data, a data creation time, a data update time, a deletion flag, a data hint, an old column, and a current column.
- the deletion flag indicates that data has been deleted from the server database 21.
- the old column is a column of data before the data related to the server change history is changed, and the current column is a column of data after the change is made. When data is newly added, a predetermined part of the added data is set in both the old column and the current column.
- the GUID generation unit 210 assigns a GUID. For example, when a server record is newly registered in the server database 21, the GUID generation unit 210 assigns a GUID that identifies the server record.
- the time point generation unit 211 generates the current time point in the server 20. In the present embodiment, it is assumed that the time point generation unit 211 generates a serial value that is incremented every time data is changed with respect to the server database 21 as a time point.
- the database changing unit 212 changes data in the server database 21.
- the database changing unit 212 sets the time point generated by the time point generating unit 211 as the creation time point and the update time point, and adds the server record to the server database 21.
- the database change unit 212 creates a server change history including the GUID, creation time, update time, and hint of the added server record, sets “false” to the deletion flag of the created server change history,
- the column of the added server record is set for each of the current columns and registered in the server change history storage unit 231.
- the database changing unit 212 sets the time point generated by the time point generating unit 211 as the update time point of the server record.
- the database changing unit 212 creates a server change history including the GUID, creation time, update time, and hint of the updated server record, sets “false” in the deletion flag of the created server change history, and sets the old column in the old column. A column before updating is set, a column after updating is set as the current column, and registered in the server change history storage unit 231. Further, when the database change unit 212 deletes the server record stored in the server database 21, the server change history including the time point generated by the time point generation unit 211, the GUID of the deleted server record, the creation time point, and the hint. Is set in the deletion flag of the created server change history, the column of the deleted server record is set in the old column, and is registered in the server change history storage unit 231.
- the database change unit 212 deletes the server change history with the oldest update time and then creates a new server Register the change history.
- the synchronization request receiving unit 213 receives the synchronization request 41 transmitted from the client 10. When the anchor point is not set in the synchronization request 41, the synchronization request receiver 213 sets the anchor point as the oldest value that can be taken as the point.
- the change history acquisition unit 214 acquires information related to the changed data.
- the change history acquisition unit 214 searches the server change history storage unit 231 for a server change history that matches the selection filter condition included in the synchronization request 41.
- the change history acquisition unit 214 creates change feature information including the GUID, creation time, update time, deletion flag, and hint included in the searched server change history.
- the update information acquisition unit 214 sets the oldest one of the update times of the server change history stored in the server change history storage unit 231 as the boundary time, and sets the newest as the latest history time.
- the update information acquisition unit 214 includes the update point of the server record stored in the server database 21.
- the newest time is defined as the boundary time and the latest history time.
- the change acquisition unit 215 searches the server database 21 for a server record whose creation point is newer than the anchor point and whose update point is older than the boundary point. Then, change feature information including the GUID, creation time, update time, and hint of the retrieved server record is created.
- the synchronization information transmission unit 216 creates the synchronization information 42 including the boundary time, the latest history time, and the changed feature information, and transmits the created synchronization information 42 to the client 10.
- the download request receiving unit 217 receives the download request 43 transmitted from the client 10.
- the data acquisition unit 218 extracts the acquisition information included in the download request 43, reads the server record indicated by the GUID from the server database 21 for each GUID included in the extracted acquisition information, and reads the server record
- the acquisition download information including the GUID, the update time, the “false” deletion flag, the column, and the main body is created.
- the data acquisition unit 218 acquires only the GUID and the “true” deletion flag. Create download information.
- the data acquisition unit 218 extracts the stale information included in the download request 43, reads out the server record indicated by the GUID included in the stale information from each of the extracted stale information from the server database 21,
- the stale download information including the GUID of the server record, the update time, the “false” deletion flag, the column and the main body is created.
- the data acquisition unit 218 includes only the GUID and a “true” deletion flag. Create obsolete download information.
- the download information transmission unit 219 creates download information including acquired download information and obsolete download information, and transmits the created download information to the client 10.
- FIG. 14 is a diagram for explaining the flow of data synchronization processing executed in the communication system according to the first embodiment.
- the client 10 creates a synchronization request 41 (S31), and transmits the created synchronization request 41 to the server 20 (S32).
- the server 20 Upon receiving the synchronization request 41, the server 20 creates the synchronization information 42 including the boundary time, the latest history time, and the changed feature information (S33), and transmits the created synchronization information 42 to the client 10 (S34).
- the client 10 receives the synchronization information 42, the client 10 deletes data for which the deletion flag is true from the client database 11, and creates a download request 43 including acquisition information indicating data to be downloaded and stale information (S35).
- the created download request 43 is transmitted to the server 20 (S36).
- the server 20 creates download information including the acquired download information and the stale download information (S37), and transmits the created download information to the client 10 (S38).
- the client 10 registers or deletes data in the client database 11 according to the acquired download information and the stale download information included in the download information (S39). Details will be described below.
- FIG. 15 is a diagram illustrating a flow of the creation process of the synchronization request 41 executed in the client 10.
- the filter selection unit 111 selects a filter condition (S3101). As described above, the filter selection unit 111 selects a filter condition, for example, by receiving a filter condition specification from the user. If the selection filter condition is stored in the anchor storage unit 132 (S3102: YES), the filter selection unit 111 reads the anchor point corresponding to the selection filter condition from the anchor storage unit 132 (S3103).
- the filter selection unit 111 subtracts 1 from a predetermined minimum value at the anchor time (“0 in this embodiment). Is set (S3104).
- the synchronization request transmission unit 112 reads the client ID from the client ID storage unit 131 (S3105), and creates the synchronization request 41 including the client ID, the selection filter condition, and the anchor time (S3106).
- the synchronization request 41 is created as described above.
- the generated synchronization request is transmitted to the server 20 by the synchronization request transmission unit 112.
- FIG. 16 is a diagram illustrating a flow of processing corresponding to the synchronization request 41 executed in the server 20.
- the synchronization information transmission unit 216 sets the oldest update time of the server change history registered in the server change history storage unit 231 as the boundary time (S3301), sets the newest update time as the latest history time (S3302), and sets the boundary time Synchronization information 42 including the latest history point is generated (S3303).
- the synchronization information transmission unit 216 acquires the time point generated by the time point generation unit 211 and sets the acquired time point as the boundary time point and the latest history time point.
- the change history acquisition unit 214 reads the server change history that matches the filter condition from the server change history storage unit 231, and for each read server change history, the server change history GUID, update point, deletion flag, hint, and key are displayed.
- the changed feature information is created (S3304).
- the change history acquisition unit 214 sets the created change feature information in the synchronization information 42 (S3305).
- the synchronization information transmitting unit 216 includes, for each of the change feature information set in the synchronization information 42, the update feature information for each of the update feature points after the anchor point and the delete flag is “true”, Other changed feature information having the same GUID as the changed feature information is deleted from the synchronization information 42 (S3306).
- the change acquisition unit 215 reads data from the server database 21 in which the update time is after the anchor time and the update time is before the boundary time, the GUID of the read data, the update time, the hint, and the key, Change feature information including a “false” deletion flag is created (S3307).
- the change acquisition unit 215 sets the created change feature information in the synchronization information 42 (S3308).
- the synchronization information 42 is created as described above.
- the created synchronization information 42 is transmitted to the client 10 by the synchronization information transmission unit 216.
- FIG. 17 is a diagram showing a case where the anchor time is time t1.
- the change feature information including the update time t2 of the data a updated in the period between the time t2 and the time t3, and the change feature including the update times t4, t6, and t8 of the data b to d related to the server change history 231.
- Information is created.
- the changed feature information is created only for the added and updated data, and the deleted data is not created.
- the changed feature information is created for all of the added, updated, and deleted data.
- FIG. 18 is a diagram showing a case where the anchor time is time t5.
- the changed feature information is created for all data changed after the anchor time t5. That is, in the example of FIG. 18, the change feature information including the update times t6 and t8 for the data c and d updated after the anchor time t5 is created.
- FIG. 19 is a diagram showing a flow of processing corresponding to the synchronization information 42 executed in the client 10.
- the deletion processing unit 114 deletes the data corresponding to the GUID from the client database 11 for each of the changed feature information included in the synchronization information 42 for which the deletion flag is true (S3501).
- the anchor update unit 116 registers the latest history point included in the synchronization information 42 in the anchor storage unit 132 in association with the selection filter condition (S3502).
- the download determination unit 115 creates an empty download request 43 (S3503), and determines data to be downloaded among the data corresponding to the changed feature information included in the synchronization information 42 (S3504).
- the download determination unit 115 can output, for example, keys and hints included in the change feature information, and allow the user to select data to be downloaded.
- the download determination unit 115 also downloads data that does not include the GUID in the synchronization information 42 among the data that matches the selection filter condition in the client database 11 (filtered-out data). You may make it determine as.
- the download determination unit 115 generates acquisition information including a GUID indicating the data for each of the determined data, and adds the generated acquisition information to the download request 43 (S3505).
- the stale information acquisition unit 117 matches the selection filter condition from the client database 11 and the update time is Data that is before the boundary time is searched (S3507), and the deleteability flag and the updateability flag of the searched data are set to “true” (S3508).
- the obsolescence information acquisition unit 117 acquires a list of data whose delete possibility flag or update possibility flag is “true” from the client database 11 (S3509).
- the obsolescence information acquisition unit 117 deletes the data included in the list from the list whose GUID is included in the acquisition information (S3510).
- the obsolescence information acquisition unit 117 creates obsolescence information in which the GUID and the update time are set for each of the data included in the list, and adds the obsolescence information to the download request 43 (S3511).
- the download request 43 is created as described above.
- the created download request 43 is transmitted to the server 20 by the download request transmission unit 118.
- FIG. 20 is a diagram for explaining the flow of processing for responding to the download request 43 executed in the server 20.
- the data acquisition unit 218 creates empty download information 44 (S3701), and performs the following processing for each acquisition information included in the download request 43.
- the data acquisition unit 218 searches the server database 21 for data corresponding to the GUID included in the acquisition information (S3702). If the corresponding data exists (S3703: YES), the GUID of the searched data, the update time point , Key, column, hint, and main body, and acquisition download information including a “false” deletion flag is created and added to the download information 44 (S3704).
- the data acquisition unit 218 creates the acquisition download information including the GUID of the acquisition information and the “true” deletion flag, and download information 44 (S3705).
- the data acquisition unit 218 After performing the above processing for each piece of acquisition information, the data acquisition unit 218 performs the following processing for each piece of stale information included in the download request 43.
- the data acquisition unit 218 searches the server database 21 for data corresponding to the GUID included in the stale information (S3706), and when the corresponding data exists (S3707: YES), the update time of the data is the stale information. If it is newer than the update point of time (S3708: YES), the stale download information including the GUID of the data, the update point, the key, the column, the hint, the main body, and the “false” deletion flag is created to download the download information 44. (S3709).
- the data acquisition unit 218 receives the obsolete download information including the GUID of the obsolete information and a “true” deletion flag. It is created and added to the download information 44 (S3710).
- the download information 44 is created by repeating the above processing for each piece of stale information.
- the created download information 44 is transmitted to the client 10 by the download information transmission unit 219.
- FIG. 21 is a diagram showing a flow of processing for handling download information 44 executed in the client 10.
- the update processing unit 120 performs the application process shown in FIG. 22 for each of the stale download information included in the download information 44 (S3901). That is, if the deletion flag of the stale download information is “true” (S3921: YES), the deletion processing unit 114 deletes the data corresponding to the GUID included in the stale download information from the client database 11 ( If the deletion flag is “false” (S3921: NO), the update processing unit 120 can update the GUID, key, column, hint, and main body included in the stale download information, and “false”. The data including the sex flag and the “false” deletion possibility flag is created and registered in the client database 11 (S3923). If data with the same GUID is already registered in the client database 11, the data is overwritten.
- the update processing unit 120 performs the application process shown in FIG. 22 for each of the acquired download information included in the download information 44 (S3902). That is, if the deletion flag included in the acquired download information is “true” (S3921: YES), the deletion processing unit 114 deletes the data corresponding to the GUID included in the acquired download information from the client database 11 (S3922). If the deletion flag is “false” (S3921: NO), the update processing unit 120 includes the GUID, key, column, hint, and body included in the acquired download information, the “false” update possibility flag, and Data including a “false” deletion possibility flag is created and registered in the client database 11 (S3923). In this way, the client database 11 is updated according to the download information. As described above, the client record that matches the selection filter and the server record are synchronized.
- FIG. 23 is a diagram illustrating a software configuration of the client 10 according to the second embodiment.
- the client 10 according to the second embodiment includes a client change detection unit 110, a conflict overlap resolution determination unit 121, a resolution request transmission unit 122, and a resolution result information reception unit. 123, a resolution processing unit 124, a client change history storage unit 133, an unacquired ID storage unit 134, an unverified storage unit 135, a duplicate storage unit 136, and a collision storage unit 137.
- the client change detection unit 110, the conflict overlap resolution determination unit 121, the resolution request transmission unit 122, the resolution result information reception unit 123, and the resolution processing unit 124 are programs in which the CPU 101 included in the client 10 is stored in the storage device 103. This is realized by reading out to the memory 102 and executing it. Further, the client change history storage unit 133, the unacquired ID storage unit 134, the unverified storage unit 135, the duplicate storage unit 136, and the collision storage unit 137 are realized as storage areas provided by the memory 102 and the storage device 103 provided in the client 10. Is done.
- FIG. 24 is a diagram illustrating a configuration example of a client record stored in the client database 11 according to the second embodiment.
- the client record according to the second embodiment includes a LUID (Local Unique IDentifier) in addition to the client record according to the first embodiment.
- the LUID is identification information assigned to data in the client 10 and is a unique value in the client 10.
- the LUID is assigned.
- the association (mapping) between the LUID and the GUID is performed by exchanging the synchronization request 41 and the synchronization information 42.
- the client change history storage unit 133 stores a change history for the client database 11.
- a predetermined number of server change histories are stored in order from the newest.
- the client change history storage unit 133 stores all changes to the client database 11 made after the anchor time. Assume that the client change history is stored.
- FIG. 25 is a diagram illustrating a configuration example of a client change history stored in the client change history storage unit 133.
- the client change history includes a type indicating whether the detected change is addition, change, or deletion (hereinafter referred to as “change type”), LUID and GUID indicating data to be changed, update point, change Column (hereinafter also referred to as “old column”), column after change (hereinafter also referred to as “current column”), key, and hint.
- the change type is one of “add”, “update”, and “delete”.
- the unacquired ID storage unit 134 stores a LUID to which no GUID is assigned (hereinafter referred to as “unacquired ID”).
- the unacquired ID storage unit 134 when new data is added to the client database 11, the LUID assigned to the data is registered.
- the unverified storage unit 135 stores a GUID indicating data for which it is not determined whether there is data that overlaps the data.
- the server 20 when data is changed in the client 10, the server 20 does not inquire whether or not duplication occurs, and as described later, duplication is data synchronization with the server 20. Sometimes judged. Therefore, when data is changed, the GUID of the data is registered in the unverified storage unit 135 from the time of data change to the time of synchronization.
- the duplicate storage unit 136 manages two duplicate data.
- FIG. 26 is a diagram illustrating a configuration example of the duplication storage unit 136.
- an LUID and GUID indicating the first data and an LUID and GUID indicating the second data overlapping the first data are registered in association with each other.
- the collision storage unit 137 stores a GUID indicating data that collides.
- the client change detection unit 110 detects a data change to the client database 11, creates a client change history according to the detection, and registers the client change history in the client change history storage unit 133.
- FIG. 27 is a diagram illustrating a flow of processing by the client change detection unit 110.
- the client change detection unit 110 acquires the added or changed data (hereinafter referred to as “new data”) and changes the change. Is deleted or changed, the data that has been deleted or changed (hereinafter referred to as “old data”) is acquired, and the process shown in FIG. 27 is performed.
- new data the data that has been deleted or changed
- the client change detection unit 110 assigns a LUID to the new data (S402), and registers the assigned LUID in the unacquired ID storage unit 134 (S403).
- the client change detection unit 110 acquires the LUID and GUID from the new data (S404).
- the client change detection unit 110 creates a key based on the main body of the new data and sets it as a new key (S406), and performs a duplicate determination process (S407). Finally, the client change detection unit 110 performs a change history registration process for registering a client change history (S408).
- FIG. 28 is a diagram showing the flow of the overlap determination process shown in step S407 of FIG.
- the client change detection unit 110 performs the following process for all data stored in the client database 11. If the key of the client record does not match the new key (S321: NO), the client change detection unit 110 registers the GUID in the unverified storage unit 135 (S322). On the other hand, when the key of the client record matches the new key (S321: YES), the client change detection unit 110 associates the GUID and LUID of the new record with the GUID and LUID of the client record in the duplicate storage unit 136. Registration is performed (S323). If the GUI of the new record is registered in the unverified storage unit 135 (S324: YES), the client change detection unit 110 deletes the GUID of the new record from the unverified storage unit 135 (S325).
- FIG. 29 is a diagram showing the flow of the change history registration process shown in step S408 of FIG.
- the client change detection unit 110 searches the client change history storage unit 133 for a change history that matches the LUID or GUID of the new data (S441). If there is no matching client change history (S442: NO), the client change detection unit 110 changes the client including the change type, new data LUID, GUID, update point and column, old data column, and new key. A history is created and registered in the client change history storage unit 133 (S443).
- the client change detection unit 110 determines that the change type of the searched client change history is the change type if the change is an addition or a change (S444: NO). Change to a change type (addition or update) indicating change (S445), set a column of new data in the current column of the searched client change history (S446), and set a new key as a key of the searched client change history (S347).
- the data synchronization between the server 20 and the client 10 is performed according to the client change history, there is an update or the like again at a stage where the synchronization with the server 20 is not yet performed.
- the efficiency of synchronization processing can be improved by updating the existing client change history.
- the change is a deletion (S444: YES)
- the client change detection unit 110 if the GUI of the new data is not set, that is, if the GUI of the new data is null (S448: YES), the searched client change The history is deleted from the client change history storage unit 133 (S449). That is, when data is created in the client 10 and then deleted before being uploaded to the server 20, the client change history is deleted to prevent unnecessary synchronization.
- the GUID is set in the new data, that is, if the GUID of the new record is not null (S448: NO)
- deletion is set as the change type of the searched client change history (S450). As described above, when detecting a change to the client database 11, the client change detection unit 110 registers the client change history.
- FIG. 30 shows a configuration example of the synchronization request 41 transmitted by the synchronization request transmission unit 112 in the second embodiment.
- the synchronization request according to the second embodiment includes an unacquired ID and changed feature information in addition to the synchronization request according to the first embodiment shown in FIG. 7 described above.
- the synchronization request transmission unit 112 sets the unacquired ID stored in the unacquired ID storage unit 134 as a synchronization request.
- the change feature information is information created based on the client change history, and includes the change type, LUID, GUID, update time, and key of the client change history.
- the synchronization request transmission unit 112 reads the client change history in which the GUID is not registered in the duplicate storage unit 136 and the collision storage unit 137 from the client change history storage unit 133, and for each of the read client change history, the client change history Change feature information including the change type, LUID, GUID, update time, and key is set in the synchronization request.
- FIG. 31 is a diagram illustrating a configuration example of the synchronization information 42 received by the synchronization information receiving unit 113 in the second embodiment.
- the synchronization information 42 according to the second embodiment includes allocation information in addition to the synchronization information 42 according to the first embodiment shown in FIG. 8 described above.
- the assignment information is information including a GUID assigned by the server 20 to the unacquired ID.
- the allocation information includes LUID, GUID, update time, and status.
- the update time is a data update time when the GUID corresponding to the LUID has already been assigned by the server 20. When the data corresponding to the unacquired ID is not stored in the server 20, the update time point is not set.
- the status is information indicating whether or not a GUID corresponding to the unacquired ID already exists in the server 20.
- the change feature information included in the synchronization information 42 is a collision or duplication between the client 10 and the server 20 in addition to the data newly added in the server 20 as will be described later. It is also added for the data that is being processed.
- the collision duplication resolution determination unit 121 determines whether to transmit the data to the server 20.
- the collision duplication elimination determination unit 121 determines whether the GUID included in the download information 44 is a conflict or duplication depending on whether the client change history storage unit 133, the duplication storage unit 136, or the collision storage unit 137 is stored. Is determined, and when it is determined that a collision or duplication has occurred, the user is allowed to select either the client record or the server record.
- the conflict duplication resolution determining unit 121 may select the client record unconditionally by always giving priority to the client record, or may automatically select by applying an arbitrary algorithm. It may be.
- the resolution request transmission unit 122 transmits a command (hereinafter referred to as “resolution request”) to instruct the server 20 to resolve the data in which the collision or duplication has occurred.
- FIG. 32 is a diagram illustrating a configuration example of the cancellation request 45.
- the resolution request 45 includes a client ID and resolution information in which the LUID, GUID, update point, deletion flag, key, column, hint, and main body of the client record or server record selected by the conflict overlap resolution determination unit 121 are set. included.
- the resolution result information receiving unit 123 receives information (hereinafter referred to as “resolution result information”) transmitted from the server 20 in response to the resolution request and indicating the result of the collision or duplication resolution processing.
- FIG. 33 is a diagram illustrating a configuration example of the cancellation result information 46.
- the resolution result information 46 includes duplication information and result information.
- the duplication information is set when duplication occurs in the server 20 with respect to the data indicated by the elimination information included in the elimination request 45.
- the GUID, update point, and key of the duplicate data in the server 20 are set.
- the result information is information representing the result of the process of updating the server database 21 in response to the cancellation request 45, and includes the LUID, GUID, update point, deletion flag, and status.
- the resolution processing unit 124 updates the client database 11 according to the resolution result information 46. Details of the processing of the cancellation processing unit 124 will be described later.
- FIG. 34 is a diagram illustrating a software configuration of the server 20 according to the second embodiment.
- the server 20 according to the second embodiment includes a resolution request receiving unit 220, a resolution processing unit 221, and a resolution result information transmission unit 222 in addition to the server 20 according to the first embodiment.
- the elimination request receiving unit 220, the elimination processing unit 221, and the elimination result information transmission unit 222 are realized by the CPU 201 included in the server 20 reading out and executing the program stored in the storage device 203 into the memory 202.
- FIG. 35 is a diagram illustrating a configuration example of a server record stored in the server database 21 according to the second embodiment.
- the server record according to the second embodiment includes the LUID and the creator ID in addition to the server record according to the first embodiment.
- the LUID is identification information assigned to data in the client 10 and is a unique number in the client 10.
- the association (mapping) between the LUID and the GUID is performed by exchanging the synchronization request 41 and the synchronization information 42.
- the creator ID is the client ID of the client 10 that first created the data, and is set when the server record is added.
- the cancellation request receiving unit 220 receives the cancellation request 45 from the client 10.
- the resolution processing unit 221 updates the server database 21 in response to the resolution request 45.
- the details of the cancellation processing executed by the cancellation processing unit 221 will be described later.
- the resolution result information transmission unit 222 creates resolution result information indicating the result of the resolution process by the resolution processing unit 221 and transmits it to the client 10. Details of the generation process of the cancellation result information by the cancellation result information transmission unit 222 will be described later.
- FIG. 36 is a diagram for explaining the flow of data synchronization processing executed in the communication system according to the second embodiment.
- steps S51 to S58 are performed in addition to the synchronization process according to the first embodiment shown in FIG. That is, after the client 10 performs the process corresponding to the download information 44 (S39), the client 10 transmits a resolution request 45 to the server 20 (S51), and the server 20 updates the server database 21 according to the resolution request 45.
- the result information 46 indicating the result of the update and the resolving result information 46 including the duplicate information related to the duplication that has occurred during the update are transmitted to the client 10 (S53).
- the client 10 performs processing for determining further data to be downloaded according to the resolution result information 46 (S54), and transmits a download request 43 including acquisition information in which the GUID of the data to be downloaded is set (S55). ).
- the server 20 reads designated data from the server database 21 (S56), and transmits download information 44 in which the read data is set to the client 10 (S57).
- the client 10 registers the data included in the download information 44 in the client database 11 (S58).
- FIG. 37 is a diagram showing a flow of a synchronization request creation process in step S31 according to the second embodiment.
- the synchronization request transmission unit 112 reads the client change history that matches the selection filter condition from the client change history storage unit 133 and changes the change history. Is set in the synchronization request 41 (S3107), and the unacquired ID stored in the unacquired ID storage unit 134 is read and set in the synchronization request 41 (S3108). Based on the update information and the unacquired ID, the server 20 can grasp the data update performed by the client 10.
- FIG. 38 is a diagram illustrating a flow of processing for responding to a synchronization request in step S33 according to the second embodiment.
- the synchronization information transmitting unit 216 performs the GUID assignment process shown in FIG. 39 (S3309), and the collision and duplication shown in FIG. Is detected (S3310).
- the synchronization information transmitting unit 216 performs the following process for each unacquired ID included in the synchronization request 41.
- the synchronization information transmission unit 216 searches the server database 21 for a server record in which the LUID matches the unacquired ID and the creator matches the client ID (S3321), and when a matching server record exists (S3322: YES), the GUID of the server record is set to G (S3323), the update point of the server record is set to T (S3324), and the status is set to “exist” (S3325).
- the synchronization information transmission unit 216 sets G as the new GUID generated by the GUID generation unit 210 (S3326), and the time generation unit 211 generates it.
- the new time point is set to T (S3327), and the status is set to “not present” (S3328).
- the synchronization information transmission unit 216 adds allocation information including LUID, G, T, and status to the synchronization information 42 (S3329). The above processing is repeated for each unacquired ID, and a GUID corresponding to the unacquired ID is set in the synchronization information 42 as allocation information.
- the change acquisition unit 215 searches the server database 21 for a server record corresponding to the GUID of the change history (S3342), and there must be a corresponding server record. (S3343: NO), change feature information including a GUID and a “true” deletion flag is created and added to the synchronization information 42 (S3344).
- the change acquisition unit 215 determines whether the update history update time matches the update time of the searched server record (S3345).
- the change feature information including the GUID of the server record, the update time point, the hint and key, and the “false” deletion flag is created and added to the synchronization information 42 ( S3346).
- the update points coincide (S3345: YES)
- the change type of the change history is “delete” (S3347: YES)
- the server record corresponding to the GUID is deleted from the server database 21 (S3348). If the change type is not “delete” (S3347: NO), the change acquisition unit 215 searches the server database 21 for a server record that matches the key included in the change history (S3349), and the server record that matches the key is found.
- the change feature information including the GUID of the server record, the update time, the hint and key, and the “false” deletion flag is created and added to the synchronization information 42 (S3351).
- the change feature information about the collision or duplicated data is added to the synchronization information 42.
- FIG. 41 is a diagram showing a flow of processing for handling the synchronization information 42 in step S35 according to the second embodiment.
- the GUID allocation process (S3500) shown in FIG. 42 is executed before the process shown in FIG.
- the update processing unit 120 performs the following process for each piece of assignment information included in the synchronization information 42.
- the update processing unit 120 sets the GUID of the allocation information in the GUID of the client record corresponding to the LUID (S3521). If the status included in the allocation information is “present” (if the GUID corresponding to the LUID has already been registered in the server database 21) (S3522), the update processing unit 120 (S3522) sets the client record corresponding to the LUID.
- the update time of the allocation information is set at the update time of (S3523).
- the update processing unit 120 deletes the client change history corresponding to the LUID of the allocation information from the client change history storage unit 133, where the change type is “addition” (S3524). Also, the update processing unit 120 deletes the LUID of the allocation information from the unacquired ID storage unit 134 (S3525). By performing the above processing for each piece of allocation information, a GUID corresponding to the unacquired ID is registered.
- download request 43 created in the second embodiment is the same as in the first embodiment, and the processing (S37) by the server 20 corresponding to the download request 43 is also the same as in the first embodiment.
- FIG. 43 is a diagram showing a flow of processing for handling download information 44 in step S39 according to the second embodiment.
- steps S3903 to S3908 are executed instead of step S3902.
- the update processing unit 120 extracts, from the acquired download information included in the download information 44, the client change history corresponding to the GUID of the acquired download information that is not stored in the client change history storage unit 133 (S3903). Then, the application process shown in FIG. 22 described above is performed for each of the extracted acquired download information (S3904).
- the deletion processing unit 114 deletes the client record corresponding to the GUID included in the acquired download information from the client database 11 (S3922).
- the update processing unit 120 includes the GUID, key, column, hint, and main body included in the acquired download information, and a “false” update possibility flag.
- a client record including the “false” deletion possibility flag is registered in the client database 11 (S3923).
- the cancellation request transmission unit 122 creates the cancellation request 45 in which the client ID stored in the client ID storage unit 131 is set (S3905).
- the update processing unit 120 extracts, from the acquired download information included in the download information 44, the client change history corresponding to the GUID of the acquired download information stored in the client change history storage unit 133 (S3906).
- the resolution processing unit 124 performs the collision resolution process illustrated in FIG. 44 (S3907), and performs the duplication resolution process illustrated in FIG. 45 (S3908).
- the resolution processing unit 124 reads the client record corresponding to the GUID from the client database 11 (S3942), and the read client record and One of the acquired download information is selected (S3943).
- the cancellation processing unit 124 can output a client record and a hint of acquired download information to allow the user to select.
- the resolution processing unit 124 adds resolution information including the LUID, GUID, update time, key, column, hint, and main body of the client record to the resolution request 45 (S3945).
- the resolution information including the GUID, update time, column, hint, and main body of the acquisition download information is added to the resolution request 45 (S3946), the update time of the client record, The client database 11 is updated so that the key, column, hint, and main body are changed to those of the acquired download information (S3947).
- the cancellation processing unit 124 deletes the GUID from the collision storage unit 137 (S3948).
- the resolution processing unit 124 reads the client record corresponding to the GUID from the client database 11 (S3962), and the read client record One of the acquired download information is selected (S3963).
- the resolution processing unit 124 can output the client record and the hint of the acquired download information, for example, so that the user can select the same as in the above-described collision resolution processing.
- the resolution processing unit 124 When the resolution processing unit 124 selects a client record (S3964: YES), the resolution processing unit 124 adds resolution information including the LUID, GUID, update time, key, column, hint, and main body of the client record to the resolution request 45 (S3965).
- the resolution information including the GUID, update time, column, hint, and main body of the acquired download information is added to the resolution request 45 (S3966).
- the resolution processing unit 124 reads the GUID corresponding to the GUID of the acquired download information from the duplicate storage unit 136 as G (S3967), and deletes the client record whose GUID matches G from the client database 11 (S3968).
- the elimination processing unit 124 deletes the record corresponding to the GUID of the acquired download information from the duplicate storage unit 136 (S3969), and deletes the GUID of the acquired download information from the unverified storage unit 135 (S3970).
- FIG. 46 is a diagram showing a flow of processing corresponding to the cancellation request 45, which is executed by the server 20 in step S52 of FIG. 36 described above.
- the resolution processing unit 221 creates empty resolution result information 46 (S5201), and performs the following processing for each of the resolution information included in the resolution request 45.
- the resolution processing unit 221 sets the newly assigned GUID, the LUID set in the resolution information, the update time, the key, the column, the hint, and the main body.
- the resolution processing unit 221 searches the server database 21 for a server record corresponding to the GUID of the resolution information (S5205), and the server corresponding to the GUID If there is no record (S5206: NO), the resolution processing unit 221 adds result information including the GUID of the resolution information, the “true” deletion flag, and the status of “collision” to the resolution result information 46 ( S5207).
- the resolution processing unit 221 determines that the server record GUID does not match the server record update time (S5208: NO). The result information including the update time, the “false” deletion flag, and the “collision” status is added to the resolution result information 46 (S5209). If the update time points match (S5208: YES) and the deletion flag of the resolution information is “true” (S5210: YES), the resolution processing unit 221 deletes the server record corresponding to the GUID from the server database 21 (S5211).
- the resolution processing unit 221 updates the server database 21 to set the update information update time, key, column, hint, and main body in the server record. (S5212).
- the resolution processing unit 221 adds result information including the LUID, GUID, update time and deletion flag of the resolution information, and the status of “success” to the resolution result information 46 (S5213). Also, the resolution processing unit 221 searches the server database 21 for a server record that matches the key of the resolution information (S5214).
- FIG. 47 is a diagram showing a flow of processing corresponding to the solution result information 46, which is executed by the client 10 in step S54 of FIG. 36 described above.
- the resolution processing unit 124 creates an empty download request 43 (S5401), and performs the following processing for each piece of result information included in the resolution result information 46. If the LUID included in the result information is registered in the unacquired ID storage unit 134 (S5402: YES), the resolution processing unit 124 sets the GUID of the result information in the client record corresponding to the LUID.
- the client database 11 is updated (S5403), and the LUID is deleted from the unacquired ID storage unit 134 (S5404).
- the resolution processing unit 124 registers the GUID of the result information in the collision storage unit 137 (S5406), and the download determining unit 115 sets the GUID of the result information. It is determined whether or not to download the data indicated by (S5407).
- the download determination unit 115 may determine to automatically download the conflicted data by giving priority to the server 20, or may decide not to download the data by giving priority to the client data.
- the user may be inquired whether to download.
- the result information may include a key, a column, a hint, and the like, and the download determination unit 115 may determine to download when the key, the column, the hint, etc. satisfy a predetermined condition.
- the download determining unit 115 determines to download (S5409: YES)
- the download determining unit 115 generates acquisition information including the GUID of the result information and sets the acquired information in the download request 43 (S5410).
- the cancellation processing unit 124 deletes the client change history corresponding to the GUID of the result information from the client change history storage unit 133 (S5408).
- the download determining unit 115 determines the duplication information included in the resolution result information 46 to download the corresponding data (S5411), and the determined duplication Acquisition information including the GUID of the information is generated and set in the download request 43 (S5412). If the acquisition information is not set in the download request 43, the above-described processing in steps S55 to S58 in FIG. 36 is omitted. In this way, the client record that matches the selection filter and the server record are synchronized.
- the client 10 adds data based on the server change history. Can reflect updates, deletions.
- the server 20 side it is not necessary to manage which data is updated for which client 10 or the like. Therefore, the cost of managing the state of each client 10 in the server 20 can be reduced. Therefore, the server 20 can be operated effectively. Therefore, it is effective when one server 20 is accessed from many clients 10.
- the server 20 can detect addition, deletion, or update only for data that matches the filter condition. Therefore, for example, without managing a list of data stored in the client 10 in the server 20 or transmitting a list of data stored in the client 10, only a part of the data that matches the filter condition Can be selectively synchronized, so that efficient data synchronization can be realized.
- new data is often more valuable.
- new data is stored in the server change history without searching the server database 21 storing a large amount of data. Since synchronization can be performed based on this, data can be synchronized efficiently. In other words, data with higher value can be synchronized more efficiently. Therefore, effective synchronization can be performed between the client and the server.
- the filtered-out data is not subject to synchronization, and synchronization is performed such that the data of the client 10 is deleted.
- the client 10 is subject to synchronization. Since the data has been determined, the client 10 can also designate the data filtered out by the server 20 as a synchronization target by specifying the data ID in the download request.
- the client 10 data before update is stored in the client database 11, and the user of the client 10 is interested in the data stored in the client database 11.
- data included in the user's range of interest that is, data having high importance for the user can be preferentially synchronized. This is convenient for the user.
- it is expected that the response time is felt short for the user by preferentially downloading the data included in the user's range of interest.
- the data added or changed in the server 20 is not transmitted suddenly, and the client 10 can download only necessary data with reference to the hint. Therefore, for example, in a mobile phone or the like, the storage capacity is limited and the communication speed is limited, and a large amount of data may not be downloaded. Data can be acquired flexibly according to the situation.
- the server 20 searches for data added from the anchor time to the boundary time, and as the change feature information The client 10 can be notified. Therefore, even if the server change history before the boundary time is not recorded in the server 20, the client 10 can acquire at least added and updated data. Therefore, since it is possible to perform data synchronization without storing all the change histories in the server 20, it is possible to suppress the load on the server 20 related to data synchronization.
- the update data when the anchor time is before the boundary time, the update data by sending the data at the update time before the boundary time from the client 10 to the server 20 as the stale information.
- the server 20 can be inquired as to whether or not it has been deleted. Therefore, it is possible to synchronize data that does not have a change history following the update of data that has a change history. Therefore, it is possible to perform reliable data synchronization.
- the server change history storage unit 231 manages the column before the update as an old column.
- the data stored in the client 10 can be synchronized even if the data is updated in step # 5 and no longer matches the filter condition.
- the server 20 is configured not to transmit update information to the client 10 for data created after the anchor point and then deleted. Therefore, efficient synchronization can be performed.
- the client 10 can detect data duplication and eliminate the duplication. Therefore, it is possible to suppress resource consumption due to a plurality of registrations of the same data.
- the client 10 when data is created by the client 10, the client 10 does not assign a GUID, but only assigns a unique LUID in the client 10, and a unique global ID in the system at the time of synchronization. Can be assigned by the server 20.
- the client 10 assigns a GUID every time data is created, the load on the GUID assigning process cannot be ignored.
- the client 10 only needs to assign a LUID. It becomes possible to suppress the processing load concerning.
- the assignment of GUID can be unified to the server 20, a unique GUID can be surely assigned easily.
- a collision in which data is changed is detected by both the client 10 and the server 20, and synchronization is performed after the collision is resolved based on a hint or the like. Therefore, even in a situation where the same data is changed from a plurality of clients 10, synchronization can be performed appropriately.
- the data creation time, update time, and deletion time are values representing the order of changes to the server database 21.
- the present invention is not limited to this, and a time stamp may be adopted. Good.
- the unit time of the time stamp for example, milliseconds, microseconds, etc.
- the data identification information linked to the time stamp is used. It may be adopted as “time point”, and the timing for registering the server change history in the server change history storage unit 231 may be delayed by at least the unit time.
- the client 10 and the server 20 are assumed to be one each in order to simplify the description.
- a plurality of clients 10 may be connected to one server 20.
- One client 10 may be connected to a plurality of servers 20, or a plurality of clients 10 may be connected to a plurality of servers 20.
- the client ID is stored in the client ID storage unit 131 in advance.
- the server 20 assigns a client ID to the client 10 and the client 10 It is also possible to acquire the assigned client ID and register it in the client ID storage unit 131.
- the client ID may be reset every time the client 10 is activated, for example.
- the server change history related to addition, update, and deletion is registered in the server change history storage unit 231.
- only the server change history related to deletion may be managed.
- the server 20 receives the GUID of the server record whose update time is later than the anchor time from the server database 21, the update time, the hint, The key is acquired and set in the changed feature information.
- the server change history storage unit 231 can be omitted.
- the server 20 searches the server database 21 for a server record including an update time point after the anchor time point, and creates changed feature information.
- steps S3506 to S3508 of the corresponding processing of the synchronization information 42 (FIGS. 19 and 41)
- the client 10 sets “true” to the deletion possibility flag of all the client records.
- the history may be managed by setting a deletion flag in the server record instead of the server change history.
- the server 20 can periodically delete server records from the current time point to a predetermined past time point from the server database 21.
- the synchronization information 42 includes all the changed feature information corresponding to the filter condition in the synchronization information 42.
- the synchronization information 42 includes a condition for limiting the number of changed feature information included in the synchronization information 42 (
- the “limit condition” may be included in the synchronization request.
- the limit condition can be set to, for example, a predetermined number from the nth of the records sorted by a predetermined column.
- the filter condition is always set. However, the filter condition is not specified, and all data may be updated.
- the synchronization information 42, the download information 44, the cancellation request 45, and the like are transmitted by one transmission.
- the synchronization information 42, the download information 44, the cancellation request 45, and the like may be transmitted in a plurality of times.
- the change feature information is also included in the synchronization information 42 for data added or updated before the boundary time.
- the synchronization information 42 includes a change feature for data after the boundary time. Only the information is included, and when the update processing unit 120 of the client 10 has the anchor time point before the boundary time point, a command for acquiring data added or updated before the boundary time point (hereinafter, “ The anchor time point and the boundary time point are set in “additional update information acquisition request”) and transmitted to the server 20, and the change acquisition unit 215 of the server 20 sets the anchor time point included in the additional update information acquisition request. Later than the boundary point included in the request for acquiring additional update information. That the server records retrieved from the server database 21 to create a change characteristic information may be transmitted to the client 10. In this case, the update of data based on the change history can be processed with higher priority.
- an ID (hereinafter referred to as “synchronization ID”) is assigned to the server database 21 to be synchronized.
- the synchronization ID may be included in the allocation, synchronization request 41, synchronization information 42, download request 43, download information 44, resolution request 45, and resolution result information 46.
- the client 10 is set in the synchronization ID set in the synchronization request 41, the download request 43, and the cancellation request 45, and in the synchronization information 42, the download information 44, and the cancellation result information 46 returned from the server 20. If the synchronization ID is different, the client 10 may delete the data stored in the client database 11 and then start the synchronization process again from the beginning.
- the anchor point is updated at the latest history point included in the synchronization information 42.
- the change feature information included in the synchronization information 42 is updated.
- the latest update time included in the data corresponding to the data determined to be downloaded by the download determination unit 115 may be registered in the anchor storage unit 132 as the anchor time in association with the selection filter condition.
- download information 44 is received from the server 20 in response to the download request 43, and each time data is registered in the client database 11 based on the download information 44,
- the update time of the registered data may be registered in the anchor storage unit 132 as the anchor time.
- the latest history point included in the synchronization information 42 is registered in the anchor storage unit 132 as the anchor point only when data corresponding to all the changed feature information included in the synchronization information 42 is downloaded. It may be.
- the stale information acquisition unit 117 sets the stale information for all of the client records in which the deletion possibility flag or the update possibility flag is “true” and the GUID is not included in the acquisition information.
- the present invention is not limited to this, and is not limited to this, but is a client record in which at least one of the deletion possibility flag and the update possibility flag is “true”, that is, data that may be deleted or updated in the server 20.
- the client 10 may create the stale information for all the client records in which at least one of the deletion possibility flag and the update possibility flag is “true”.
- the stale information may be created for matching client data, or the stale information may be created for client data specified by the user of the client 10.
- the data determined by the download determining unit 115 not to download is not downloaded, but the data updated in the server 20 is updated to the client record. It is also possible to set a flag indicating the update flag (hereinafter referred to as “update flag”) and to determine that the update flag is true at the time of the next synchronization processing.
- the download determination unit 115 specifies data that has been added or updated based on the change feature information included in the synchronization information 42, and retrieves a client record for which the update flag is true from the client database 11.
- the data to be downloaded can be determined from the retrieved data and the retrieved client records.
- the data determined by the download determining unit 115 not to download may be downloaded later or deleted from the client database 11.
- old data stored in the client database 11 may be periodically deleted.
- the update time point of the client record is the current Items that are more than a predetermined time before the date and time can be deleted from the client database 11.
- the anchor storage unit 132 stores the date and time when these are registered in the anchor storage unit 132 in association with the filter condition and the anchor point, and the client 10 stores the registration date and time a predetermined time or more before the current date and time. It is also possible to determine whether the filter condition is old or new depending on whether or not the client record 11 that matches the old filter condition and does not match the new filter condition is deleted from the client database 11.
- one server change history is created each time data is changed in the server 20 regardless of the type of change (addition, update, or deletion). Instead, for example, one server change history may be recorded for the updated data.
- a predetermined number of histories can be set.
- a server change history corresponding to the GUID of the updated server record is searched from the server change history storage unit 231. If a server change history exists, the updated server record is updated. The value is set as the latest value of the item included in the server change history.
- the oldest value is deleted from the list.
- the server change for the update of the server record is performed. A situation where the history monopolizes the server change history storage unit 231 can be avoided. Therefore, when the number of change histories is limited, even when the update frequency of server records is high, change histories for more data can be managed. Therefore, even with a finite change history, it is possible to reliably manage data changes in the server 20.
- the server database 21 stores a server record including a key, a column, a hint, and the like in addition to the data body.
- the data body, a key, a column, and a hint of the data are stored.
- the meta information such as may be stored as different data.
- the server record stored in the server database 21 includes only the GUID, the creation time, the update time, and the main body, and the server 20 corresponds to each of the server records stored in the server database 21.
- a header database that stores information (hereinafter referred to as “header data”) including a GUID, an update point, a key, a column, and a hint can be provided.
- step S3307 of the process for responding to the synchronization request 41 shown in FIGS. 16 and 38 the change acquisition unit 215 determines from the header database that the update time is after the anchor time and the update time is before the boundary time. Is read out, and change feature information is created. Therefore, the change acquisition unit 215 can detect data added or updated between the anchor point and the boundary point in response to the synchronization request 41 without accessing the server database 21. Even when there are many accesses to 21, data that can be efficiently synchronized can be detected. Further, by providing the header database, it is possible to synchronize data using header data without changing the configuration of the server database 21. Therefore, for example, even when the operating server database 21 exists, the operating server database 21 can be easily set as a synchronization target.
- the client 10 may include a header database that stores header data separately from the client database 11.
- a PIM (Personal Information Manager) application that uses the client database 11 is operating in the client 10, data synchronization is performed without changing the configuration of the client database 11. It becomes possible.
- the server change history for deletion is registered in the server change history storage unit 231.
- a deletion flag may be set in the server record.
- the deletion flag of the server record is set to true and the current time is set as the update time.
- the update time of the server record is the boundary time (the oldest update time of the server change history registered in the server change history storage unit 231). Older ones are deleted from the server database 21.
- the change history acquisition unit 214 searches the server change history storage unit 231 for a server change history that matches the selection filter condition, and searches for a server record that matches the selection filter condition for which the deletion flag is true.
- the change feature information is generated based on the server change history and the server record.
- the change history acquisition unit 214 determines, as the latest history time point, the newest time point of the server change history that matches the selection filter condition and the latest update time point of the server record whose delete flag is “true”. To do.
- the server change history is registered in the server change history storage unit 231.
- the server change history may be added to the server record registered in the server database 21 and stored.
- the server change history can be managed as an attribute for each instance of the server record.
- a predetermined number of server change histories are stored for each instance, and server change histories exceeding the predetermined number are deleted in order from the old update point.
- step S3508 of the corresponding process of the synchronization information 42 shown in FIG. 41 (and FIG. 19) the deletion possibility flag and the update possibility flag are set to true for data whose update time is earlier than the boundary time.
- the client record includes an “observation point” indicating the update point of the known server record. For example, in the above-described conflict elimination process of FIG. 44 or the duplicate elimination process loop of FIG. If the client record corresponding to the GUID set in the acquired download information exists in the client database 11, the update time of the acquired download information is set to the observation time of the corresponding client record.
- the observation time of the client record that matches the filter condition is before the anchor time corresponding to the filter condition, the observation time of the client record is updated to the anchor time. Furthermore, in step S3508 of FIG. 41, only the updatability flag is set to “true”, and then a search is made for a search that matches the filter condition and the observation time is before the boundary time.
- the client data deletion possibility flag is set to “true”. As a result, the deletion possibility flag is not set to data before the time point when it is determined that the server 20 has not deleted. As a result, the client 10 may determine that the client record having the delete possibility flag “false” and the update possibility flag “true” has not been deleted at least by the server. it can.
- the server 20 is inquired only about the client record whose delete possibility flag is “true”. As a result, it is possible to narrow down the client records to be inquired.
- the download determining unit 115 determines data to be downloaded, priority may be given according to the deletion possibility flag. For example, when there is a limit to the number of data that can be downloaded at one time, data with the delete possibility flag “false” is downloaded first, or conversely, the delete possibility flag is “true”. Some data can be downloaded first.
- the server 20 responds to the client 10 only with the server change history that matches the filter condition included in the synchronization request 41.
- the server 20 matches the filter condition.
- a value similar to the value specified in the filter condition may be set in the synchronization information 42.
- the server 20 adds a flag indicating that the filter condition is not matched (hereinafter, referred to as “match unknown flag”) to the server change history and sets the synchronization information 42. If the match unknown flag is false, it may be displayed to the user as proposal information indicating that there is a possibility of a match, although the filter condition is not matched.
- the synchronization request 41 includes change feature information corresponding to all client change histories in which no GUID is registered in the duplicate storage unit 136 and the collision storage unit 137.
- the synchronization request 41 may include only the change feature information based on the client change history in which the GUID is not registered in the duplication storage unit 136 and the collision storage unit 137 and the change type is “delete”.
- the server 20 omits the collision duplication detection process at step S3310 in the synchronization request response process at step S33 shown in FIG. 36 (FIG. 38), and for the client change history whose change type is other than “delete”.
- the resolution processing unit 124 selects either the client record or the server record in the step 3943 in FIG. 44 and is included in the resolution request 45. 124 causes the corresponding client record to be included in the resolution request 45 after step 3908 of FIG. By doing in this way, the processing load which performs the detection process of a collision and duplication in the server 20 can be reduced.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
図1は、本発明の一実施形態に係る通信システムの全体構成を示す図である。本実施形態の通信システムは、クライアント10およびサーバ20を含んで構成される。クライアント10およびサーバ20はそれぞれ通信ネットワーク30に接続されており、クライアント10およびサーバ20は通信ネットワーク30を介して通信可能になっている。本実施形態の通信システムは、サーバ20とクライアント10との間のデータの同期を行うものである。
図2は、クライアント10のハードウェア構成を示す図である。クライアント10は、CPU101、メモリ102、記憶装置103、通信インタフェース104、入力装置105、および出力装置106を備えている。
本実施形態の通信システムでは、クライアント10とサーバ20との間でデータが同期される。下記第1の実施形態では、クライアント10ではデータの更新が行われず、サーバ20においてのみデータの更新が行われる場合を想定し、下記第2の実施形態では、クライアント10およびサーバ20の両方においてデータが更新される場合を想定する。
(1)クライアント10とサーバ20との間で、それぞれにおいて変更されたデータについての情報が交換される。
(1.1)クライアント10からサーバ20へ、クライアント10において更新されたデータについての情報が送信される。なお、クライアント10においてデータが更新されない場合には、この手順は省略される。
(1.2)サーバ20からクライアント10へ、サーバ20において更新されたデータについての情報が送信される。
(1.3)クライアント10は、データの競合を検出し、競合を解消する。データの競合とは、データの衝突および重複である。データの衝突とは、クライアント10およびサーバ20の両方において同じレコードに対して変更が行われたことをいう。データの重複とは、クライアント10とサーバ20との両方で異なるデータを更新したことにより、異なるデータが同一あるいは類似の内容になることをいう。本実施形態では、競合の解消は、競合関係にある2つのデータ(例えば、衝突するクライアント10のデータおよびサーバ20のデータ、あるいは、重複する2つのデータ)のいずれかを選択することにより行うものとする。
(3)クライアント10は、サーバ20に反映すべきデータをサーバ20にアップロードする。
以下、詳細に付いて説明する。
第1の実施形態では、クライアント10においてデータの更新が行われないものとする。また、第1の実施形態では、サーバ20において管理されるデータは大量であり、その全てをクライアント10にダウンロードすることはできないものとする。
図4は、第1の実施形態に係るクライアント10のソフトウェア構成を示す図である。同図に示すように、クライアント10は、クライアントデータベース11、フィルタ選択部111、同期要求送信部112、同期情報受信部113、削除処理部114、ダウンロード決定部115、アンカー更新部116、陳腐化情報取得部117、ダウンロード要求送信部118、ダウンロード情報受信部119、更新処理部120、クライアントID記憶部131、アンカー記憶部132を備えている。なお、フィルタ選択部111、同期要求送信部112、同期情報受信部113、削除処理部114、ダウンロード決定部115、アンカー更新部116、陳腐化情報取得部117、ダウンロード要求送信部118、ダウンロード情報受信部119、更新処理部120は、クライアント10が備えるCPU101が記憶装置103に記憶されているプログラムをメモリ102に読み出して実行することにより実現される。また、クライアントデータベース11、クライアントID記憶部131、アンカー記憶部132は、クライアント10が備えるメモリ102や記憶装置103が提供する記憶領域として実現される。クライアントデータベース11は、クライアント10とは異なるコンピュータ(データベースサーバ)により提供されるようにしてもよい。この場合、クライアント10は、例えば、通信ネットワーク30を介してデータベースサーバにアクセス可能に接続されるようにする。
キーは、例えば、データ本体がアドレス帳のデータである場合には、電話番号や氏名などの文字列を連結して作成することができ、データ本体が電子メールのデータである場合には、電子メールの名宛人(To)、差出人(From)、日付(Date)、および件名(Subject)に設定されている文字列を連結して作成することができる。
カラムは、データがフィルタ条件を満たすか否かを判定するために用いるものであり、データ本体の一部である。ヒントは、サーバ20からデータをダウンロードするか否かを決定するための情報である。本実施形態では、ヒントには、データの重要度が含まれているものとするが、例えば、データ本体がアドレス帳のデータである場合には氏名とし、データ本体が電子メールのデータである場合には、電子メールの件名と差出人の文字列を結合したものとして、ユーザがデータの内容を把握することができるようにする。また、ヒントには、例えば、データの重要度やカテゴリ、データサイズ、データ内容の要約など各種のメタデータを含めることもできる。
変更特徴情報に含まれている更新時点は、最後にデータの更新が行われた時点であり、削除フラグは、サーバ20においてデータが削除されたことを示す。
図11は、サーバ20のソフトウェア構成を示す図である。サーバ20は、GUID生成部210、時点生成部211、データベース変更部212、同期要求受信部213、変更履歴取得部214、変更取得部215、同期情報送信部216、ダウンロード要求受信部217、データ取得部218、ダウンロード情報送信部219、サーバデータベース21およびサーバ変更履歴記憶部231を備えている。
データベース変更部212は、サーバデータベース21にサーバレコードを追加する場合、時点生成部211が生成する時点を作成時点および更新時点のそれぞれに設定してサーバレコードをサーバデータベース21に追加する。また、データベース変更部212は、追加したサーバレコードのGUID、作成時点、更新時点、ヒントを含むサーバ変更履歴を作成し、作成したサーバ変更履歴の削除フラグに「偽」を設定し、旧カラムおよび現カラムのそれぞれに、追加したサーバレコードのカラムを設定してサーバ変更履歴記憶部231に登録する。
データベース変更部212は、サーバデータベース21に記憶されているサーバレコードを更新した場合には、時点生成部211が生成する時点をサーバレコードの更新時点に設定する。また、データベース変更部212は、更新したサーバレコードのGUID、作成時点、更新時点、ヒントを含むサーバ変更履歴を作成し、作成したサーバ変更履歴の削除フラグに「偽」を設定し、旧カラムに更新前のカラムを設定し、現カラムに更新後のカラムを設定してサーバ変更履歴記憶部231に登録する。
また、データベース変更部212は、サーバデータベース21に記憶されているサーバレコードを削除した場合には、時点生成部211が生成する時点、削除したサーバレコードのGUID、作成時点、ヒントを含むサーバ変更履歴を作成し、作成したサーバ変更履歴の削除フラグに「真」を設定し、旧カラムに削除したサーバレコードのカラムを設定してサーバ変更履歴記憶部231に登録する。
図14は、第1の実施形態に係る通信システムにおいて実行される、データの同期処理の流れを説明する図である。
クライアント10は同期要求41を作成し(S31)、作成した同期要求41をサーバ20に送信する(S32)。サーバ20は、同期要求41を受信すると、バウンダリ時点、最新履歴時点、変更特徴情報を含む同期情報42を作成し(S33)、作成した同期情報42をクライアント10に送信する(S34)。
クライアント10は同期情報42を受信すると、削除フラグが真であるデータをクライアントデータベース11から削除するとともに、ダウンロードすべきデータを示す取得情報と陳腐化情報とを含むダウンロード要求43を作成し(S35)、作成したダウンロード要求43をサーバ20に送信する(S36)。サーバ20は、ダウンロード要求43を受信すると、取得ダウンロード情報と陳腐化ダウンロード情報とを含むダウンロード情報を作成し(S37)、作成したダウンロード情報をクライアント10に送信する(S38)。
クライアント10は、ダウンロード情報に含まれている取得ダウンロード情報および陳腐化ダウンロード情報に応じて、クライアントデータベース11へのデータの登録または削除を行う(S39)。
以下、詳細について説明する。
図15は、クライアント10において実行される同期要求41の作成処理の流れを示す図である。
まず、フィルタ選択部111は、フィルタ条件を選択する(S3101)。上述したように、フィルタ選択部111は、例えば、ユーザからフィルタ条件の指定を受け付けることによりフィルタ条件を選択する。
フィルタ選択部111は、選択フィルタ条件がアンカー記憶部132に記憶されていれば(S3102:YES)、選択フィルタ条件に対応するアンカー時点をアンカー記憶部132から読み出す(S3103)。
一方、選択フィルタ条件がアンカー記憶部132に記憶されていない場合には(S3102:NO)、フィルタ選択部111は、アンカー時点に所定の最小値から1を減じた値(本実施形態では「0」とする。)を設定する(S3104)。
同期要求送信部112は、クライアントID記憶部131からクライアントIDを読み出し(S3105)、クライアントID、選択フィルタ条件、およびアンカー時点を含む同期要求41を作成する(S3106)。
以上のようにして同期要求41が作成される。作成された同期要求は同期要求送信部112によりサーバ20に送信される。
図16は、サーバ20において実行される同期要求41に対応する処理の流れを示す図である。
同期情報送信部216は、サーバ変更履歴記憶部231に登録されているサーバ変更履歴の最も古い更新時点をバウンダリ時点とし(S3301)、最も新しい更新時点を最新履歴時点とし(S3302)、バウンダリ時点と最新履歴時点とを含む同期情報42を生成する(S3303)。なお、サーバ変更履歴記憶部231に変更履歴が登録されていないときには、同期情報送信部216は、時点生成部211が生成する時点を取得し、取得した時点をバウンダリ時点および最新履歴時点とする。
変更履歴取得部214は、サーバ変更履歴記憶部231から、フィルタ条件にマッチするサーバ変更履歴を読み出し、読み出した各サーバ変更履歴について、サーバ変更履歴のGUID、更新時点、削除フラグ、ヒントおよびキーを含む変更特徴情報を作成する(S3304)。変更履歴取得部214は、作成した変更特徴情報を同期情報42に設定する(S3305)。
同期情報送信部216は、同期情報42に設定された変更特徴情報のうち、更新時点がアンカー時点より後であり、かつ削除フラグが「真」であるもののそれぞれについて、当該変更特徴情報と、当該変更特徴情報と同じGUIDである他の変更特徴情報とを同期情報42から削除する(S3306)。
変更取得部215は、サーバデータベース21から、更新時点がアンカー時点より後であり、かつ更新時点がバウンダリ時点より前であるデータを読み出し、読み出したデータのGUID、更新時点、ヒントおよびキーと、「偽」の削除フラグとを含む変更特徴情報を作成する(S3307)。変更取得部215は、作成した変更特徴情報を同期情報42に設定する(S3308)。
以上のようにして同期情報42が作成される。作成された同期情報42は、同期情報送信部216によりクライアント10に送信される。
図17および図18は、サーバ変更履歴記憶部231が記憶する変更履歴と、変更特徴情報との関係を説明する図である。図17および図18では、サーバ変更履歴記憶部231には、時点t4~時点t8の期間についてのみサーバ変更履歴231が記憶されており、データa、b、cおよびdは、それぞれ時点t2、t4、t6およびt8において変更されたものとしている。ここで、バウンダリ時点は時点t4となる。
図19は、クライアント10において実行される同期情報42に対応する処理の流れを示す図である。
まず、削除処理部114は、同期情報42に含まれている変更特徴情報のうち、削除フラグが真であるもののそれぞれについて、GUIDに対応するデータをクライアントデータベース11から削除する(S3501)。アンカー更新部116は、同期情報42に含まれている最新履歴時点を選択フィルタ条件に対応付けてアンカー記憶部132に登録する(S3502)。
次に、ダウンロード決定部115は、空のダウンロード要求43を作成し(S3503)、同期情報42に含まれている変更特徴情報に対応するデータのうち、ダウンロードすべきものを決定する(S3504)。上述したように、ダウンロード決定部115は、例えば、変更特徴情報に含まれているキーやヒントなどを出力し、ダウンロードすべきデータをユーザに選択させるようにすることができる。なお、ダウンロード決定部115はここで、クライアントデータベース11において選択フィルタ条件にマッチするデータのうち、そのGUIDが同期情報42に含まれていないもの(フィルタアウトされたデータ)についても、ダウンロードすべきデータとして決定するようにしてもよい。ダウンロード決定部115は、決定したデータのそれぞれについて、データを示すGUIDを含む取得情報を生成し、生成した取得情報をダウンロード要求43に追加する(S3505)。
陳腐化情報取得部117は、クライアントデータベース11から、削除可能性フラグまたは更新可能性フラグが「真」であるデータのリストを取得する(S3509)。陳腐化情報取得部117は、リストに含まれるデータのうち、GUIDが取得情報に含まれているものをリストから削除する(S3510)。陳腐化情報取得部117は、リストに含まれているデータのそれぞれについて、GUIDおよび更新時点を設定した陳腐化情報を作成してダウンロード要求43に追加する(S3511)。
以上のようにしてダウンロード要求43が作成される。作成されたダウンロード要求43は、ダウンロード要求送信部118によりサーバ20に送信される。
図20は、サーバ20において実行されるダウンロード要求43の対応処理の流れを説明する図である。
データ取得部218は、空のダウンロード情報44を作成し(S3701)、ダウンロード要求43に含まれている各取得情報について以下の処理を行う。
データ取得部218は、取得情報に含まれるGUIDに対応するデータをサーバデータベース21から検索し(S3702)、対応するデータが存在する場合には(S3703:YES)、検索したデータのGUID、更新時点、キー、カラム、ヒントおよび本体と、「偽」の削除フラグとを含む取得ダウンロード情報を作成してダウンロード情報44に追加する(S3704)。一方、取得情報のGUIDに対応するデータが存在しない場合は(S3703:NO)、データ取得部218は、取得情報のGUIDと「真」の削除フラグとを含む取得ダウンロード情報を作成してダウンロード情報44に追加する(S3705)。
データ取得部218は、陳腐化情報に含まれるGUIDに対応するデータをサーバデータベース21から検索し(S3706)、対応するデータが存在する場合(S3707:YES)、当該データの更新時点が陳腐化情報の更新時点よりも新しければ(S3708:YES)、当該データのGUID、更新時点、キー、カラム、ヒントおよび本体と「偽」の削除フラグとを含む陳腐化ダウンロード情報を作成してダウンロード情報44に追加する(S3709)。一方、陳腐化情報に含まれるGUIDに対応するデータが存在しない場合には(S3707:NO)、データ取得部218は、陳腐化情報のGUIDおよび「真」の削除フラグを含む陳腐化ダウンロード情報を作成してダウンロード情報44に追加する(S3710)。
以上の処理を各陳腐化情報について繰り返すことで、ダウンロード情報44が作成される。作成されたダウンロード情報44は、ダウンロード情報送信部219によりクライアント10に送信される。
図21は、クライアント10において実行されるダウンロード情報44の対応処理の流れを示す図である。
更新処理部120は、ダウンロード情報44に含まれている陳腐化ダウンロード情報のそれぞれについて、図22に示す適用処理を行う(S3901)。すなわち、陳腐化ダウンロード情報の削除フラグが「真」であれば(S3921:YES)、削除処理部114は、陳腐化ダウンロード情報に含まれているGUIDに対応するデータをクライアントデータベース11から削除し(S3922)、削除フラグが「偽」であれば(S3921:NO)、更新処理部120は、陳腐化ダウンロード情報に含まれているGUID、キー、カラム、ヒントおよび本体と、「偽」の更新可能性フラグおよび「偽」の削除可能性フラグとを含むデータを作成してクライアントデータベース11に登録する(S3923)。なお、GUIDが一致するデータがクライアントデータベース11にすでに登録されている場合には、当該データは上書きされる。
このようにして、ダウンロード情報に応じてクライアントデータベース11が更新される。
以上のようにして、選択フィルタにマッチするクライアントレコードとサーバレコードとの同期が行われる。
次に、第2の実施形態について説明する。第2の実施形態については、第1の実施形態との違いについて主に説明し、第1の実施形態と同じ部分については説明を省略する。
第2の実施形態では、クライアント10においてもデータの更新が行われるものとする。したがって、クライアント10とサーバ20との両方で同じデータについて異なる内容の更新が行われる衝突が起こり得る。データの衝突は、一般にサーバ20によって検知されるが、第2の実施形態では、クライアント10とサーバ20との両方で衝突を検知するようにしている。また、クライアント10とサーバ20との両方で異なるデータを更新したことにより、異なるデータが同一あるいは類似の内容になる重複も起こり得る。第2の実施形態では、重複についても、クライアント10とサーバ20との両方で検出するようにしている。第2の実施形態では、キーが一致した場合に、重複が発生したと判定するものとする。
図23は、第2の実施形態に係るクライアント10のソフトウェア構成を示す図である。第2の実施形態に係るクライアント10は、上述した第1の実施形態に係るクライアント10に加えて、クライアント変更検知部110、衝突重複解消決定部121、解消要求送信部122、解消結果情報受信部123、解消処理部124、クライアント変更履歴記憶部133、未取得ID記憶部134、未検証記憶部135、重複記憶部136、衝突記憶部137を備えている。なお、クライアント変更検知部110、衝突重複解消決定部121、解消要求送信部122、解消結果情報受信部123、および解消処理部124は、クライアント10が備えるCPU101が記憶装置103に記憶されているプログラムをメモリ102に読み出して実行することにより実現される。また、クライアント変更履歴記憶部133、未取得ID記憶部134、未検証記憶部135、重複記憶部136、衝突記憶部137は、クライアント10が備えるメモリ102や記憶装置103が提供する記憶領域として実現される。
クライアント変更履歴記憶部133は、クライアントデータベース11に対する変更履歴を記憶する。上述したサーバ変更履歴記憶部231には、サーバ変更履歴は新しい順に所定数のみ記憶されるが、クライアント変更履歴記憶部133には、アンカー時点より後に行われたクライアントデータベース11に対する全ての変更についてのクライアント変更履歴が記憶されるものとする。
未取得ID記憶部134は、GUIDが割り当てられていないLUID(以下、「未取得ID」という。)を記憶する。未取得ID記憶部134には、クライアントデータベース11に新しいデータが追加された際に、そのデータに割り当てられたLUIDが登録される。
未検証記憶部135は、そのデータと重複するデータが存在するか否かの判定を行っていないデータを示すGUIDを記憶する。本実施形態では、クライアント10においてデータが変更された場合に、サーバ20において重複が発生するか否かを問い合わせることはせずに、後述するように、重複はサーバ20との間のデータの同期時に判定される。そこで、データが変更された場合には、そのデータのGUIDがデータの変更時から同期時まで未検証記憶部135に登録される。
衝突記憶部137は、衝突するデータを示すGUIDを記憶する。
クライアント変更検知部110は、変更が追加である場合(S401:YES)、新データにLUIDを割り当て(S402)、未取得ID記憶部134に、割り当てたLUIDを登録する(S403)。一方、変更が更新または削除である場合には(S401:NO)、クライアント変更検知部110は、新データからLUIDおよびGUIDを取得する(S404)。
クライアント変更検知部110は、変更が追加または更新である場合(S405:YES)、新データの本体に基づいてキーを作成して新キーとし(S406)、重複の判定処理を行う(S407)。
最後に、クライアント変更検知部110は、クライアント変更履歴を登録する変更履歴登録処理を行う(S408)。
クライアント変更検知部110は、クライアントレコードのキーが新キー一致しなければ(S321:NO)、未検証記憶部135にGUIDを登録する(S322)。
一方、クライアントレコードのキーが新キーと一致する場合(S321:YES)、クライアント変更検知部110は、新レコードのGUIDおよびLUIDと、クライアントレコードのGUIDおよびLUIDとを対応付けて重複記憶部136に登録する(S323)。クライアント変更検知部110は、新レコードのGUIDが未検証記憶部135に登録されている場合には(S324:YES)、未検証記憶部135から新レコードのGUIDを削除する(S325)。
クライアント変更検知部110は、クライアント変更履歴記憶部133から、新データのLUIDまたはGUIDと一致する変更履歴を検索する(S441)。一致するクライアント変更履歴が存在しなければ(S442:NO)、クライアント変更検知部110は、変更種別、新データのLUID、GUID、更新時点およびカラム、旧データのカラム、並びに新キーを含むクライアント変更履歴を作成してクライアント変更履歴記憶部133に登録する(S443)。
一方、上記変更履歴が存在する場合には(S442:YES)、クライアント変更検知部110は、当該変更が追加または変更であれば(S444:NO)、検索したクライアント変更履歴の変更種別を、当該変更を示す変更種別(追加または更新)に変更し(S445)、検索したクライアント変更履歴の現カラムに新データのカラムを設定し(S446)、検索したクライアント変更履歴のキーに新キーを設定する(S347)。後述するように、サーバ20とクライアント10との間のデータの同期は、クライアント変更履歴に従って行われるため、このようにまだサーバ20との間で同期がなされていない段階で再度更新等があった場合には、既存のクライアント変更履歴を更新することにより、同期処理の効率を上げることができる。
変更が削除である場合(S444:YES)、クライアント変更検知部110は、新データのGUIDが設定されていなければ、すなわち新データのGUIDがnullであれば(S448:YES)、検索したクライアント変更履歴をクライアント変更履歴記憶部133から削除する(S449)。つまり、クライアント10においてデータが作成された後、サーバ20にアップロードされる前に削除された場合には、クライアント変更履歴を削除することにより、無駄な同期がなされないようにしている。
新データにGUIDが設定されている場合、すなわち新レコードのGUIDがnullでない場合には(S448:NO)、検索したクライアント変更履歴の変更種別に削除を設定する(S450)。
以上のようにして、クライアント変更検知部110は、クライアントデータベース11に対する変更を検知すると、クライアント変更履歴を登録する。
また、第2の実施形態では、同期情報42に含まれる変更特徴情報は、後述するように、サーバ20において新たに追加されたデータに加えて、クライアント10とサーバ20との間で衝突または重複しているデータに関しても追加される。
衝突重複解消決定部121は、ダウンロード情報44に含まれるGUIDが示すデータが衝突または重複する場合に、当該データをサーバ20に送信するか否かを決定する。本実施形態では、衝突重複解消決定部121は、ダウンロード情報44に含まれるGUIDが、クライアント変更履歴記憶部133、重複記憶部136または衝突記憶部137に記憶されているか否かにより、衝突または重複が発生しているか否かを判定し、衝突または重複が発生していると判定した場合に、ユーザに、クライアントレコードかサーバレコードのいずれかを選択させるようにする。なお、衝突重複解消決定部121は、例えば、クライアントレコードを常に優先するようにして、無条件にクライアントレコードを選択するようにしてもよいし、任意のアルゴリズムを適用して自動的に選択するようにしてもよい。
解消処理部124は、解消結果情報46に応じてクライアントデータベース11の更新を行う。なお、解消処理部124の処理の詳細については後述する。
図34は、第2の実施形態に係るサーバ20のソフトウェア構成を示す図である。第2の実施形態に係るサーバ20は、第1の実施形態に係るサーバ20に加えて、解消要求受信部220、解消処理部221、解消結果情報送信部222を備えている。なお、解消要求受信部220、解消処理部221、解消結果情報送信部222は、サーバ20が備えるCPU201が記憶装置203に記憶されているプログラムをメモリ202に読み出して実行することにより実現される。
解消処理部221は、解消要求45に応じてサーバデータベース21を更新する。なお、解消処理部221により実行される解消処理の詳細については後述する。
解消結果情報送信部222は、解消処理部221による解消処理の結果を示す解消結果情報を作成してクライアント10に送信する。なお、解消結果情報送信部222による解消結果情報の生成処理の詳細については後述する。
図36は、第2の実施形態に係る通信システムにおいて実行される、データの同期処理の流れを説明する図である。第2の実施形態に係るデータの同期処理では、上述した図14に示す第1の実施形態に係る同期処理に加えて、ステップS51~S58が行われる。すなわち、クライアント10は、ダウンロード情報44に対応する処理(S39)を行った後、解消要求45をサーバ20に送信し(S51)、サーバ20は、解消要求45に応じてサーバデータベース21を更新し(S52)、更新の結果を示す結果情報と、更新の際に発生した重複に関する重複情報とを含む解消結果情報46をクライアント10に送信する(S53)。クライアント10は、解消結果情報46に応じてさらにダウンロードすべきデータを決定する処理を行い(S54)、ダウンロードすべきデータのGUIDを設定した取得情報を含むダウンロード要求43をサーバ20に送信する(S55)。サーバ20は、ダウンロード要求43に応じて、指定されているデータをサーバデータベース21から読み出し(S56)、読み出したデータを設定したダウンロード情報44をクライアント10に送信する(S57)。クライアント10は、ダウンロード情報44に含まれているデータをクライアントデータベース11に登録する(S58)。
図37は、第2の実施形態に係るステップS31における同期要求の作成処理の流れを示す図である。第2の実施形態では、上述した図15の処理に加えて、ステップS3106に続き、同期要求送信部112は、選択フィルタ条件にマッチするクライアント変更履歴をクライアント変更履歴記憶部133から読み出して変更履歴として同期要求41に設定し(S3107)、未取得ID記憶部134に記憶されている未取得IDを読み出して同期要求41に設定する(S3108)。
更新情報と未取得IDとにより、サーバ20側ではクライアント10で行われたデータの更新を把握することが可能となる。
図38は、第2の実施形態に係るステップS33における同期要求への対応処理の流れを示す図である。第2の実施形態では、上述した図16の処理に加えて、ステップS3308に続き、同期情報送信部216は、図39に示すGUIDの割当処理を行い(S3309)、図40に示す衝突および重複の検知処理を行う(S3310)。
同期情報送信部216は、LUIDが未取得IDと一致し、かつ、作成者がクライアントIDと一致するサーバレコードをサーバデータベース21から検索し(S3321)、マッチするサーバレコードが存在する場合(S3322:YES)、サーバレコードのGUIDをGとし(S3323)、サーバレコードの更新時点をTとし(S3324)、ステータスを「存在」とする(S3325)。
一方、未取得IDにマッチするサーバレコードが存在しない場合(S3322:NO)、同期情報送信部216は、GUID生成部210生成する新たなGUIDをGとし(S3326)、時点生成部211が生成する新たな時点をTとし(S3327)、ステータスを「不存在」とする(S3328)。
同期情報送信部216は、LUID、G、Tおよびステータスを含む割当情報を同期情報42に追加する(S3329)。
以上の処理が各未取得IDについて繰り返され、未取得IDに対応するGUIDが割当情報として同期情報42に設定される。
変更取得部215は、変更履歴にGUIDが設定されている場合(S3341:NO)、変更履歴のGUIDに対応するサーバレコードをサーバデータベース21から検索し(S3342)、対応するサーバレコードが存在しなければ(S3343:NO)、GUIDおよび「真」の削除フラグを含む変更特徴情報を作成して同期情報42に追加する(S3344)。
変更履歴のGUIDに対応するサーバレコードが存在する場合(S3343:YES)、変更取得部215は、変更履歴の更新時点と検索したサーバレコードの更新時点とが一致するか否かを判定し(S3345)、更新時点が一致しなければ(S3345:NO)、サーバレコードのGUID、更新時点、ヒントおよびキー、並びに「偽」の削除フラグを含む変更特徴情報を作成して同期情報42に追加する(S3346)。
一方、更新時点が一致した場合(S3345:YES)、変更履歴の変更種別が「削除」であれば(S3347:YES)、GUIDに対応するサーバレコードをサーバデータベース21から削除する(S3348)。変更種別が「削除」でなければ(S3347:NO)、変更取得部215は、変更履歴に含まれるキーと一致するサーバレコードをサーバデータベース21から検索し(S3349)、キーと一致するサーバレコードがあれば(S3350:YES)、サーバレコードのGUID、更新時点、ヒントおよびキー並びに「偽」の削除フラグを含む変更特徴情報を作成して同期情報42に追加する(S3351)。
以上の処理を同期要求42に含まれる各変更履歴について行うことにより、衝突または重複したデータについての変更特徴情報が同期情報42に追加されることになる。
図41は、第2の実施形態に係るステップS35における同期情報42への対応処理の流れを示す図である。第2の実施形態では、上述した図19の処理の前に、図42に示すGUIDの割当処理(S3500)を実行する。
更新処理部120は、LUIDに対応するクライアントレコードのGUIDに、割当情報のGUIDを設定する(S3521)。更新処理部120は、割当情報に含まれるステータスが「存在」であった場合(LUIDに対応するGUIDがサーバデータベース21に既に登録されていた場合)には(S3522)、LUIDに対応するクライアントレコードの更新時点に、割当情報の更新時点を設定する(S3523)。
更新処理部120は、変更種別が「追加」であり、かつ、割当情報のLUIDに対応するクライアント変更履歴をクライアント変更履歴記憶部133から削除する(S3524)。また、更新処理部120は、割当情報のLUIDを未取得ID記憶部134から削除する(S3525)。
以上の処理が各割当情報について行われることで、未取得IDに対応するGUIDが登録される。
図43は、第2の実施形態に係るステップS39におけるダウンロード情報44への対応処理の流れを示す図である。第2の実施形態では、上述した図21の処理のステップS3901を実行した後、ステップS3902に変えて、ステップS3903~S3908を実行する。
更新処理部120は、ダウンロード情報44に含まれている取得ダウンロード情報のうち、取得ダウンロード情報のGUIDに対応するクライアント変更履歴がクライアント変更履歴記憶部133に記憶されていないものを抽出し(S3903)、抽出した取得ダウンロード情報のそれぞれについて、上述した図22に示す適用処理を行う(S3904)。すなわち、取得ダウンロード情報に含まれる削除フラグが「真」であれば(S3921:YES)、削除処理部114は、取得ダウンロード情報に含まれるGUIDに対応するクライアントレコードをクライアントデータベース11から削除し(S3922)、削除フラグが「偽」であれば(S3921:NO)、更新処理部120は、取得ダウンロード情報に含まれているGUID、キー、カラム、ヒントおよび本体と、「偽」の更新可能性フラグおよび「偽」の削除可能性フラグとを含むクライアントレコードをクライアントデータベース11に登録する(S3923)。
次に、解消要求送信部122は、クライアントID記憶部131に記憶されているクライアントIDを設定した解消要求45を作成する(S3905)。更新処理部120は、ダウンロード情報44に含まれる取得ダウンロード情報のうち、取得ダウンロード情報のGUIDに対応するクライアント変更履歴がクライアント変更履歴記憶部133に記憶されているものを抽出する(S3906)。解消処理部124は、図44に示す衝突解消処理を行い(S3907)、図45に示す重複解消処理を行う(S3908)。
解消処理部124は、取得ダウンロード情報に含まれるGUIDが衝突記憶部137に記憶されていれば(S3941)、当該GUIDに対応するクライアントレコードをクライアントデータベース11から読み出し(S3942)、読み出したクライアントレコードと取得ダウンロード情報とのいずれかを選択する(S3943)。解消処理部124は、例えば、クライアントレコードおよび取得ダウンロード情報のヒントを出力してユーザに選択させるようにすることができる。
解消処理部124は、クライアントレコードを選択した場合(S3944:YES)、クライアントレコードのLUID、GUID、更新時点、キー、カラム、ヒントおよび本体を含む解消情報を解消要求45に追加し(S3945)、取得ダウンロード情報を選択した場合には(S3944:NO)、取得ダウンロード情報のGUID、更新時点、カラム、ヒントおよび本体を含む解消情報を解消要求45に追加し(S3946)、クライアントレコードの更新時点、キー、カラム、ヒントおよび本体を、取得ダウンロード情報のものに変更するようにクライアントデータベース11を更新する(S3947)。解消処理部124は、衝突記憶部137から上記GUIDを削除する(S3948)。
解消処理部124は、取得ダウンロード情報に含まれるGUIDが重複記憶部136に記憶されていれば(S3961)、当該GUIDに対応するクライアントレコードをクライアントデータベース11から読み出し(S3962)、読み出したクライアントレコードと取得ダウンロード情報とのいずれかを選択する(S3963)。解消処理部124は、上述した衝突解消処理と同様に、例えば、クライアントレコードおよび取得ダウンロード情報のヒントを出力してユーザに選択させるようにすることができる。
解消処理部124は、クライアントレコードを選択した場合(S3964:YES)、クライアントレコードのLUID、GUID、更新時点、キー、カラム、ヒントおよび本体を含む解消情報を解消要求45に追加し(S3965)、取得ダウンロード情報を選択した場合には(S3964:NO)、取得ダウンロード情報のGUID、更新時点、カラム、ヒントおよび本体を含む解消情報を解消要求45に追加する(S3966)。解消処理部124は、取得ダウンロード情報のGUIDに対応するGUIDを重複記憶部136から読み出してGとし(S3967)、クライアントデータベース11からGUIDがGと一致するクライアントレコードを削除する(S3968)。
解消処理部124は、重複記憶部136から取得ダウンロード情報のGUIDに対応するレコードを削除し(S3969)、未検証記憶部135から取得ダウンロード情報のGUIDを削除する(S3970)。
図46は、上述した図36のステップS52においてサーバ20が実行する、解消要求45に対応する処理の流れを示す図である。
解消処理部221は、空の解消結果情報46を作成し(S5201)、解消要求45に含まれている解消情報のそれぞれについて、以下の処理を行う。
解消処理部221は、解消情報のGUIDが設定されていない場合には(S5202:YES)、新たに割り当てたGUIDと、解消情報に設定されているLUID、更新時点、キー、カラム、ヒントおよび本体とを設定したサーバレコードを作成してサーバデータベース21に登録し(S5203)、LUID、GUID、更新時点、「偽」の削除フラグ、および「成功」のステータスを含む結果情報を解消結果情報46に追加する(S5204)。
一方、解消情報にGUIDが設定されている場合(S5202:NO)、解消処理部221は、解消情報のGUIDに対応するサーバレコードをサーバデータベース21から検索し(S5205)、当該GUIDに対応するサーバレコードが存在しなければ(S5206:NO)、解消処理部221は、解消情報のGUIDと、「真」の削除フラグおよび「衝突」のステータスとを含む結果情報を解消結果情報46に追加する(S5207)。
上記GUIDに対応するサーバレコードが存在する場合(S5206:YES)、解消処理部221は、サーバレコードの更新時点と解消情報の更新時点とが一致しなければ(S5208:NO)、サーバレコードのGUIDおよび更新時点と、「偽」の削除フラグおよび「衝突」のステータスとを含む結果情報を解消結果情報46に追加する(S5209)。
解消処理部221は、更新時点が一致し(S5208:YES)、解消情報の削除フラグが「真」であれば(S5210:YES)、GUIDに対応するサーバレコードをサーバデータベース21から削除し(S5211)、削除フラグが「偽」であれば(S5210:NO)、解消処理部221は、サーバレコードに、解消情報の更新時点、キー、カラム、ヒントおよび本体を設定するようにサーバデータベース21を更新する(S5212)。
解消処理部221は、解消情報のLUID、GUID、更新時点および削除フラグと、「成功」のステータスとを含む結果情報を解消結果情報46に追加する(S5213)。また、解消処理部221は、解消情報のキーに一致するサーバレコードをサーバデータベース21から検索し(S5214)、一致するサーバレコードが存在する場合(S5215:YES)、検索したサーバレコードのGUIDおよび更新時点と、「偽」の削除フラグおよび「衝突」のステータスとを含む重複情報を解消結果情報46に追加する(S5216)。
以上の処理が各解消情報について行われる。
図47は、上述した図36のステップS54においてクライアント10が実行する、解消結果情報46に対応する処理の流れを示す図である。
解消処理部124は、空のダウンロード要求43を作成し(S5401)、解消結果情報46に含まれている結果情報のそれぞれについて、以下の処理を行う。
解消処理部124は、結果情報に含まれるLUIDが未取得ID記憶部134に登録されている場合には(S5402:YES)、当該LUIDに対応するクライアントレコードに、結果情報のGUIDを設定するようにクライアントデータベース11を更新し(S5403)、未取得ID記憶部134から当該LUIDを削除する(S5404)。
次に、ステータスが「衝突」であれば(S5405:YES)、解消処理部124は、結果情報のGUIDを衝突記憶部137に登録し(S5406)、ダウンロード決定部115は、当該結果情報のGUIDが示すデータをダウンロードするか否かを決定する(S5407)。ダウンロード決定部115は、例えば、衝突したデータはサーバ20を優先するものとして、自動的にダウンロードすることを決定してもよいし、クライアントデータを優先するものとして、ダウンロードしないことを決定してもよいし、ユーザにダウンロードするか否かを問い合わせるようにしてもよい。また、結果情報にキーやカラム、ヒントなどを含めるようにしておき、ダウンロード決定部115は、キーやカラム、ヒントなどが所定の条件を満たす場合にダウンロードすることを決定するようにしてもよい。ダウンロード決定部115は、ダウンロードすると決定した場合には(S5409:YES)、結果情報のGUIDを含む取得情報を生成してダウンロード要求43に設定する(S5410)。
一方、ステータスが「成功」である場合には(S5405:NO)、解消処理部124は、結果情報のGUIDに対応するクライアント変更履歴をクライアント変更履歴記憶部133から削除する(S5408)。
以上の処理を結果情報のそれぞれについて繰り返した後、ダウンロード決定部115は、解消結果情報46に含まれている重複情報のうち、対応するデータをダウンロードするものを決定し(S5411)、決定した重複情報のGUIDを含む取得情報を生成してダウンロード要求43に設定する(S5412)。なお、ダウンロード要求43に取得情報が設定されなかった場合には、上述した図36のステップS55~S58の処理を省略するものとする。
このようにして、選択フィルタにマッチするクライアントレコードとサーバレコードとの同期が行われる。
なお、上述した実施形態では、データの作成時点や更新時点、削除時点などは、サーバデータベース21に対する変更の順番を表す値であるものとしたが、これに限らず、タイムスタンプを採用してもよい。この場合に、タイムスタンプの単位時間(例えば、ミリ秒、マイクロ秒など)が低く、同一のタイムスタンプに複数の変更が行われる得る場合には、タイムスタンプにデータの識別情報を連結したものを「時点」として採用するようにし、サーバ変更履歴記憶部231にサーバ変更履歴を登録するタイミングを少なくとも上記単位時間以上遅らせるようにするようにしてもよい。
Claims (20)
- サーバと、前記サーバに通信可能に接続されるクライアントとの間でデータを同期するシステムであって、
前記サーバは、更新時点を含むデータを記憶する第1データベースにアクセス可能であり、
前記クライアントは、前記サーバから取得したデータを記憶する第2データベースにアクセス可能であり、
前記クライアントは、前記サーバから最後に前記データを取得した時点であるアンカー時点を記憶するアンカー時点記憶部と、前記アンカー時点を含む同期要求を前記サーバに送信する同期要求送信部と、を備え、
前記サーバは、前記更新時点が前記アンカー時点よりも後の前記データである更新データを前記第1データベースから検索し、前記各更新データについて前記更新データを示すデータIDおよび前記更新データの前記更新時点を含む変更情報を生成する変更情報取得部と、前記変更情報を含む同期情報を前記クライアントに送信する同期情報送信部と、を備え、
前記クライアントは、前記変更情報に対応する前記データのうち、ダウンロードすべきものである取得データを決定するダウンロード決定部と、前記取得データを示すデータIDを含むダウンロード要求を前記サーバに送信するダウンロード要求送信部と、を備え、
前記サーバは、前記ダウンロード要求に含まれる前記データIDに対応する前記データを前記第1データベースから取得するデータ取得部と、前記取得したデータを含むダウンロード情報を前記クライアントに送信するダウンロード情報送信部と、を備え、
前記クライアントは、前記ダウンロード情報に含まれる前記データを前記第2データベースに登録する更新処理部を備えること、
を特徴とするデータ同期システム。 - 請求項1に記載のデータ同期システムであって、
前記ダウンロード決定部は、前記各変更情報について、前記変更情報に含まれる前記データIDに対応する前記データに含まれる前記更新時点を前記第2データベースから取得し、前記第2データベースから取得した前記更新時点が前記変更情報に含まれる前記更新時点よりも古い場合には、当該データをダウンロードすることを決定し、前記第2データベースから取得した前記更新時点が前記変更情報に含まれる前記更新時点よりも新しい場合には、ユーザからの設定に応じて、当該データをダウンロードするか否かを決定すること、
を特徴とするデータ同期システム。 - 請求項1に記載のデータ同期システムであって、
前記サーバは、前記第1データベースから削除された前記データを示す前記データIDおよび削除時点を含む変更履歴を記憶するサーバ変更履歴記憶部と、前記同期要求に含まれる前記アンカー時点よりも後の前記削除時点を含む前記変更履歴を前記サーバ変更履歴記憶部から取得する変更履歴取得部とを備え、
前記同期情報送信部は、前記変更履歴取得部が取得した前記変更履歴を前記同期情報にさらに含め、
前記クライアントは、前記同期情報に含まれる前記変更履歴に対応する前記データを前記第2データベースから削除する削除処理部を備えること、
を特徴とするデータ同期システム。 - 請求項1に記載のデータ同期システムであって、
前記サーバは、前記第1データベースから削除されたデータについて、前記削除されたデータを示すデータIDおよび削除時点を含む変更履歴を、前記削除時点の新しい順に所定数記憶するサーバ変更履歴記憶部を備え、
前記変更情報取得部は、前記アンカー時点より後の前記削除時点を含む前記変更履歴を前記サーバ変更履歴記憶部から取得し、
前記同期情報送信部は、前記変更情報に加えて、前記サーバ変更履歴記憶部が記憶している前記変更履歴に含まれる最も古い前記削除時点であるバウンダリ時点、および前記取得した変更履歴を前記同期情報に含めて前記クライアントに送信し、
前記クライアントは、
前記同期情報に含まれる前記変更履歴に対応する前記データを前記第2データベースから削除する削除処理部と、
前記アンカー時点が前記バウンダリ時点より前である場合に、前記第2データベースに記憶されている前記データのうち、前記データの前記更新時点が前記バウンダリ時点よりも前であり、かつ、前記データを示すデータIDを含む前記変更情報が前記同期情報に含まれていないものを検索し、前記検索した各データについて前記データを示すデータIDおよび前記データの前記更新時点を含む陳腐化情報を生成する陳腐化情報取得部と、
を備え、
前記ダウンロード要求送信部は、前記取得データIDに加えて、前記陳腐化情報を前記ダウンロード要求に含めて前記サーバに送信し、
前記データ取得部はさらに、前記ダウンロード要求に含まれる前記各陳腐化情報について、前記陳腐化情報に対応する前記データが前記第1データベースに記憶されているか否かを判定し、前記第1データベースに記憶されていないと判定した前記データを示す前記データIDを、削除されたデータを示す削除IDとして前記ダウンロード情報に含め、
前記削除処理部は、前記ダウンロード情報に含まれる前記削除IDに対応する前記データを前記第2データベースから削除すること、
を特徴とするデータ同期システム。 - 請求項1に記載のデータ同期システムであって、
前記クライアントは、前記同期情報に含まれている前記各変更情報について、前記変更情報に含まれる前記データIDに対応する前記データの前記更新時点を前記第2データベースから読み出し、前記読み出した更新時点が前記変更情報に含まれる前記更新時点よりも新しい場合に、前記データIDに対応する前記データを前記サーバにアップロードするか前記サーバからダウンロードするかを決定する衝突解消部を備え、
前記ダウンロード要求送信部は、前記衝突解消部がダウンロードすると決定した前記データを示す前記データIDをさらに含む前記ダウンロード要求を前記サーバに送信し、
前記クライアントは、前記衝突会勝負がアップロードすると決定した前記データを前記第2データベースから読み出し、読み出した前記データを含む解消要求を前記サーバに送信する解消要求送信部を備え、
前記サーバは、前記解消要求に含まれている前記データを前記第1データベースに登録する解消処理部を備えること、
を特徴とするデータ同期システム。 - サーバと、前記サーバに通信可能に接続されるクライアントとの間でデータを同期するシステムであって、
前記サーバは、データに更新時点を付帯させて記憶する第1データベースにアクセス可能であり、前記クライアントは、前記サーバから取得したデータを記憶する第2データベースにアクセス可能であり、
前記サーバは、前記第1データベースに対するデータの変更履歴を新しい順に所定数のみ記憶するサーバ変更履歴記憶部を備え、
前記サーバ変更履歴記憶部が記憶する前記変更履歴であるサーバ変更履歴は、変更の対象となった前記データを示すデータIDと、当該データに付帯されている前記更新時点とを含み、
前記クライアントは、
前記サーバから最後に前記データを取得した時点であるアンカー時点を記憶するアンカー記憶部と、
前記データを取得するための条件および前記アンカー時点を含む同期要求を前記サーバに送信する同期要求送信部と、
前記サーバは、
前記サーバ変更履歴記憶部から、前記同期要求に含まれる前記条件にマッチする前記データに対応する前記サーバ変更履歴のうち、前記更新時点が前記アンカー時点より後のものを取得する変更履歴取得部と、
前記第1データベースから、前記同期要求に含まれる前記条件にマッチする前記データのうち、前記更新時点が前記アンカー時点より後であり、かつ前記サーバ変更履歴記憶部に記憶されている最も古い前記更新時点であるバウンダリ時点より前であるものを検索し、前記検索した各データについて、前記データを示す前記データIDおよび前記データに付帯される前記更新時点を含む変更情報を生成する変更情報取得部と、
前記バウンダリ時点、前記取得したサーバ変更履歴、および前記変更情報を含む同期情報を前記クライアントに送信する同期情報送信部と、
を備え、
前記クライアントは、
前記同期情報に含まれる前記サーバ変更履歴または前記変更情報に対応する前記データからダウンロードすべきものを決定するダウンロード決定部と、
前記第2データベースから、前記条件にマッチする前記データのうち、前記更新時点が前記アンカー時点から前記バウンダリ時点までの間であるものを検索し、前記検索した各データについて、前記データを示す前記データIDおよび前記データに付帯される前記更新時点を含む陳腐化情報を生成する陳腐化情報取得部と、
前記決定したデータを示す取得データIDおよび前記陳腐化情報を含むダウンロード要求を前記サーバに送信するダウンロード要求送信部と、
を備え、
前記サーバは、
前記ダウンロード要求に含まれる前記陳腐化情報に対応する前記データのうち、前記更新時点が前記陳腐化情報に含まれる前記更新時点よりも新しいものと、前記取得データIDに対応する前記データとを前記第1データベースから取得するデータ取得部と、
前記取得したデータを含むダウンロード情報を前記クライアントに送信するダウンロード情報送信部と、
を備え、
前記クライアントは、前記ダウンロード情報に含まれる前記データを前記第2データベースに登録する更新処理部を備えること、
を特徴とするデータ同期システム。 - 請求項6に記載のデータ同期システムであって、
前記サーバ変更履歴にはさらに、データの変更がデータの追加、更新または削除のいずれであったかを示す変更種別情報が含まれ、
前記クライアントが、前記同期情報の受信に応じて、前記同期情報に含まれる前記サーバ変更履歴のうち、前記変更種別情報が削除を示すものについて、前記サーバ変更履歴に含まれる前記データIDが示す前記データを前記第2データベースから削除する削除処理部を備えること、
を特徴とするデータ同期システム。 - 請求項6に記載のデータ同期システムであって、
前記データ取得部は、前記ダウンロード要求に含まれる前記陳腐化情報のうち、前記陳腐化情報に含まれる前記データIDに対応する前記データが前記第1データベースに登録されていないものについて、前記陳腐化情報に含まれる前記データIDを含む削除情報を前記ダウンロード情報に設定し、
前記クライアントは、前記ダウンロード情報に前記削除情報が含まれている場合に、前記削除情報に含まれる前記データIDに対応する前記データを前記第2データベースから削除する削除処理部を備えること、
を特徴とするデータ同期システム。 - 請求項6に記載のデータ同期システムであって、
前記データには、前記データの内容に基づいて生成される、前記条件に前記データがマッチするか否かを判定するための情報であるカラムがさらに付帯され、
前記サーバ変更履歴には、データの変更がデータの追加、更新または削除のいずれであったかを示す変更種別情報と、前記データに付帯される前記カラムとがさらに含まれ、
前記変更履歴取得部は、前記サーバ変更履歴のうち、前記カラムが前記同期要求に含まれる前記条件にマッチし、かつ前記更新時点が前記アンカー時点より後のものを取得し、
前記変更情報取得部は、前記第1データベースに記憶されている前記データのうち、前記データに付帯される前記カラムが前記同期要求に含まれる前記条件にマッチするとともに、前記更新時点が前記アンカー時点より後であり、かつ前記バウンダリ時点より前であるものを検索し、前記検索した各データについて、前記データを示す前記データID、前記データに付帯される前記更新時点、および前記データに含まれる前記カラムを前記変更情報に設定し、
前記陳腐化情報取得部は、前記第2データベースに記憶されるデータのうち、前記カラムが前記条件にマッチし、かつ前記更新時点が前記アンカー時点から前記バウンダリ時点までの間であるものを検索すること、
を特徴とするデータ同期システム。 - 請求項6に記載のデータ同期システムであって、
前記データには、前記データの内容に基づいて生成される、前記クライアントにおいて前記データをダウンロードすべきか否かを決定するための情報であるヒントがさらに付帯され、
前記サーバ変更履歴には、データの変更がデータの追加、更新または削除のいずれであったかを示す変更種別情報と、前記データの付帯される前記ヒントとがさらに含まれ、
前記変更情報取得部は、前記検索した各データについて、前記データに付帯される前記ヒントをさらに前記変更情報に含め、
前記ダウンロード決定部は、前記サーバ変更履歴または前記変更情報に含まれる前記ヒントに基づいて前記ダウンロードすべきデータを決定すること、
を特徴とするデータ同期システム。 - 請求項10に記載のデータ同期システムであって、
前記ダウンロード決定部は、前記サーバ変更履歴または前記変更情報に含まれる前記ヒントを出力し、ユーザが選択した前記出力したヒントに対応する前記データを、前記ダウンロードすべきデータとして決定すること、
を特徴とするデータ同期システム。 - 請求項6に記載のデータ同期システムであって、
前記データには前記更新時点が付帯され、
前記サーバは、前記第1データベースに対する操作が行われるごとに大きくなる数値を前記更新時点として生成する時点生成部を備え、
前記第1データベースに書き込まれる際に、前記データには前記時点生成部が生成した前記更新時点が付帯されること、
を特徴とするデータ同期システム。 - 請求項6に記載のデータ同期システムであって、
前記データには前記更新時点が付帯され、
前記サーバは、前記第1データベースに対する操作が行われる際に、前記サーバにおけるタイムスタンプを取得し、前記取得したタイムスタンプに、前記データの識別情報を連結した値を前記更新時点として生成する時点生成部を備え、
前記第1データベースに書き込まれる際に、前記データには前記時点生成部が生成した前記更新時点が付帯されること、
を特徴とするデータ同期システム。 - 請求項6に記載のデータ同期システムであって、
前記クライアントは、前記第2データベースにおけるデータの変更履歴を記憶するクライアント変更履歴記憶部を備え、
前記クライアント変更履歴記憶部が記憶する前記変更履歴であるクライアント変更履歴は、変更の対象となった前記データを示す前記データIDと、前記データに付帯されている前記更新時点とを含み、
前記同期要求送信部は、前記条件にマッチする前記データに対応する前記クライアント変更履歴を前記クライアント変更履歴記憶部から取得し、前記取得したクライアント変更履歴を前記同期要求に設定して前記サーバに送信し、
前記サーバは、前記同期要求に含まれる前記クライアント変更履歴のそれぞれについて、前記クライアント変更履歴に含まれる前記データIDに対応する、前記第1データベースが記憶する前記データに付帯されている前記更新時点が、前記クライアント変更履歴に含まれている前記更新時点よりも後である場合、前記第1データベースが記憶する前記データに付帯される前記更新時点および前記データIDを含む衝突情報を生成する衝突検知部を備え、
前記同期情報送信部は、前記衝突情報をさらに含む前記同期情報を前記クライアントに送信し、
前記クライアントは、前記衝突情報に含まれる前記データIDに対応する前記データを、前記サーバにアップロードするか前記サーバからダウンロードするかを決定する衝突解消部を備え、
前記ダウンロード要求送信部は、前記衝突解消部がダウンロードすると決定した前記データを示す前記データIDをさらに含む前記ダウンロード要求を前記サーバに送信し、
前記クライアントは、前記衝突解消部がアップロードすると決定した前記データを前記第2データベースから読み出し、読み出した前記データを含む解消要求を前記サーバに送信する解消要求送信部を備え、
前記サーバは、前記解消要求に含まれている前記データを前記第1データベースに登録する解消処理部を備えること、
を特徴とするデータ同期システム。 - 請求項14に記載のデータ同期システムであって、
前記データにはさらに、前記データに所定のアルゴリズムを適用して求められるデータであるキーが付帯され、
前記サーバ変更履歴および前記クライアント変更履歴にはそれぞれ前記キーが含まれ、
前記サーバは、前記第1データベースに記憶されている前記データのうち、前記キーが前記同期要求に含まれる前記クライアント変更履歴のいずれかに含まれる前記キーと一致するものを検索し、前記検索したデータを示す前記データIDを含む重複情報を生成する重複検知部を備え、
前記同期情報送信部は、前記重複情報をさらに含む前記同期情報を前記クライアントに送信し、
前記クライアントは、前記重複情報に含まれる前記データIDに対応する前記データのうち、削除すべきものを決定する重複解消部を備え、
前記解消要求送信部は、前記重複解消部が削除すべきと決定した前記データを示す前記データIDを含む解消情報をさらに前記解消要求に含めて前記サーバに送信し、
前記解消処理部はさらに、前記解消要求に含まれる前記解消情報に含まれる前記データIDに対応する前記データを前記第1データベースから削除すること、
を特徴とするデータ同期システム。 - 請求項14に記載のデータ同期システムであって、
前記データには前記データIDが付帯されており、
前記データIDには、前記クライアントにおいて一意な識別情報であるローカルIDと、前記サーバおよび前記クライアントの両方において一意な識別情報であるグローバルIDとが含まれ、
前記クライアントは、
前記クライアントにおいて前記データが作成された場合に、前記作成されたデータに前記ローカルIDを割り当てるローカルID割当部と、
前記作成されたデータに割り当てられた前記ローカルIDのうち、前記グローバルIDが割り当てられていないものである未取得IDを記憶する未取得ID記憶部と、
を備え、
前記同期要求送信部はさらに、前記未取得ID記憶部に記憶されている前記未取得IDを含めて前記同期要求を前記サーバに送信し、
前記サーバは、前記同期要求に含まれている前記未取得IDに対応する前記グローバルIDを前記第1データベースから検索し、前記未取得IDに対応する前記グローバルIDがある場合には、当該対応するグローバルIDを前記第1データベースから取得し、前記取得したグローバルIDおよび前記未取得IDを含むID情報を生成し、前記ローカルIDに対応する前記グローバルIDがない場合には、新たに前記グローバルIDを割り当て、前記割り当てたグローバルIDおよび前記ローカルIDを含むID情報を生成するグローバルID取得部を備え、
前記同期情報送信部はさらに、前記ID情報を含めて前記同期情報を前記クライアントに送信し、
前記クライアントは、前記同期情報に含まれている前記ID情報のそれぞれについて、前記ID情報に含まれる前記未取得IDに対応する前記データを前記第1データベースから検索し、前記検索したデータに付帯される前記データIDに、前記ID情報に含まれる前記グローバルIDを設定するグローバルID登録部を備えること、
を特徴とするデータ同期システム。 - サーバと、前記サーバに通信可能に接続されるクライアントとの間でデータを同期する方法であって、
前記サーバは、更新時点を含むデータを記憶する第1データベースにアクセス可能であり、前記クライアントは、前記サーバから取得したデータを記憶する第2データベースにアクセス可能であり、
前記クライアントは、前記サーバから最後に前記データを取得した時点であるアンカー時点を記憶し、前記アンカー時点を含む同期要求を前記サーバに送信し、
前記サーバは、前記更新時点が前記アンカー時点よりも後の前記データである更新データを前記第1データベースから検索し、前記各更新データについて前記更新データを示すデータIDおよび前記更新データの前記更新時点を含む変更情報を生成し、前記変更情報を含む同期情報を前記クライアントに送信し、
前記クライアントは、前記変更情報に対応する前記データのうち、ダウンロードすべきものである取得データを決定し、前記取得データを示すデータIDを含むダウンロード要求を前記サーバに送信し、
前記サーバは、前記ダウンロード要求に含まれる前記データIDに対応する前記データを前記第1データベースから取得し、前記取得したデータを含むダウンロード情報を前記クライアントに送信し、
前記クライアントは、前記ダウンロード情報に含まれる前記データを前記第2データベースに登録すること、
を特徴とするデータ同期方法。 - 請求項17に記載のデータ同期方法であって、
前記クライアントは、前記同期情報に含まれている前記各変更情報について、前記変更情報に含まれる前記データIDに対応する前記データの前記更新時点を前記第2データベースから読み出し、前記読み出した更新時点が前記変更情報に含まれる前記更新時点よりも新しい場合に、前記データIDに対応する前記データを前記サーバにアップロードするか前記サーバからダウンロードするかを決定し、
前記クライアントは、ダウンロードすると決定した前記データを示す前記データIDをさらに含む前記ダウンロード要求を前記サーバに送信し、
前記クライアントは、アップロードすると決定した前記データを前記第2データベースから読み出し、読み出した前記データを含む解消要求を前記サーバに送信し、
前記サーバは、前記解消要求に含まれている前記データを前記第1データベースに登録すること、
を特徴とするデータ同期方法。 - サーバと、前記サーバに通信可能に接続されるクライアントとの間でデータを同期する方法であって、
前記サーバは、データに更新時点を付帯させて記憶する第1データベースにアクセス可能であり、前記クライアントは、前記サーバから取得したデータを記憶する第2データベースにアクセス可能であり、
前記サーバは、前記第1データベースに対するデータの変更履歴を新しい順に所定数のみ記憶しており、
前記サーバが記憶する前記変更履歴であるサーバ変更履歴は、変更の対象となった前記データを示すデータIDと、当該データに付帯されている前記更新時点とを含み、
前記クライアントが、前記サーバから最後に前記データを取得した時点であるアンカー時点を記憶し、
前記クライアントが、前記データを取得するための条件および前記アンカー時点を含む同期要求を前記サーバに送信し、
前記サーバが、前記同期要求に含まれる前記条件にマッチする前記データに対応する前記サーバ変更履歴のうち、前記更新時点が前記アンカー時点より後のものを取得し、
前記サーバが、前記第1データベースから、前記同期要求に含まれる前記条件にマッチする前記データのうち、前記更新時点が前記アンカー時点より後であり、かつ前記サーバが記憶している前記サーバ変更履歴の前記更新時点のうち最も古いものであるバウンダリ時点より前である前記データを検索し、前記検索した各データについて、前記データを示す前記データIDおよび前記データに付帯される前記更新時点を含む変更情報を生成し、
前記サーバが、前記バウンダリ時点、前記取得したサーバ変更履歴、および前記変更情報を含む同期情報を前記クライアントに送信し、
前記クライアントが、前記同期情報に含まれる前記サーバ変更履歴または前記変更情報に対応する前記データからダウンロードすべきものを決定し、
前記クライアントが、前記第2データベースから、前記条件にマッチする前記データのうち、前記更新時点が前記アンカー時点から前記バウンダリ時点までの間であるものを検索し、前記検索した各データについて、前記データを示す前記データIDおよび前記データに付帯される前記更新時点を含む陳腐化情報を生成し、
前記クライアントが、前記決定したデータを示す取得データIDおよび前記陳腐化情報を含むダウンロード要求を前記サーバに送信し、
前記サーバが、前記ダウンロード要求に含まれる前記陳腐化情報に対応する前記データのうち、前記更新時点が前記陳腐化情報に含まれる前記更新時点よりも新しいものと、前記取得データIDに対応する前記データとを前記第1データベースから取得し、
前記サーバが、前記取得したデータを含むダウンロード情報を前記クライアントに送信し、
前記クライアントが、前記ダウンロード情報に含まれる前記データを前記第2データベースに登録すること、
を特徴とするデータ同期方法。 - 請求項19に記載のデータ同期方法であって、
前記クライアントは、前記第2データベースにおけるデータの変更履歴を記憶しており、
前記クライアントが記憶する前記変更履歴であるクライアント変更履歴は、変更の対象となった前記データを示す前記データIDと、前記データに付帯されている前記更新時点とを含み、
前記クライアントは、前記条件にマッチする前記データに対応する前記クライアント変更履歴を取得し、前記取得したクライアント変更履歴を前記同期要求に設定して前記サーバに送信し、
前記サーバは、前記同期要求に含まれる前記クライアント変更履歴のそれぞれについて、前記クライアント変更履歴に含まれる前記データIDに対応する、前記第1データベースが記憶する前記データに付帯されている前記更新時点が、前記クライアント変更履歴に含まれている前記更新時点よりも後である場合、前記第1データベースが記憶する前記データに付帯される前記更新時点および前記データIDを含む衝突情報を生成し、
前記サーバは、前記衝突情報をさらに含む前記同期情報を前記クライアントに送信し、
前記クライアントは、前記衝突情報に含まれる前記データIDに対応する前記データを、前記サーバにアップロードするか前記サーバからダウンロードするかを決定し、
前記クライアントは、前記ダウンロードすると決定したデータを示す前記データIDをさらに含む前記ダウンロード要求を前記サーバに送信し、
前記クライアントは、前記アップロードすると決定したデータを前記第2データベースから読み出し、読み出した前記データを含む解消要求を前記サーバに送信し、
前記サーバは、前記解消要求に含まれている前記データを前記第1データベースに登録すること、
を特徴とするデータ同期方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/390,431 US8775374B2 (en) | 2009-09-04 | 2010-08-11 | Data synchronization system and data synchronization method |
| EP10813605.2A EP2474911B1 (en) | 2009-09-04 | 2010-08-11 | Data synchronization system and data synchronization method |
| CN201080039401.8A CN102483715B (zh) | 2009-09-04 | 2010-08-11 | 数据同步系统以及数据同步方法 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009-204686 | 2009-09-04 | ||
| JP2009204686A JP5061166B2 (ja) | 2009-09-04 | 2009-09-04 | データ同期システムおよびデータ同期方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011027654A1 true WO2011027654A1 (ja) | 2011-03-10 |
Family
ID=43649199
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2010/063623 Ceased WO2011027654A1 (ja) | 2009-09-04 | 2010-08-11 | データ同期システムおよびデータ同期方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US8775374B2 (ja) |
| EP (1) | EP2474911B1 (ja) |
| JP (1) | JP5061166B2 (ja) |
| KR (1) | KR101569562B1 (ja) |
| WO (1) | WO2011027654A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110309176A (zh) * | 2018-03-15 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和数据中转站 |
| CN111400679A (zh) * | 2020-03-12 | 2020-07-10 | 厦门区块链云科技有限公司 | 一种基于区块链的可信云存储方法及系统 |
Families Citing this family (196)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8924344B2 (en) * | 2007-11-28 | 2014-12-30 | Microsoft Corporation | User profile replication |
| US9456054B2 (en) | 2008-05-16 | 2016-09-27 | Palo Alto Research Center Incorporated | Controlling the spread of interests and content in a content centric network |
| US8923293B2 (en) | 2009-10-21 | 2014-12-30 | Palo Alto Research Center Incorporated | Adaptive multi-interface use for content networking |
| JP2011221583A (ja) * | 2010-04-02 | 2011-11-04 | Seiko Epson Corp | コンテンツ提供システム、情報処理装置、コンテンツ提供方法、プログラムおよびコンピューター読み取り可能な記録媒体 |
| US20120117105A1 (en) * | 2010-11-05 | 2012-05-10 | Apple Inc. | Collaborative Database Operations |
| US8707022B2 (en) * | 2011-04-05 | 2014-04-22 | Apple Inc. | Apparatus and methods for distributing and storing electronic access clients |
| JP5656722B2 (ja) * | 2011-04-11 | 2015-01-21 | Kii株式会社 | データ同期装置、データ同期システム、データ同期方法及びプログラム |
| US9225792B2 (en) * | 2011-07-12 | 2015-12-29 | Alcatel Lucent | System and method for caching mobile services database objects |
| US8682868B2 (en) * | 2011-12-02 | 2014-03-25 | International Business Machines Corporation | Removal of data remanence in deduplicated storage clouds |
| JP5890674B2 (ja) * | 2011-12-07 | 2016-03-22 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
| CN102571923A (zh) * | 2011-12-13 | 2012-07-11 | 中国电子科技集团公司第十五研究所 | 数据同步系统及方法 |
| US8601121B2 (en) * | 2012-01-09 | 2013-12-03 | International Business Machines Corporation | Tracking changes to data within various data repositories |
| KR102039028B1 (ko) | 2012-02-24 | 2019-10-31 | 삼성전자 주식회사 | 휴대단말기의 데이터 공유 장치 및 방법 |
| SG194245A1 (en) * | 2012-04-17 | 2013-11-29 | ZingMobile Pte Ltd | A method for real-time synchronization between a device and host servers |
| JP5928162B2 (ja) * | 2012-05-31 | 2016-06-01 | 村田機械株式会社 | 画像データ処理装置、画像データ処理方法、画像データ処理プログラム、それを格納した記録媒体、および画像データ処理システム |
| US8892523B2 (en) * | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
| US9881017B2 (en) | 2012-08-03 | 2018-01-30 | Egnyte, Inc. | System and method for event-based synchronization of remote and local file systems |
| JP6086124B2 (ja) * | 2012-10-25 | 2017-03-01 | 富士通株式会社 | 情報処理端末、同期制御方法および同期制御プログラム |
| US9280546B2 (en) | 2012-10-31 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for accessing digital content using a location-independent name |
| US20140136508A1 (en) | 2012-11-09 | 2014-05-15 | Palo Alto Research Center Incorporated | Computer-Implemented System And Method For Providing Website Navigation Recommendations |
| US9400800B2 (en) | 2012-11-19 | 2016-07-26 | Palo Alto Research Center Incorporated | Data transport by named content synchronization |
| US10430839B2 (en) | 2012-12-12 | 2019-10-01 | Cisco Technology, Inc. | Distributed advertisement insertion in content-centric networks |
| US9253075B2 (en) * | 2012-12-19 | 2016-02-02 | Palo Alto Research Center Incorporated | Dynamic routing protocols using database synchronization |
| US9978025B2 (en) | 2013-03-20 | 2018-05-22 | Cisco Technology, Inc. | Ordered-element naming for name-based packet forwarding |
| US9935791B2 (en) | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
| US9185120B2 (en) | 2013-05-23 | 2015-11-10 | Palo Alto Research Center Incorporated | Method and system for mitigating interest flooding attacks in content-centric networks |
| KR20150004200A (ko) * | 2013-07-02 | 2015-01-12 | 한국전자통신연구원 | 데이터 복제 방법 및 장치 |
| JP6136694B2 (ja) * | 2013-07-19 | 2017-05-31 | 富士通株式会社 | データ管理プログラム、データ管理装置およびデータ管理方法 |
| US9444722B2 (en) | 2013-08-01 | 2016-09-13 | Palo Alto Research Center Incorporated | Method and apparatus for configuring routing paths in a custodian-based routing architecture |
| US9407549B2 (en) | 2013-10-29 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers |
| US9282050B2 (en) | 2013-10-30 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for minimum path MTU discovery in content centric networks |
| US9276840B2 (en) | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
| US9401864B2 (en) | 2013-10-31 | 2016-07-26 | Palo Alto Research Center Incorporated | Express header for packets with hierarchically structured variable-length identifiers |
| US9311377B2 (en) | 2013-11-13 | 2016-04-12 | Palo Alto Research Center Incorporated | Method and apparatus for performing server handoff in a name-based content distribution system |
| US10101801B2 (en) | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
| US10129365B2 (en) | 2013-11-13 | 2018-11-13 | Cisco Technology, Inc. | Method and apparatus for pre-fetching remote content based on static and dynamic recommendations |
| US10089655B2 (en) | 2013-11-27 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for scalable data broadcasting |
| US9503358B2 (en) | 2013-12-05 | 2016-11-22 | Palo Alto Research Center Incorporated | Distance-based routing in an information-centric network |
| US9544373B2 (en) | 2013-12-24 | 2017-01-10 | Dropbox, Inc. | Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections |
| US10067652B2 (en) | 2013-12-24 | 2018-09-04 | Dropbox, Inc. | Providing access to a cloud based content management system on a mobile device |
| US9379979B2 (en) | 2014-01-14 | 2016-06-28 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices |
| US10098051B2 (en) | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
| US10172068B2 (en) | 2014-01-22 | 2019-01-01 | Cisco Technology, Inc. | Service-oriented routing in software-defined MANETs |
| US9374304B2 (en) | 2014-01-24 | 2016-06-21 | Palo Alto Research Center Incorporated | End-to end route tracing over a named-data network |
| US9531679B2 (en) | 2014-02-06 | 2016-12-27 | Palo Alto Research Center Incorporated | Content-based transport security for distributed producers |
| US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
| US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
| CN103873567B (zh) * | 2014-03-03 | 2018-09-04 | 北京智谷睿拓技术服务有限公司 | 基于任务的数据传输方法及数据传输装置 |
| US10089651B2 (en) | 2014-03-03 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for streaming advertisements in a scalable data broadcasting system |
| US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
| US9473405B2 (en) | 2014-03-10 | 2016-10-18 | Palo Alto Research Center Incorporated | Concurrent hashes and sub-hashes on data streams |
| US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
| US9391896B2 (en) | 2014-03-10 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network |
| US9407432B2 (en) | 2014-03-19 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for efficient and secure distribution of digital content |
| US9916601B2 (en) | 2014-03-21 | 2018-03-13 | Cisco Technology, Inc. | Marketplace for presenting advertisements in a scalable data broadcasting system |
| US9363179B2 (en) | 2014-03-26 | 2016-06-07 | Palo Alto Research Center Incorporated | Multi-publisher routing protocol for named data networks |
| US9363086B2 (en) | 2014-03-31 | 2016-06-07 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
| US20150280786A1 (en) * | 2014-03-31 | 2015-10-01 | Raveeshkumar Bhat | Near field communication based data transfer |
| US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
| US20150286623A1 (en) * | 2014-04-02 | 2015-10-08 | Samsung Electronics Co., Ltd. | Method and apparatus for marking relevant updates to html 5 |
| US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
| US9390289B2 (en) | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
| US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact names |
| US9451032B2 (en) | 2014-04-10 | 2016-09-20 | Palo Alto Research Center Incorporated | System and method for simple service discovery in content-centric networks |
| US9203885B2 (en) | 2014-04-28 | 2015-12-01 | Palo Alto Research Center Incorporated | Method and apparatus for exchanging bidirectional streams over a content centric network |
| US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
| US9609014B2 (en) | 2014-05-22 | 2017-03-28 | Cisco Systems, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
| US9455835B2 (en) | 2014-05-23 | 2016-09-27 | Palo Alto Research Center Incorporated | System and method for circular link resolution with hash-based names in content-centric networks |
| US9276751B2 (en) | 2014-05-28 | 2016-03-01 | Palo Alto Research Center Incorporated | System and method for circular link resolution with computable hash-based names in content-centric networks |
| US9516144B2 (en) | 2014-06-19 | 2016-12-06 | Palo Alto Research Center Incorporated | Cut-through forwarding of CCNx message fragments with IP encapsulation |
| US9537719B2 (en) | 2014-06-19 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and apparatus for deploying a minimal-cost CCN topology |
| US9467377B2 (en) | 2014-06-19 | 2016-10-11 | Palo Alto Research Center Incorporated | Associating consumer states with interests in a content-centric network |
| JP6334009B2 (ja) * | 2014-06-24 | 2018-05-30 | グーグル エルエルシー | リモートデータベースについてのミューテーションの処理 |
| US9426113B2 (en) | 2014-06-30 | 2016-08-23 | Palo Alto Research Center Incorporated | System and method for managing devices over a content centric network |
| US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
| US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
| US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
| US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
| US9729616B2 (en) | 2014-07-18 | 2017-08-08 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
| US9535968B2 (en) | 2014-07-21 | 2017-01-03 | Palo Alto Research Center Incorporated | System for distributing nameless objects using self-certifying names |
| US10380076B2 (en) | 2014-07-21 | 2019-08-13 | Egnyte, Inc. | System and method for policy based synchronization of remote and local file systems |
| US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
| US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
| US9503365B2 (en) | 2014-08-11 | 2016-11-22 | Palo Alto Research Center Incorporated | Reputation-based instruction processing over an information centric network |
| JP6442915B2 (ja) * | 2014-08-15 | 2018-12-26 | 富士ゼロックス株式会社 | 通信端末、通信システム及びプログラム |
| US9391777B2 (en) | 2014-08-15 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for performing key resolution over a content centric network |
| US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
| US9467492B2 (en) | 2014-08-19 | 2016-10-11 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content stream |
| US9497282B2 (en) | 2014-08-27 | 2016-11-15 | Palo Alto Research Center Incorporated | Network coding for content-centric network |
| US10204013B2 (en) | 2014-09-03 | 2019-02-12 | Cisco Technology, Inc. | System and method for maintaining a distributed and fault-tolerant state over an information centric network |
| US9553812B2 (en) | 2014-09-09 | 2017-01-24 | Palo Alto Research Center Incorporated | Interest keep alives at intermediate routers in a CCN |
| US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
| US9536059B2 (en) | 2014-12-15 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and system for verifying renamed content using manifests in a content centric network |
| US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
| US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
| US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
| US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
| US10003520B2 (en) | 2014-12-22 | 2018-06-19 | Cisco Technology, Inc. | System and method for efficient name-based content routing using link-state information in information-centric networks |
| US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
| US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests in a content centric network |
| US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
| US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
| US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
| US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
| US9462006B2 (en) | 2015-01-21 | 2016-10-04 | Palo Alto Research Center Incorporated | Network-layer application-specific trust model |
| US9552493B2 (en) | 2015-02-03 | 2017-01-24 | Palo Alto Research Center Incorporated | Access control framework for information centric networking |
| US10333840B2 (en) | 2015-02-06 | 2019-06-25 | Cisco Technology, Inc. | System and method for on-demand content exchange with adaptive naming in information-centric networks |
| EP3070619B1 (en) * | 2015-03-16 | 2023-08-16 | Canon Kabushiki Kaisha | Information processing apparatuses performing synchronization of data and data synchronization methods |
| JP6611594B2 (ja) * | 2015-03-16 | 2019-11-27 | キヤノン株式会社 | データの同期を行う情報処理装置、データ同期方法およびプログラム |
| US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
| US9258415B1 (en) * | 2015-03-30 | 2016-02-09 | Captioncall, Llc | Communication device and related methods for offline data record modification and synchronization with a backend server associated with a relay service for hearing-impaired users |
| US9922201B2 (en) | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
| US10963430B2 (en) | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
| CN106155925A (zh) * | 2015-04-09 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种获取数据的方法及装置 |
| US10437789B2 (en) | 2015-04-10 | 2019-10-08 | Egnyte, Inc. | System and method for delete fencing during synchronization of remote and local file systems |
| US11144510B2 (en) | 2015-06-11 | 2021-10-12 | Egnyte, Inc. | System and method for synchronizing file systems with large namespaces |
| US10116605B2 (en) | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
| US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
| US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
| US20170031960A1 (en) * | 2015-07-31 | 2017-02-02 | Panasonic Intellectual Property Management Co., Ltd. | Information recording device and data erasing method |
| US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
| US10610144B2 (en) | 2015-08-19 | 2020-04-07 | Palo Alto Research Center Incorporated | Interactive remote patient monitoring and condition management intervention system |
| JP6727775B2 (ja) * | 2015-08-31 | 2020-07-22 | キヤノン株式会社 | サーバ装置、制御システム、制御方法、及び、プログラム |
| US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
| US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
| US10313227B2 (en) | 2015-09-24 | 2019-06-04 | Cisco Technology, Inc. | System and method for eliminating undetected interest looping in information-centric networks |
| US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
| US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
| US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
| US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
| US9479567B1 (en) | 2015-10-29 | 2016-10-25 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
| US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
| US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
| US10021222B2 (en) | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
| US10097521B2 (en) | 2015-11-20 | 2018-10-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
| US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
| US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
| US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
| US20170177613A1 (en) * | 2015-12-22 | 2017-06-22 | Egnyte, Inc. | Event-Based User State Synchronization in a Cloud Storage System |
| CN105577798B (zh) * | 2015-12-25 | 2019-03-05 | 北京奇虎科技有限公司 | 更新发布数据的方法及装置 |
| US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
| US9949301B2 (en) | 2016-01-20 | 2018-04-17 | Palo Alto Research Center Incorporated | Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks |
| US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption in a content centric network |
| US10043016B2 (en) | 2016-02-29 | 2018-08-07 | Cisco Technology, Inc. | Method and system for name encryption agreement in a content centric network |
| US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
| US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
| US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
| US10742596B2 (en) | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
| US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
| US10212196B2 (en) | 2016-03-16 | 2019-02-19 | Cisco Technology, Inc. | Interface discovery and authentication in a name-based network |
| US11436656B2 (en) | 2016-03-18 | 2022-09-06 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
| US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
| US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
| US10033639B2 (en) | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
| US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
| US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
| US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
| US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
| US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
| US10320675B2 (en) | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
| US10547589B2 (en) | 2016-05-09 | 2020-01-28 | Cisco Technology, Inc. | System for implementing a small computer systems interface protocol over a content centric network |
| US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
| US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
| US10367879B2 (en) * | 2016-06-10 | 2019-07-30 | Apple Inc. | Download prioritization |
| US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
| US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
| US10148572B2 (en) | 2016-06-27 | 2018-12-04 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
| US10009266B2 (en) | 2016-07-05 | 2018-06-26 | Cisco Technology, Inc. | Method and system for reference counted pending interest tables in a content centric network |
| US11093834B2 (en) | 2016-07-06 | 2021-08-17 | Palo Alto Research Center Incorporated | Computer-implemented system and method for predicting activity outcome based on user attention |
| US9992097B2 (en) | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
| US10122624B2 (en) | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
| US10069729B2 (en) | 2016-08-08 | 2018-09-04 | Cisco Technology, Inc. | System and method for throttling traffic based on a forwarding information base in a content centric network |
| US10956412B2 (en) | 2016-08-09 | 2021-03-23 | Cisco Technology, Inc. | Method and system for conjunctive normal form attribute matching in a content centric network |
| US10033642B2 (en) | 2016-09-19 | 2018-07-24 | Cisco Technology, Inc. | System and method for making optimal routing decisions based on device-specific parameters in a content centric network |
| US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
| US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
| US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
| US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
| CN106973099B (zh) | 2017-03-28 | 2019-08-06 | Oppo广东移动通信有限公司 | 一种数据更新方法、装置及系统 |
| US10614054B2 (en) | 2017-05-12 | 2020-04-07 | International Business Machines Corporation | Synchronizing data values by sending updates |
| US10606820B2 (en) | 2017-05-12 | 2020-03-31 | International Business Machines Corporation | Synchronizing data values by requesting updates |
| US10956078B2 (en) | 2018-03-27 | 2021-03-23 | EMC IP Holding Company LLC | Storage system with loopback replication process providing object-dependent slice assignment |
| US10866969B2 (en) * | 2018-03-28 | 2020-12-15 | EMC IP Holding Company LLC | Storage system with loopback replication process providing unique identifiers for collision-free object pairing |
| CN108667906A (zh) * | 2018-04-12 | 2018-10-16 | 广东汇泰龙科技有限公司 | 一种基于门锁显示屏含历史记录管理系统 |
| CN110413684B (zh) * | 2018-04-25 | 2023-05-02 | 杭州海康存储科技有限公司 | 一种数据库同步方法、装置及系统 |
| CN110691112A (zh) * | 2018-07-06 | 2020-01-14 | 优信拍(北京)信息科技有限公司 | 一种数据同步方法,装置及系统 |
| CN110490636B (zh) * | 2019-07-15 | 2023-07-11 | 平安科技(深圳)有限公司 | 客户信息管理方法、装置、计算机可读存储介质及服务器 |
| US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
| JP7562269B2 (ja) * | 2020-02-28 | 2024-10-07 | キヤノン株式会社 | 情報処理システム及び情報処理方法 |
| CN111460014A (zh) * | 2020-03-02 | 2020-07-28 | 北京电信易通信息技术股份有限公司 | 一种基于警务数据库的第三方应用数据同步方法及系统 |
| JP2021189569A (ja) * | 2020-05-26 | 2021-12-13 | 富士通株式会社 | データ更新プログラム、データ更新装置及びデータ更新方法 |
| GB202110155D0 (en) | 2021-07-14 | 2021-08-25 | Graphcore Ltd | GSP trace unit |
| GB202110147D0 (en) | 2021-07-14 | 2021-08-25 | Graphcore Ltd | time deterministic trace |
| DE102022101689A1 (de) * | 2022-01-25 | 2023-07-27 | Krohne Messtechnik Gmbh | Verfahren zur Änderung eines Ist-Zugangsschlüssels in einem Feldgerät der Automatisierungstechnik |
| CN116932649A (zh) * | 2023-07-20 | 2023-10-24 | 招商银行股份有限公司 | 数据库同步方法、数据库同步设备以及可读存储介质 |
| CN116881371B (zh) * | 2023-09-07 | 2023-11-14 | 北京逐风科技有限公司 | 数据同步方法、装置、设备及存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004086800A (ja) | 2002-08-29 | 2004-03-18 | Mitsubishi Electric Corp | データ同期システムおよびデータ同期方法 |
| JP2005537579A (ja) * | 2002-09-03 | 2005-12-08 | ノキア コーポレイション | 中断された同期プロセスに対処してデータを同期させる方法、装置、システム |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6564215B1 (en) * | 1999-12-16 | 2003-05-13 | International Business Machines Corporation | Update support in database content management |
| JP3750504B2 (ja) * | 2000-08-09 | 2006-03-01 | セイコーエプソン株式会社 | データ更新方法および情報処理装置 |
| AU2002303126A1 (en) * | 2001-03-16 | 2002-10-03 | Novell, Inc. | Client-server model for synchronization of files |
| US20040044799A1 (en) | 2002-09-03 | 2004-03-04 | Nokia Corporation | Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process |
| US7035879B2 (en) * | 2002-12-26 | 2006-04-25 | Hon Hai Precision Ind. Co., Ltd. | System and method for synchronizing data of wireless devices |
| KR100547896B1 (ko) * | 2004-03-05 | 2006-01-31 | 삼성전자주식회사 | 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 |
| KR100739729B1 (ko) | 2005-09-03 | 2007-07-13 | 삼성전자주식회사 | 디지털 방송 네트워크에서 서버와 클라이언트 간 epg정보를 동기화시키기 위한 방법 및 장치 |
| GB0625643D0 (en) | 2006-12-21 | 2007-01-31 | Symbian Software Ltd | Sync field filtering |
| US7721003B2 (en) * | 2007-02-02 | 2010-05-18 | International Business Machines Corporation | System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client |
| CN100464308C (zh) | 2007-04-20 | 2009-02-25 | 北京搜狗科技发展有限公司 | 一种用户词库同步更新的方法和系统 |
-
2009
- 2009-09-04 JP JP2009204686A patent/JP5061166B2/ja not_active Expired - Fee Related
-
2010
- 2010-08-11 US US13/390,431 patent/US8775374B2/en active Active - Reinstated
- 2010-08-11 EP EP10813605.2A patent/EP2474911B1/en not_active Not-in-force
- 2010-08-11 WO PCT/JP2010/063623 patent/WO2011027654A1/ja not_active Ceased
- 2010-08-11 KR KR1020127007751A patent/KR101569562B1/ko not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004086800A (ja) | 2002-08-29 | 2004-03-18 | Mitsubishi Electric Corp | データ同期システムおよびデータ同期方法 |
| JP2005537579A (ja) * | 2002-09-03 | 2005-12-08 | ノキア コーポレイション | 中断された同期プロセスに対処してデータを同期させる方法、装置、システム |
Non-Patent Citations (3)
| Title |
|---|
| "Open Mobile Alliance DS Protocol", APPROVED VERSION 1.2.1, 10 August 2007 (2007-08-10), pages 17 - 18, 78-79, XP008159848, Retrieved from the Internet <URL:http://www.openmobilealliance.org/technical/ release_program/docs/DS/V1_2_1-20070810-A/ OMA-TS-DS_Protocol-V1_2_1-20070810-A.pdf> * |
| MAKOTO HAMATSU: "Denwacho Oazukari Service no System Kaihatsu", NTT DOCOMO TECHNICAL JOURNAL, vol. 14, no. 2, 1 July 2006 (2006-07-01), pages 38 - 42, XP008160582 * |
| See also references of EP2474911A4 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110309176A (zh) * | 2018-03-15 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和数据中转站 |
| CN110309176B (zh) * | 2018-03-15 | 2024-04-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和数据中转站 |
| CN111400679A (zh) * | 2020-03-12 | 2020-07-10 | 厦门区块链云科技有限公司 | 一种基于区块链的可信云存储方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5061166B2 (ja) | 2012-10-31 |
| KR20120049375A (ko) | 2012-05-16 |
| EP2474911B1 (en) | 2017-06-21 |
| CN102483715A (zh) | 2012-05-30 |
| EP2474911A4 (en) | 2014-12-03 |
| US8775374B2 (en) | 2014-07-08 |
| US20120179653A1 (en) | 2012-07-12 |
| KR101569562B1 (ko) | 2015-11-16 |
| JP2011054092A (ja) | 2011-03-17 |
| EP2474911A1 (en) | 2012-07-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5061166B2 (ja) | データ同期システムおよびデータ同期方法 | |
| US9609060B2 (en) | Distributed storage system and method | |
| EP2996308B1 (en) | Massively scalable object storage system | |
| US8620926B2 (en) | Using a hashing mechanism to select data entries in a directory for use with requested operations | |
| CN114610680B (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
| US8326913B2 (en) | Method and system for service contract discovery | |
| CN115004662A (zh) | 数据同步方法、装置、数据存储系统及计算机可读介质 | |
| CN112579695A (zh) | 一种数据同步方法和装置 | |
| CN114528255A (zh) | 元数据管理方法、电子设备及计算机程序产品 | |
| CN110633322A (zh) | 一种资源信息同步方法、装置、电子设备及存储介质 | |
| CN106993026B (zh) | 一种ftp服务器新增文件检测下载方法及装置 | |
| CN121116971A (zh) | 基于云搜索服务的数据查询方法、介质、设备及产品 | |
| KR20130023490A (ko) | 애플리케이션 동기화 시스템 및 방법 | |
| CN115017104A (zh) | 一种数据处理系统、方法、计算机设备及存储介质 | |
| CN102483715B (zh) | 数据同步系统以及数据同步方法 | |
| JP2009123047A (ja) | 端末キャッシュ管理装置、端末キャッシュ管理方法及びプログラム | |
| JP5634178B2 (ja) | データ同期システムおよびデータ同期方法 | |
| CN119782418A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
| CN112148745A (zh) | 一种多HBase集群访问方法、装置及存储介质 | |
| KR100390590B1 (ko) | 메인메모리 데이터베이스 관리 시스템을 이용한데이터베이스 실시간 캐싱 및 일치 방법 | |
| EP4195068A1 (en) | Storing and retrieving media recordings in an object store | |
| CN117234410A (zh) | 一种数据文件缓存处理方法、装置、存储介质及电子装置 | |
| JPH11327989A (ja) | データベース管理装置、および、そのプログラムが記録された記録媒体 | |
| JPH11203321A (ja) | メタ情報管理機能を備えた情報提供装置 | |
| CN113515532A (zh) | 基于数据交换的变更处理方法、装置、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 201080039401.8 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10813605 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1195/CHENP/2012 Country of ref document: IN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| REEP | Request for entry into the european phase |
Ref document number: 2010813605 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2010813605 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 20127007751 Country of ref document: KR Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 13390431 Country of ref document: US |