CN103716350B - 一种对资源进行同步控制的方法、设备和系统 - Google Patents
一种对资源进行同步控制的方法、设备和系统 Download PDFInfo
- Publication number
- CN103716350B CN103716350B CN201210376133.XA CN201210376133A CN103716350B CN 103716350 B CN103716350 B CN 103716350B CN 201210376133 A CN201210376133 A CN 201210376133A CN 103716350 B CN103716350 B CN 103716350B
- Authority
- CN
- China
- Prior art keywords
- terminal
- server
- resource file
- lock
- resource
- 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.)
- Active
Links
Classifications
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种对资源进行同步控制的方法、设备和系统,涉及信息同步控制领域,无需第二终端往数据库插入资源记录来告知第一终端资源已经更新完成,同时也避免服务器根据插入的资源记录对正在运行的程序进行调整。一种对资源进行同步控制的方法包括:第一终端向服务器查询第一终端列表中第一终端的地址是否为清空状态;第一终端列表记录有第一终端的地址;当第一终端的地址为清空状态时,第一终端向第二终端获取资源文件;在获取资源文件后,第一终端通知服务器在第一终端列表中取消第一终端的地址的清空状态。本发明用于信息同步控制系统。
Description
技术领域
本发明涉及信息同步控制领域,尤其涉及一种对资源进行同步控制的方法、设备和系统。
背景技术
现有技术中,提供的信息同步控制方案是生产者将资源准备完成后,将资源文件发送至文件系统或者往数据库插入资源记录;消费者通过检测文件系统中的资源文件或者检测数据库中的资源记录来确认生产者是否已将把资源准备完成,进而向生产者获取资源。
在实现上述技术方案的过程中,发明人发现现有技术中至少存在如下问题:
一方面,生产者往数据库插入资源记录时,数据库要建立对应于插入的资源记录的表格,而且服务器还要根据插入的资源记录对正在运行的程序进行调整,这样增加了设备的工作量。另一方面,消费者获取资源是不定时的,任意时刻消费者都可以进行资源的获取,如果消费者在获取资源的同时生产者也在更新资源,这样就会产生读写冲突,影响系统的稳定性。
发明内容
本发明的实施例提供一种对资源进行同步控制的方法、设备和系统,解决了生产者更新资源文件与消费者获取资源文件的读写冲突。
为达到上述目的,本发明的实施例采用如下技术方案:
一种对资源进行同步控制的方法,涉及服务器一侧,包括:
服务器获取第一终端的地址;
所述服务器建立第一终端列表,所述第一终端列表记录有所述第一终端的地址;
所述服务器接收所述第二终端发送的已完成资源更新通知消息,所述已完成资源更新通知消息由所述第二终端完成资源文件的更新后发送;
在所述服务器接收到所述第二终端发送的已完成资源更新通知消息后,为所述第一终端列表中的所述第一终端的地址设置清空状态,以便于所述第一终端在所述第一终端列表的所述第一终端的地址为清空状态时,向所述第二终端获取资源文件;
在所述第一终端获取资源文件后,所述服务器根据所述第一终端的通知,在所述第一终端列表中取消所述第一终端的地址的清空状态。
一种对资源进行同步控制的方法,涉及第一终端一侧,包括:
第一终端向服务器查询第一终端列表中所述第一终端的地址是否为清空状态,所述第一终端列表记录有所述第一终端的地址;
当所述第一终端的地址为清空状态时,所述第一终端向所述第二终端获取资源文件;
在获取资源文件后,所述第一终端通知所述服务器在所述第一终端列表中取消所述第一终端的地址的清空状态。
一种对资源进行同步控制的方法,涉及第二终端一侧,包括:
第二终端在完成资源文件的更新后,向服务器发送已完成资源更新通知消息,以便所述服务器为第一终端列表中的第一终端的地址设置清空状态。
一种服务器,包括:
地址获取单元,用于获取第一终端的地址;
列表建立单元,用于建立第一终端列表,所述第一终端列表记录有所述第一终端的地址;
接收单元,用于接收所述第二终端发送的已完成资源更新通知消息;所述已完成资源更新通知消息由所述第二终端完成资源文件的更新后发送;
设置单元,用于收到所述第二终端发送的已完成资源更新通知消息后,为所述第一终端列表中的所述第一终端的地址设置清空状态,以便于所述第一终端在所述第一终端列表的所述第一终端的地址为清空状态时,向所述第二终端获取资源文件;
第一取消单元,用于在所述第一终端获取资源文件后,根据所述第一终端的通知,在所述第一终端列表中取消所述第一终端的地址的清空状态。
一种第一终端,包括:
查询单元,用于向服务器查询第一终端列表中所述第一终端的地址是否为清空状态,所述第一终端列表记录有所述第一终端的地址;
资源文件获取单元,用于当所述第一终端的地址为清空状态时,所述第一终端向所述第二终端获取资源文件;
第二取消单元,用于在获取资源文件后,通知所述服务器在所述第一终端列表中取消所述第一终端的地址的清空状态。
一种第二终端,包括:
资源更新通知单元,用于在完成资源文件的更新后,向服务器发送已完成资源更新通知消息,以便所述服务器为第一终端列表中的第一终端的地址设置清空状态。
一种对资源进行同步控制的系统,包括:上述任意一项所述的服务器,第一终端,以及第二终端。
本发明实施例提供的一种对资源进行同步控制的方法、设备和系统,第二终端将资源文件更新完成后通知所述服务器,由所述服务器为第一终端列表中的所述第一终端的地址设置清空状态来表示所述生第二终端已将资源文件更新完成,无需第二终端往数据库插入资源记录来告知所述第一终端资源已经更新完成,同时也避免服务器根据插入的资源记录对正在运行的程序进行调整。
附图说明
图1为本发明实施例1提供的一种对资源进行同步控制的方法涉服务器一侧的流程图;
图2为本发明实施例1提供的一种对资源进行同步控制的方法涉第一终端一侧的流程图;
图3为本发明实施例2提供的一种对资源进行同步控制的方法的流程图;
图4为本发明实施例2提供的一种对资源进行同步控制的方法第二终端进行资源文件更新的流程图;
图5为本发明实施例2提供的一种对资源进行同步控制的方法第一终端获取资源文件的流程图;
图6为本发明实施例3提供的一种服务器框图;
图7为本发明实施例3提供的另一种服务器框图;
图8为本发明实施例3提供的另一种服务器框图;
图9为本发明实施例3提供的一种第一终端框图;
图10为本发明实施例3提供的另一种第一终端框图;
图11为本发明实施例3提供的另一种第一终端框图;
图12为本发明实施例3提供的另一种第二终端框图;
图13为本发明实施例3提供的另一种第二终端框图;
图14为本发明实施例3提供的一种对资源进行同步控制的系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的应用场景中,包括服务器,第一终端和第二终端三类设备,在本发明实施例的应用场景中第一终端可以具体为消费者所操作的终端,第二终端可以为生产者所操作的终端。第二终端中存储有资源文件,第一终端需要获取第二终端中的资源文件。服务器同时连接第二终端和第一终端。
实施例1:
本发明实施例提供了一种对资源进行同步控制的方法,涉及服务器一侧,如图1所示,该方法包括:
101、获取第一终端的地址。
第一终端获取资源文件之前,服务器获取第一终端的地址。
102、建立第一终端列表。
第一终端获取资源文件之前,服务器建立第一终端列表,在第一终端列表中记录有第一终端的地址。
103、接收所述第二终端发送的已完成资源更新通知消息。
当所述第二终端将资源文件更新完后,会向所述服务器发送已完成资源更新通知消息。
104、为第一终端列表中的第一终端的地址设置清空状态。
在所述服务器接收到所述第二终端发送的已完成资源更新通知消息后,为第一终端列表中的第一终端的地址设置清空状态,以便于所述第一终端在所述第一终端列表中的第一终端的地址为清空状态时,向所述第二终端获取资源文件。
需要说明的是,为第一终端列表中的第一终端的地址设置清空状态,具体的可以是通过将第一终端列表中的第一终端的地址进行删除,以便于所述第一终端在第一终端列表中的第一终端的地址被删除时,向所述第二终端获取资源文件。
105、取消第一终端列表中所述第一终端的地址的清空状态。
当第一终端获取资源文件后,会通知所述服务器已完成资源文件的获取,当所述服务器接收到通知后取消第一终端列表中所述第一终端的地址的清空状态。
需要说明的是,取消第一终端列表中所述第一终端的地址的清空状态,具体的可以是将第一终端的地址重新添加到第一终端列表中。
举例来说明上述步骤101至105。在系统的初始状态,服务器分别获取各个第一终端的地址,并将获取的第一终端的地址存入第一终端列表。之后,当第二终端完成资源更新时,将会向服务器发送已完成资源更新消息。服务器接到已完成资源更新通知消息后,会为第一终端列表中第一终端的地址设置清空状态。当第一终端发现服务器的第一终端列表中第一终端的地址为清空状态时,第一终端获知资源文件已经更新完成,此时第一终端可以访问第二终端以获取资源文件。一旦第一终端完成对资源文件的获取后,会通知服务器。服务器将取消第一终端的地址的清空状态。
通过上述步骤,第二终端将资源文件更新完成后通知所述服务器,由所述服务器为第一终端的地址设置清空状态来表示所述生第二终端已将资源文件更新完成,无需第二终端往数据库插入资源记录来告知所述第一终端资源已经更新完成,同时也避免服务器根据插入的资源记录对正在运行的程序进行调整。
本发明实施例还提供了一种对资源进行同步控制的方法,涉及第一终端一侧,如图2所示,该方法包括:
201、查询第一终端列表中第一终端的地址是否为清空状态。
所述第一终端在获取资源文件之前,先要查询第一列表中第一终端的地址是否为清空状态,通过查看第一列表中所述第一终端的地址是否为清空状态来判断所要获取的资源文件是否更新完成,进而对资源文件进行获取。当第一终端列表中第一终端的地址为清空状态时,执行步骤202,否则不进行资源文件的获取动作。
202、从所述第二终端获取资源文件。
当所述第一终端查询所述第一终端列表后,所述第一终端列表中第一终端的地址为清空状态,说明所述第二已经将资源文件更新完成,第一终端可以从所述第二终端获取资源文件。
203、通知所述服务器在第一终端列表中取消所述第一终端的地址的清空状态。
当所述第一终端获取资源文件后,所述第一终端通知所述服务器在所述第一终端列表中取消所述第一终端的地址的清空状态,来表示所述第一终端已将资源文件获取。
另一方面,在第二终端一侧,当第二终端在完成资源文件的更新后,向服务器发送已完成资源更新通知消息,以便所述服务器为第一终端列表中所述第一终端的地址设置清空状态。
本发明实施例提供了一种对资源进行同步控制的方法,该方法还包括:
第一终端获取资源文件之前,服务器获取第一终端的地址,第二终端的地址以及资源文件在第二终端的地址,当地址获取后,由服务器建立第一终端列表,并将所述第一终端地址存储到第一列表中,当所述第二终端将资源文件更新完后向所述服务器发送已完成资源更新通知消息,所述服务器接收到所述第二终端发送的已完成资源更新通知消息后,将第一终端列表中所述第一终端的地址设置为清空状态。所述第一终端查询所述第一终端列表,当所述第一终端列表中所述第一终端的地址为清空状态时,所述服务器通过所述第二终端获取所述资源文件的地址,所述第一终端通过所述资源文件的地址从所述第二终端获取资源文件。所述第一终端获取资源文件后,所述服务器根据所述第一终端的通知,取消所述第一终端列表中所述第一终端的地址的清空状态。
本发明实施例提供了一种对资源进行同步控制的方法,第二终端将资源文件更新完成后通知所述服务器,由所述服务器为第一终端列表中所述第一终端的地址设置清空状态,来表示所述生第二终端已将资源文件更新完成,减少了第二终端往数据库插入资源记录来告知所述第一终端资源已经更新完成时,数据库要建立对应于插入的资源记录的表格,服务器根据插入的资源记录对正在运行的程序进行调整所增加的工作量。
实施例2:
本发明实施例提供了一种对资源进行同步控制的方法,如图3所示,该方法包括:
301、服务器获取第一终端的地址。
同时,服务器还要从第二终端获取存储在第二终端中的资源文件的地址。
302、服务器建立第一终端列表,所述第一终端列表记录有所述第一终端的地址。
303、服务器接收所述第二终端发送的已完成资源更新通知消息。
所述已完成资源更新通知消息由所述第二终端完成资源文件的更新后发送。
304、服务器记录所述已完成资源更新通知消息的第二终端的地址。
通过记录所述已完成资源更新通知消息的第二终端的地址,便于所述第一终端通过所述服务器记录的第二终端的地址,找到第二终端进而获取资源文件。
305、在所述服务器接收到所述第二终端发送的已完成资源更新通知消息后,为第一终端列表中的第一终端的地址设置清空状态。
所述第一终端在检测到所述第一终端列表中第一终端的地址为清空状态时,将向所述第二终端获取资源文件。
需要说明的是,为第一终端列表中的第一终端的地址设置清空状态,具体的可以是通过将第一终端列表中的第一终端的地址进行删除,以便于所述第一终端在第一终端列表中的第一终端的地址被删除时,向所述第二终端获取资源文件。
306、第一终端在自身的地址为清空状态时,向所述第二终端获取资源文件。
其中,在第一终端向第二终端获取资源文件前,可以从服务器中得到第二终端的地址和资源文件的地址。
307、在获取资源文件后,所述第一终端通知所述服务器取消第一终端的地址的清空状态。
需要说明的是,取消第一终端列表中所述第一终端的地址的清空状态,具体的可以是将第一终端的地址重新添加到第一终端列表中。
举例说明上述步骤301至307。在系统的初始状态下,服务器首先获取了全部第一终端的地址,并存储到第一终端列表中。同时,服务器还从第二终端中得到了资源文件的地址。之后,一方面,第二终端会进行资源文件的更新,另一方面,第一终端会从第二终端获取资源文件。假设第二终端A进行了一次资源文件的更新,A将发送已完成资源更新通知消息给服务器,服务器记录A的地址并为第一终端列表的第一终端的地址设置清空状态。此后,当有第一终端(这里假设为第一终端B)希望读取A中的资源文件时,首先查看在服务器的第一终端列表中自己的地址是否为清空状态。由于第一终端列表中B的地址为清空状态,这时B从服务器中得到A的地址以及资源文件的地址,从而可以向A获取资源文件。在获取了资源文件后,B向服务器发送通知,以便使服务器取消B的地址的清空状态。在B的地址再次设置为清空状态前,B如果准备再次读取A中的资源文件,如果B的地址在第一终端列表中不是为清空状态,表明A没有对资源文件再次更新,B将中止资源文件的获取动作。
可见在上述步骤中,第二终端将资源文件更新完成后通知所述服务器,由所述服务器设置所述第一终端的地址为清空状态,表示所述生第二终端已将资源文件更新完成,第一终端在检测到第一终端列表中自身的地址为清空状态时,可以向第二终端获取资源文件,在获取资源文件后,再通知服务器取消第一终端的地址的清空状态。通过上述流程,无需第二终端往数据库插入资源记录来告知所述第一终端资源已经更新完成,同时也避免服务器根据插入的资源记录对正在运行的程序进行调整,提升了系统的可扩展性,并提高了系统运行的稳定性。
实际应用中,在分布式系统中的某个终端对资源文件修改过程中,需要禁止其他终端进行读取或写入,以防读取到过期的文件或重复写入。zookeeper是一个针对大型分布式系统的可靠协调系统,zookeeper有锁文件特性,具体的,用户终端可以利用zookeeper系统创建读锁和写锁对文件进行锁定,当用户终端先创建写锁对文件锁定时,任何其它用户终端不能对该文件更新和读取,当有读锁对文件锁定时,用户终端可以对该文件读取但不能更新,本发明实施例是基于zookeeper服务开发的一套同步控制系统,利用zookeeper的锁特性在本发明实施例中具体为:
在第二终端进行资源文件更新前,需要创建写锁,根据写锁来进行资源文件更新的方法,如图4所示,包括以下步骤:
401、第二终端进行资源文件的更新前创建写锁。
402、服务器按照锁创建的顺序对锁依次编号,并存储在锁目录中。
在锁目录中存储的锁,是按照锁创建的顺序从小到大依次标号的。锁目录中存储的锁,包括第二终端创建的写锁和第一终端创建的读锁。
403、服务器判断是否存在比所述第二终端发送的写锁编号更小的锁。
404、当所述服务器判断不存在比所述第二终端发送的写锁编号更小的写锁编号或读锁编号时,通知所述第二终端进行资源文件的更新。
当存在比所述第二终端发送的写锁编号更小的写锁编号或读锁编号时,将中止资源文件的更新动作。
405、服务器在所述第二终端完成资源文件的更新后,在所述锁目录中删除与所述第二终端对应的写锁。
第二终端在完成资源文件的更新后,通知服务器删除与所述第二终端对应的写锁,同时向服务器发送已完成资源更新通知消息,以便所述服务器为所述第一终端列表中所述第一终端的地址设置清空状态。
另一方面,在第一终端进行资源文件获取前,需要创建读锁,根据读锁来进行资源文件获取的方法,如图5所示,包括以下步骤:
501、第一终端获取资源文件前创建读锁。
502、服务器按照锁创建的顺序对锁依次编号,并存储在锁目录中。
在锁目录中存储的锁,是按照锁创建的顺序从小到大依次标号的。锁目录中存储的锁,包括第二终端创建的写锁和第一终端创建的读锁。
503、服务器判断是否存在比所述第一终端发送的读锁编号更小的写锁。
504、当所述服务器判断不存在比所述第一终端发送的读锁编号更小的写锁时,通知所述第一终端向所述第二终端获取资源文件。
当存在比所述第一终端发送的读锁编号更小的写锁时,将中止第一终端对资源文件的获取动作。
505、服务器在所述第一终端获取资源文件后,在所述锁目录中删除与所述第一终端对应的读锁。
第一终端在完成资源文件的获取后,通知服务器已完成资源文件的获取,从而使服务器删除与第一终端对应的读锁;同时通知服务器取消第一终端的地址的清空状态。
在上述步骤中,第二终端对资源文件更新以前先创建写锁,第一终端对资源文件获取之前先创建读锁,服务器通过锁创建的时间按顺序对锁进行编号并将锁存储在锁目录中,当所述第二终端要对资源更新或所述第一终端要获取资源文件时,服务器判断是否存在比所述第二终端发送的写锁编号更小的锁或是否存在比所述第一终端发送的读锁编号更小的写锁,来告知第二终端能否对资源文件进行更新或第一终端能否获取资源文件,通过以上步骤,一方面,在对资源文件进行写操作时,禁止其他终端对同一资源文件的读或写,另一方面,在对资源文件进行读操作时,禁止第二终端对统一资源文件进行写操作,从而避免了第二终端更新资源文件和第一终端获取资源文件时发生的读写冲突。
实施例3:
本发明实施例提供的一种服务器,如图6所示,包括:
地址获取单元601,用于获取第一终端的地址。
列表建立单元602,用于建立第一终端列表,所述第一终端列表记录有所述第一终端的地址。
接收单元603,用于接收所述第二终端发送的已完成资源更新通知消息;所述已完成资源更新通知消息由所述第二终端完成资源文件的更新后发送。
设置单元604,用于接收到所述第二终端发送的已完成资源更新通知消息后,为所述第一终端列表中的所述第一终端的地址设置清空状态,以便于所述第一终端在所述第一终端列表的所述第一终端的地址为清空状态时,向所述第二终端获取资源文件。
第一取消单元605,用于在所述第一终端获取资源文件后,根据所述第一终端的通知,在所述第一终端列表中取消所述第一终端的地址的清空状态。
进一步的,所述服务器,如图7所示,还包括:
锁接收单元606,用于接收所述第二终端创建的写锁,所述写锁由所述第二终端进行资源文件的更新前创建,还用于接收所述第一终端创建的读锁;所述读锁由所述第一终端向所述第二终端获取资源文件前创建。
所述服务器还包括:
编号单元607,用于对按照接收顺序对锁依次编号,并存储在锁目录中。
通知单元608,用于当不存在比所述第二终端发送的写锁编号更小的写锁编号或读锁编号时,通知所述第二终端进行资源文件的更新;所述通知单元还用于当不存在比所述第一终端发送的读锁编号更小的写锁编号时,通知所述第一终端获取资源文件。
删除单元609,用于在所述第二终端完成资源文件的更新后,在所述锁目录中删除与所述第二终端对应的写锁;所述删除单元还用于在所述第一终端完成资源文件获取后,在所述锁目录中删除与所述第一终端对应的读锁。
进一步的,如图8所示,所述服务器还包括:
记录单元610,用于在所述服务器接收到所述第二终端发送的已完成资源更新通知消息后,记录所述已完成资源更新通知消息的第二终端的地址。
资源文件地址获取单元611,用于获取所述资源文件的地址;所述资源文件存储在所述第二终端中,以便于所述第一终端根据所述资源文件的地址获取资源文件。
一种第一终端,如图9所示,包括:
查询单元901,用于向服务器查询第一终端列表中所述第一终端的地址是否为清空状态,所述第一终端列表记录有所述第一终端的地址。
资源文件获取单元902,用于当所述第一终端的地址为清空状态时,所述第一终端向所述第二终端获取资源文件。
第二取消单元903,用于在获取资源文件后,通知所述服务器在所述第一终端列表中取消所述第一终端的地址的清空状态。
进一步的,如图10所示,所述第一终端还包括:
读锁创建单元904,用于当所述第一终端向所述第二终端获取资源文件前,创建读锁并发送至所述服务器,以便所述服务器按照接收顺序对锁依次编号,并存储在锁目录中。
所述资源文件获取单元902还包括,资源文件获取子单元9021,用于根据所述服务器的通知,向所述第二终端获取资源文件;所述通知由所述服务器判断不存在比所述第一终端发送的读锁编号更小的写锁编号时,发送给所述第一终端。
进一步的,如图11所示,所述第一终端还包括:
锁删除通知单元905,用于在向所述第二终端获取资源文件后,通知所述服务器已完成资源文件的获取,以便所述服务器在所述第一终端完成资源文件获取后,在所述锁目录中删除与所述第一终端对应的读锁。
一种第二终端,如图12所示,包括:
资源更新通知单元121,用于在完成资源文件的更新后,向服务器发送已完成资源更新通知消息,以便所述服务器清空第一终端列表中的所述第一终端的地址。
进一步的,如图13所示,所述第二终端还包括:
写锁创建单元122,用于当所述第二终端进行资源文件的更新前,创建写锁并发送至所述服务器,以便所述服务器按照接收顺序对锁依次编号,并存储在锁目录中。
资源文件更新单元123,用于根据所述服务器的通知,进行资源文件的更新;所述通知由所述服务器判断不存在比所述第二终端发送的写锁编号更小写锁编号或读锁编号时,发送给所述第二终端。
本发明实施例提供的服务器,第一终端和第二终端,第二终端将资源文件更新完成后通知所述服务器,由所述服务器为第一终端列表中第一终端的地址设置清空状态来表示所述生第二终端已将资源文件更新完成,第一终端在检测到第一列表中自身的地址为清空状态时,可以向第二终端获取资源文件,在获取资源文件后,再通知服务器设置第一终端的地址为清空状态。通过上述流程,无需第二终端往数据库插入资源记录来告知所述第一终端资源已经更新完成,同时也避免服务器根据插入的资源记录对正在运行的程序进行调整,提升了系统的可扩展性,并提高了系统运行的稳定性。
此外,第二终端对资源文件更新以前先创建写锁,第一终端对资源文件获取之前先创建读锁,服务器通过锁创建的时间按顺序对锁进行编号并将锁存储在锁目录中,当所述第二终端要对资源更新或所述第一终端要获取资源文件时,服务器判断是否存在比所述第二终端发送的写锁编号更小的锁或是否存在比所述第一终端发送的读锁编号更小的写锁,来告知第二终端能否对资源文件进行更新或第一终端能否获取资源文件。一方面,在对资源文件进行写操作时,禁止其他终端对同一资源文件的读或写,另一方面,在对资源文件进行读操作时,禁止第二终端对统一资源文件进行写操作,从而避免了第二终端更新资源文件和第一终端获取资源文件时发生的读写冲突。
本发明实施例还提供了一种对资源进行同步控制的系统,如图14所示,该系统包括:服务器141,第一终端142,以及第二终端143。
本发明实施例提供的系统中,第二终端143将资源文件更新完成后通知所述服务器141,由所述服务器141为第一终端142列表中的第一终端142设置清空状态来表示所述第二终端143已将资源文件更新完成,第一终端142在检测到第一终端142列表中自身的地址为清空状态时,可以向第二终端143获取资源文件,在获取资源文件后,再通知服务器141将第一终端142的地址取消清空状态。通过上述流程,无需第二终端143往数据库插入资源记录来告知所述第一终端142资源已经更新完成,同时也避免服务器141根据插入的资源记录对正在运行的程序进行调整,提升了系统的可扩展性,并提高了系统运行的稳定性。
此外,第二终端143对资源文件更新以前先创建写锁,第一终端142对资源文件获取之前先创建读锁,服务器141通过锁创建的时间按顺序对锁进行编号并将锁存储在锁目录中,当所述第二终端143要对资源更新或所述第一终端142要获取资源文件时,服务器141判断是否存在比所述第二终端143发送的写锁编号更小的锁或是否存在比所述第一终端142发送的读锁编号更小的写锁,来告知第二终端143能否对资源文件进行更新或第一终端142能否获取资源文件。一方面,在对资源文件进行写操作时,禁止其他终端对同一资源文件的读或写,另一方面,在对资源文件进行读操作时,禁止第二终端对统一资源文件进行写操作,从而避免了第二终端更新资源文件和第一终端获取资源文件时发生的读写冲突。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (21)
1.一种对资源进行同步控制的方法,其特征在于,包括:
服务器获取第一终端的地址;
所述服务器建立第一终端列表,所述第一终端列表记录有所述第一终端的地址;
所述服务器接收第二终端发送的已完成资源更新通知消息,所述已完成资源更新通知消息由所述第二终端完成资源文件的更新后发送;
在所述服务器接收到所述第二终端发送的已完成资源更新通知消息后,为所述第一终端列表中的所述第一终端的地址设置清空状态,以便于所述第一终端在所述第一终端列表的所述第一终端的地址为清空状态时,向所述第二终端获取资源文件;
在所述第一终端获取资源文件后,所述服务器根据所述第一终端的通知,在所述第一终端列表中取消所述第一终端的地址的清空状态。
2.根据权利要求1所述的方法,其特征在于,在接收所述第二终端发送的已完成资源更新通知消息前,还包括:
所述服务器接收所述第二终端创建的写锁,所述写锁由所述第二终端进行资源文件的更新前创建;
在为所述第一终端列表中的所述第一终端的地址设置清空状态后,还包括:接收所述第一终端创建的读锁;所述读锁由所述第一终端向所述第二终端获取资源文件前创建。
3.根据权利要求2所述的方法,其特征在于,在所述服务器接收所述第二终端创建的写锁或接收所述第一终端创建的读锁后,还包括:
所述服务器按照接收顺序对锁依次编号,并存储在锁目录中;
当所述服务器判断不存在比所述第二终端发送的写锁编号更小的写锁编号或读锁编号时,通知所述第二终端进行资源文件的更新;
当所述服务器判断不存在比所述第一终端发送的读锁编号更小的写锁编号时,通知所述第一终端获取资源文件;
所述服务器在所述第二终端完成资源文件的更新后,在所述锁目录中删除与所述第二终端对应的写锁;
所述服务器在所述第一终端完成资源文件获取后,在所述锁目录中删除与所述第一终端对应的读锁。
4.根据权利要求1所述的方法,其特征在于,在所述服务器接收到所述第二终端发送的已完成资源更新通知消息后,还包括:
记录发送所述已完成资源更新通知消息的第二终端的地址,以便于所述第一终端通过所述服务器记录的第二终端的地址,找到第二终端进而获取资源文件。
5.根据权利要求1或4所述的方法,其特征在于,还包括:
所述服务器获取所述资源文件的地址;所述资源文件存储在所述第二终端中,以便于所述第一终端根据所述资源文件的地址获取资源文件。
6.一种对资源进行同步控制的方法,其特征在于,包括:
第一终端向服务器查询第一终端列表中所述第一终端的地址是否为清空状态,所述第一终端列表记录有所述第一终端的地址;
当所述第一终端的地址为清空状态时,所述第一终端向第二终端获取资源文件;
在获取资源文件后,所述第一终端通知所述服务器在所述第一终端列表中取消所述第一终端的地址的清空状态。
7.根据权利要求6所述的方法,其特征在于,还包括:
当所述第一终端向所述第二终端获取资源文件前,创建读锁并发送至所述服务器,以便所述服务器按照接收顺序对锁依次编号,并存储在锁目录中;
所述第一终端向所述第二终端获取资源文件,包括:
根据所述服务器的通知,向所述第二终端获取资源文件;所述通知由所述服务器判断不存在比所述第一终端发送的读锁编号更小的写锁编号时,发送给所述第一终端。
8.根据权利要求7所述的方法,其特征在于,在向所述第二终端获取资源文件后,还包括:
所述第一终端通知所述服务器已完成资源文件的获取,以便所述服务器在所述第一终端完成资源文件获取后,在所述锁目录中删除与所述第一终端对应的读锁。
9.一种对资源进行同步控制的方法,其特征在于,包括:
第二终端在完成资源文件的更新后,向服务器发送已完成资源更新通知消息,以便所述服务器为第一终端列表中的第一终端的地址设置清空状态。
10.根据权利要求9所述的方法,其特征在于,还包括:
当所述第二终端进行资源文件的更新前,创建写锁并发送至所述服务器,以便所述服务器按照接收顺序对锁依次编号,并存储在锁目录中;
所述第二终端根据所述服务器的通知,进行资源文件的更新;所述通知由所述服务器判断不存在比所述第二终端发送的写锁编号更小写锁编号或读锁编号时,发送给所述第二终端。
11.一种服务器,其特征在于,包括:
地址获取单元,用于获取第一终端的地址;
列表建立单元,用于建立第一终端列表,所述第一终端列表记录有所述第一终端的地址;
接收单元,用于接收第二终端发送的已完成资源更新通知消息;所述已完成资源更新通知消息由所述第二终端完成资源文件的更新后发送;
设置单元,用于接收到所述第二终端发送的已完成资源更新通知消息后,为所述第一终端列表中的所述第一终端的地址设置清空状态,以便于所述第一终端在所述第一终端列表的所述第一终端的地址为清空状态时,向所述第二终端获取资源文件;
第一取消单元,用于在所述第一终端获取资源文件后,根据所述第一终端的通知,在所述第一终端列表中取消所述第一终端的地址的清空状态。
12.根据权利要求11所述的服务器,其特征在于,所述服务器还包括:
锁接收单元,用于接收所述第二终端创建的写锁,所述写锁由所述第二终端进行资源文件的更新前创建;
还用于接收所述第一终端创建的读锁;所述读锁由所述第一终端向所述第二终端获取资源文件前创建。
13.根据权利要求12所述的服务器,其特征在于,所述服务器还包括:
编号单元,用于对按照接收顺序对锁依次编号,并存储在锁目录中;
通知单元,用于当不存在比所述第二终端 发送的写锁编号更小的写锁编号或读锁编号时,通知所述第二终端进行资源文件的更新;所述通知单元还用于当不存在比所述第一终端发送的读锁编号更小的写锁编号时,通知所述第一终端获取资源文件;
删除单元,用于在所述第二终端完成资源文件的更新后,在所述锁目录中删除与所述第二终端对应的写锁;所述删除单元还用于在所述第一终端完成资源文件获取后,在所述锁目录中删除与所述第一终端对应的读锁。
14.根据权利要求11所述的服务器,其特征在于,所述服务器还包括:
记录单元,用于接收到所述第二终端发送的已完成资源更新通知消息后,记录所述已完成资源更新通知消息的第二终端的地址。
15.根据权利要求11或14所述的服务器,其特征在于,所述服务器还包括:
资源文件地址获取单元,用于获取所述资源文件的地址;所述资源文件存储在所述第二终端中,以便于所述第一终端根据所述资源文件的地址获取资源文件。
16.一种第一终端,其特征在于,包括:
查询单元,用于向服务器查询第一终端列表中所述第一终端的地址是否为清空状态,所述第一终端列表记录有所述第一终端的地址;
资源文件获取单元,用于当所述第一终端的地址为清空状态时,所述第一终端向第二终端获取资源文件;
第二取消单元,用于在获取资源文件后,通知所述服务器在所述第一终端列表中取消所述第一终端的地址的清空状态。
17.根据权利要求16所述的第一终端,其特征在于,还包括:
读锁创建单元,用于当所述第一终端向所述第二终端获取资源文件前,创建读锁并发送至所述服务器,以便所述服务器按照接收顺序对锁依次编号,并存储在锁目录中;
所述资源文件获取单元,包括:
资源文件获取子单元,用于根据所述服务器的通知,向所述第二终端获取资源文件;所述通知由所述服务器判断不存在比所述第一终端发送的读锁编号更小的写锁编号时,发送给所述第一终端。
18.根据权利要求17所述的第一终端,其特征在于,还包括:
锁删除通知单元,用于在向所述第二终端获取资源文件后,通知所述服务器已完成资源文件的获取,以便所述服务器在所述第一终端完成资源文件获取后,在所述锁目录中删除与所述第一终端对应的读锁。
19.一种第二终端,其特征在于,包括:
资源更新通知单元,用于在完成资源文件的更新后,向服务器发送已完成资源更新通知消息,以便所述服务器为第一终端列表中的第一终端的地址设置清空状态。
20.根据权利要求19所述的第二终端,其特征在于,还包括:
写锁创建单元,用于当所述第二终端进行资源文件的更新前,创建写锁并发送至所述服务器,以便所述服务器按照接收顺序对锁依次编号,并存储在锁目录中;
资源文件更新单元,用于根据所述服务器的通知,进行资源文件的更新;所述通知由所述服务器判断不存在比所述第二终端发送的写锁编号更小写锁编号或读锁编号时,发送给所述第二终端。
21.一种对资源进行同步控制的系统,其特征在于,所述系统包括如权利要求11至15中任意一项所述的服务器,如权利要求16至18中任意一项所述的第一终端,以及如权利要求19至20中任意一项所述的第二终端。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210376133.XA CN103716350B (zh) | 2012-09-29 | 2012-09-29 | 一种对资源进行同步控制的方法、设备和系统 |
US14/431,643 US9380109B2 (en) | 2012-09-29 | 2013-08-12 | Resource synchronization control method, device, and system |
PCT/CN2013/081296 WO2014048176A1 (zh) | 2012-09-29 | 2013-08-12 | 一种对资源进行同步控制的方法、设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210376133.XA CN103716350B (zh) | 2012-09-29 | 2012-09-29 | 一种对资源进行同步控制的方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716350A CN103716350A (zh) | 2014-04-09 |
CN103716350B true CN103716350B (zh) | 2018-03-30 |
Family
ID=50386950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210376133.XA Active CN103716350B (zh) | 2012-09-29 | 2012-09-29 | 一种对资源进行同步控制的方法、设备和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9380109B2 (zh) |
CN (1) | CN103716350B (zh) |
WO (1) | WO2014048176A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562648B (zh) * | 2016-07-01 | 2021-04-06 | 北京忆恒创源科技有限公司 | 无锁ftl访问方法与装置 |
CN116405146B (zh) * | 2023-04-04 | 2024-01-30 | 惠州市德赛智储科技有限公司 | 多bms从机同步控制方法及控制系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488924A (zh) * | 2009-02-16 | 2009-07-22 | 成都市华为赛门铁克科技有限公司 | 一种元数据的修改方法和元数据服务器 |
CN101795203A (zh) * | 2009-02-03 | 2010-08-04 | 华为软件技术有限公司 | 软件升级数据包的下载方法和装置 |
CN102624569A (zh) * | 2012-04-18 | 2012-08-01 | 华为技术有限公司 | 对终端进行升级的方法和系统、网络设备以及终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315926B2 (en) * | 2004-09-21 | 2008-01-01 | Emc Corporation | Lock management for concurrent access to a single file from multiple data mover computers |
US20090240700A1 (en) * | 2006-03-08 | 2009-09-24 | Akihito Hayashi | Distributed file management system |
KR101178280B1 (ko) * | 2010-06-30 | 2012-08-29 | (주)나무소프트 | 파일 동기화 방법 및 장치 |
-
2012
- 2012-09-29 CN CN201210376133.XA patent/CN103716350B/zh active Active
-
2013
- 2013-08-12 WO PCT/CN2013/081296 patent/WO2014048176A1/zh active Application Filing
- 2013-08-12 US US14/431,643 patent/US9380109B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101795203A (zh) * | 2009-02-03 | 2010-08-04 | 华为软件技术有限公司 | 软件升级数据包的下载方法和装置 |
CN101488924A (zh) * | 2009-02-16 | 2009-07-22 | 成都市华为赛门铁克科技有限公司 | 一种元数据的修改方法和元数据服务器 |
CN102624569A (zh) * | 2012-04-18 | 2012-08-01 | 华为技术有限公司 | 对终端进行升级的方法和系统、网络设备以及终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2014048176A1 (zh) | 2014-04-03 |
US20150256614A1 (en) | 2015-09-10 |
US9380109B2 (en) | 2016-06-28 |
CN103716350A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2328302B1 (en) | A method and device for maintaining a changelog in data synchronization | |
CN103186391B (zh) | 浏览器升级方法和系统以及一种升级服务器 | |
CN105812482B (zh) | 通讯信息的共享方法及服务器平台 | |
CN102685018A (zh) | 一种网络即时通信信息处理的方法、系统及即时通信设备 | |
CN103716350B (zh) | 一种对资源进行同步控制的方法、设备和系统 | |
CN108833569A (zh) | 一种数据同步方法及相关装置 | |
CN102780989A (zh) | 一种移动终端防丢失的方法及系统 | |
CN103581846B (zh) | 一种用户名片更新方法和系统 | |
CN102711046B (zh) | 非接触式电子名片信息交换方法 | |
CN103701653B (zh) | 一种接口热插拔配置数据的处理方法及网络配置服务器 | |
CN102186163B (zh) | 一种智能手机多账户通讯录的资料同步方法 | |
CN109992219A (zh) | 分布式存储方法、装置、设备及计算机可读存储介质 | |
CN102437921B (zh) | 配置信息的存储方法和网络设备 | |
US8620277B2 (en) | Method and device for backing up unread short message | |
CN109446262A (zh) | 一种数据汇聚方法及装置 | |
CN107291579A (zh) | 一种基于静态子树分区的元数据集群文件快照方法 | |
WO2011057563A1 (zh) | 运营商控制闭合用户群组列表的方法和终端 | |
CN110502574B (zh) | 跨系统的信息同步方法、用户设备、存储介质及装置 | |
CN101072414B (zh) | 一种管理和保护移动终端设备信息的方法及装置 | |
CN106254445A (zh) | 消息发送方法及服务端 | |
CN104636086B (zh) | 一种ha存储设备、管理ha状态的方法 | |
CN101605045A (zh) | 一种告警通知消息的上报方法 | |
CN101932133B (zh) | 短信存储方法及无线通信终端 | |
CN103678677A (zh) | 智能终端的操作方法及系统 | |
CN109710693A (zh) | 一种ldap域数据同步的递归实现方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |