CN105553722B - 一种基于时间戳的数据交换方法、装置及*** - Google Patents
一种基于时间戳的数据交换方法、装置及*** Download PDFInfo
- Publication number
- CN105553722B CN105553722B CN201510953589.1A CN201510953589A CN105553722B CN 105553722 B CN105553722 B CN 105553722B CN 201510953589 A CN201510953589 A CN 201510953589A CN 105553722 B CN105553722 B CN 105553722B
- Authority
- CN
- China
- Prior art keywords
- data
- model object
- update
- timestamp value
- flag bit
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L41/064—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于时间戳的数据交换方法、装置及***,该方法包括:当检测到存储设备发生数据更新时,判断存储设备中是否有模型对象被删除,根据判断结果,设置发生数据更新的模型对象组的更新标志位,以及发生数据更新的模型对象及其所在模型对象组的当前时间戳值,根据模型对象的数据、该当前时间戳值、该更新标志位以及客户端的数据请求中包含的该历史时间戳值构造响应模型对象数据,并将该响应模型对象数据、该当前时间戳值以及该更新标志位发送给客户端。本发明通过时间戳记录发生了数据变更的对象,使得服务器与客户端之间进行数据传输时去除无用的冗余信息,提高传输效率并降低维护成本。
Description
技术领域
本发明属于存储技术领域,尤其涉及一种基于时间戳的数据交换方法、装置及***。
背景技术
随着信息技术的不断进步,人们对专业存储设备的需求越来越强烈。在实际的工程部署中,管理人员要想轻松的访问并操作众多存储设备离不开存储管理***软件的协助。存储管理软件分为单设备管理和多设备管理,单设备管理***相对较简单,一般由部署在存储阵列上的web来实现,多设备管理***架构相对复杂,需要单独的服务器(server)层来组织并管理众多存储设备,操作者通过客户端(client)与server交互来完成实际操作。
***运行时每当客户端刷新,或底层阵列设备状态发生改变,server都需要向client发送新的数据。现有技术中,存储管理***每次刷新数据时都是将所有相关数据收集上来,全部发送给客户端,但这种技术效率比较低,即使数据只有很小的变更,也要传送全部数据,由于数据量很大,传输和解析效率会比较低,另外也不利于开发人员通过日志进行调试工作。
发明内容
本发明提供一种基于时间戳的数据交换方法及装置,可通过时间戳记录发生了数据变更的对象,使得sever与client之间进行数据传输时去除无用的冗余信息,提高传输效率并降低维护成本。
本发明提供的基于时间戳的数据交换方法,包括:
当检测到存储设备发生数据更新时,判断所述存储设备中是否有模型对象被删除;根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;接收客户端的数据请求,所述数据请求中包含各模型对象组的历史时间戳值;根据模型对象的数据、所述历史时间戳值、所述当前时间戳值以及所述更新标志位构造响应模型对象数据,并将所述响应模型对象数据、所述当前时间戳值以及所述更新标志位发送给所述客户端。
本发明提供的基于时间戳的数据交换方法,包括:
向服务器发送数据请求;接收所述服务器发送的响应模型对象数据、发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;根据所述更新标志位解析所述响应模型对象数据,并进行数据更新,以及保存所述当前时间戳值。
本发明提供的基于时间戳的数据交换装置,包括:
判断模块,用于当检测到存储设备发生数据更新时,判断所述存储设备中是否有模型对象被删除;设置模块,用于根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;接收模块,用于接收客户端的数据请求,所述数据请求中包含各模型对象组的历史时间戳值;构造模块,用于根据模型对象的数据、所述历史时间戳值、所述当前时间戳值以及所述更新标志位构造响应模型对象数据;发送模块,用于将所述响应模型对象数据、所述当前时间戳值以及所述更新标志位发送给所述客户端。
本发明提供的基于时间戳的数据交换装置,包括:
发送模块,用于向服务器发送数据请求;接收模块,用于接收所述服务器发送的响应模型对象数据,发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;解析模块,用于根据所述更新标志位,解析所述响应模型对象数据;更新模块,用于进行数据更新;保存模块,用于保存所述当前时间戳值。
本发明提供的基于时间戳的数据交换***,包括:
服务器,客户端以及存储设备;其中,所述服务器,用于当检测到所述存储设备发生数据更新时,判断所述存储设备中是否有模型对象被删除;根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;接收所述客户端的数据请求,所述数据请求中包含各模型对象组的历史时间戳值;根据模型对象的数据、所述历史时间戳值、所述当前时间戳值以及所述更新标志位构造响应模型对象数据,并将所述响应模型对象数据、所述当前时间戳值以及所述更新标志位发送给所述客户端;所述客户端,用于向服务器发送数据请求;接收所述服务器发送的响应模型对象数据、发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;根据所述更新标志位,解析所述响应模型对象数据,并进行数据更新,以及保存所述当前时间戳值。
从上述本发明实施例可知,本发明通过,相较于现有技术,本发明可通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的基于时间戳的数据交换***的结构示意图;
图2是本发明第二实施例提供的基于时间戳的数据交换方法的实现流程示意图;
图3是本发明第三实施例提供的基于时间戳的数据交换方法的实现流程示意图;
图4是本发明第四实施例提供的基于时间戳的数据交换方法的实现流程示意图;
图5是本发明第五实施例以及第六实施例提供的基于时间戳的数据交换装置的结构示意图;
图6是本发明第七实施例提供的基于时间戳的数据交换装置的结构示意图;
图7是本发明第八实施例提供的基于时间戳的数据交换装置的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明第一实施例提供的基于时间戳的数据传输***结构示意图。该***包括:服务器10(server)、客户端20(client)以及存储设备30。
具体地,该***按结构可分为三层:设备层,服务器层,客户端层,其中,设备层包括多个存储设备30,客户端层包括多个客户端20。设备层和服务器10之间的通讯使用命令行界面(cli,command-line interface)方式,服务器层和客户端层之间的通讯使用可扩展标记语言(XML,Extensible Markup Language)方式,网络通讯协议使用传输控制协议(TCP,Transmission Control Protocol)和简单网络管理协议(SNMP,Simple NetworkManagement Protocol),服务器和每个客户端都在内存中保有对象模型数据,客户端20会定期向服务器10请求数据更新。
其中,服务器10,用于当检测到存储设备30发生数据更新时,判断存储设备30中是否有模型对象被删除,根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳(TS,Time Stamp)值,接收客户端20发送的数据请求,该数据请求中包含客户端20记录的各模型对象组的历史时间戳值,并根据模型对象的数据、该历史时间戳值、该当前时间戳值以及该更新标志位构造响应模型对象数据,并将该响应模型对象数据、该当前时间戳值以及该更新标志位发送给客户端20。
需要说明的是,该模型对象是指存储设备中不同类的存储单元,该模型对象组是指同类的模型对象的集合。例如,存储阵列中有VDisk,POOL和RAID,每个VDisk,POOL和RAID都称作一个模型对象,每一类的所有模型对象合起来分别记作VDiskList,POOLList和RAIDList,分别称作VDisk模型对象组,POOL模型对象组和RAID模型对象组。
时间戳是一个整型值,唯一地标识某一刻的时间。服务器10在管理多个存储设备30时,需要在内存中保存多个存储设备30的模型数据,每个模型对象都附加一个时间戳属性,每个同类模型对象组也附有一个时间戳属性。例如,对于存储阵列上的逻辑卷模型对象(VDisk),每个逻辑卷模型对象有个时间戳属性,作为同类的所有逻辑卷模型对象组(记作VDiskList)也有一个时间戳属性。***运行过程中,服务器10和客户端30通过时间戳来确定哪些模型对象的数据需要更新。
该历史时间戳值即为上一次进行数据交换后在客户端20保存的时间戳值,与上一次数据交换后服务器10保存的时间戳值相同,该历史时间戳值是服务器10发送给客户端20的。
进一步地,根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的时间戳值,具体为,若判断结果为有模型对象被删除,则设置发生数据更新的模型对象所在的模型对象组的更新标志位(refresh)为1,表示需要刷新所有模型对象的数据,并将发生数据更新的模型对象及其所在模型对象组的时间戳值均设置为0作为该当前时间戳值。例如,模型对象组VDiskList中的一个模型对象VDisk被删除了,则设置模型对象组VDiskList的refresh标志位为1,并且将模型对象组VDiskList及所有模型对象VDisk的TS值设置为0并作为该当前时间戳值。若判断结果为没有模型对象被删除,则设置发生数据更新的模型对象所在的模型对象组的更新标志位为0,并将发生数据更新的模型对象所在的模型对象组的时间戳值增加1作为该当前时间戳值,以及,将发生数据更新的模型对象的时间戳值设置为该当前时间戳值,即发生数据更新的模型对象及其所在的模型对象组的时间戳值都增加1后作为该当前时间戳。例如一个模型对象VDisk发生了数据更新,将该模型对象VDisk所在的模型对象组VDiskList的TS值加1作为当前TS值,并设置TSVDisk=TSVDiskList,即,模型对象VDisk和模型对象组VDiskList的当前TS值都是增加后的TS值。
进一步地,为了利用时间戳让服务器10只传送最新的数据,当客户端20向服务器10请求最新的数据时,客户端20在数据请求中加入客户端20自身保存的各模型对象组的历史时间戳值发送给服务器10。服务器10根据模型对象的数据、该历史时间戳值、该当前时间戳值以及该更新标志位构造响应模型对象数据,具体地,若该更新标志位为0,则选择当前时间戳值大于该历史时间戳值的模型对象的数据构造为响应模型对象数据的XML文本,例如,客户端20的数据请求中模型对象组VDiskList的时间戳值为5,而服务器10中模型对象组VDiskList的时间戳值为9,则将服务器10的模型对象VDisk中所有时间戳值大于5的都加入到响应模型对象数据中,并将模型对象组VDiskList的时间戳值9发送给客户端20。
若该更新标志位为1,表示有模型对象被删除,则需要将所有模型对象的数据发送给客户端20,因此,将所有模型对象的数据构造为响应模型对象数据的XML文本。并将该更新标志位1,以及发生数据更新的模型对象及其所在模型对象组的时间戳值0都发送给客户端20。
与服务器10相对应的数据交换对端设备客户端20,用于向服务器10发送数据请求,该数据请求中包含客户端20自身记录的各模型对象组的历史时间戳值,并接收服务器10发送的响应模型对象数据、发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及,发生数据更新的模型对象所在的模型对象组的更新标志位,根据该更新标志位解析该响应模型对象数据,并进行数据更新,以及保存该当前时间戳值。
进一步地,根据该更新标志位,解析该响应模型对象数据,并进行数据更新包括:
若该更新标志位为0,则解析该响应模型对象数据以获取响应模型对象数据的XML文本,并根据该XML文本进行对应的数据更新,即,对应将模型对象数据进行更新。例如,模型对象VDisk发生数据更新,则对应更新VDisk的数据即可。此时,保存的该当前时间戳值比之前保存的该历史时间戳值大1。
若该更新标志位为1,则清除内存模型中对应的模型对象组中的所有模型对象的数据,解析该响应模型对象数据以获取响应模型对象数据的XML文本,以及,根据该XML文本将发生数据更新的模型对象的数据加入该对应的模型对象组中。此时,保存的该当前时间戳值为0。
本发明实施例中,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
请参阅图2,图2为本发明第二实施例提供的基于时间戳的数据交换方法的实现流程示意图,主要包括以下步骤S201至步骤S204:
S201、当检测到存储设备发生数据更新时,判断该存储设备中是否有模型对象被删除;
该模型对象是指存储设备中不同类的存储单元,该模型对象组是指同类的模型对象的集合。例如,存储阵列中有VDisk,POOL和RAID,每个VDisk,POOL和RAID都称作一个模型对象,每一类的所有模型对象合起来分别记作VDiskList,POOLList和RAIDList,分别称作VDisk模型对象组,POOL模型对象组和RAID模型对象组。
当检测到存储设备发生数据更新时,判断该存储设备中是否有模型对象被删除,即,是否有VDisk、POOL、RAID等模型对象是否被删除。
S202、根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;
不同的判断结果对应不同的设置。通过设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,可确定哪个模型对象发生了数据更新。
S203、接收客户端的数据请求,该数据请求中包含各模型对象组的历史时间戳值;
该数据请求用于请求服务器上的最新数据。该历史时间戳值即为上一次进行数据交换后在客户端保存的时间戳值,与上一次数据交换后服务器保存的时间戳值相同,该历史时间戳值是服务器发送给客户端的。
S204、根据模型对象的数据、该历史时间戳值、该当前时间戳值以及该更新标志位构造响应模型对象数据,并将该响应模型对象数据、该当前时间戳值以及该更新标志位发送给该客户端。
模型对象的数据是指更新后的模型对象的数据。响应模型对象数据是指响应客户端的要求发送给客户端的与更新数据相关的模型对象的数据。将构造成的该响应模型对象数据、该当前时间戳值以及该更新标志位发送给该客户端,使得客户端根据该当前时间戳值以及该更新标志位解析该响应模型对象数据,并据其完成更新,以及保存该当前时间戳值,那么该当前时间戳值即为下一次客户端向服务器请求数据时的历史时间戳值。
本发明实施例,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
请参阅图3,图3为本发明第三实施例提供的基于时间戳的数据交换方法的实现流程示意图,主要包括以下步骤S301至步骤S304:
S301、当检测到存储设备发生数据更新时,判断该存储设备中是否有模型对象被删除;
当检测到存储设备发生数据更新时,判断该存储设备中是否有模型对象被删除,即,是否有VDisk、POOL、RAID等模型对象是否被删除。
S302、根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;
具体地,若判断结果为有模型对象被删除,则设置发生数据更新的模型对象所在的模型对象组的更新标志位(refresh)为1,表示需要刷新所有模型对象的数据,并将发生数据更新的模型对象及其所在模型对象组的时间戳值均设置为0作为该当前时间戳值。
若判断结果为没有模型对象被删除,则设置发生数据更新的模型对象所在的模型对象组的更新标志位为0,并将发生数据更新的模型对象所在的模型对象组的时间戳值增加1作为该当前时间戳值,以及,将发生数据更新的模型对象的时间戳值设置为该当前时间戳值。即,发生数据更新的模型对象及其所在的模型对象组的时间戳值都增加1后作为该当前时间戳。
S303、接收客户端的数据请求,该数据请求中包含各模型对象组的历史时间戳值;
为了利用时间戳让服务器只传送最新的数据,当客户端向服务器请求最新的数据时,客户端在数据请求中加入客户端自身保存的各模型对象组的历史时间戳值发送给服务器。
S304、若该更新标志位为0,则选择当前时间戳值大于该历史时间戳值的模型对象的数据构造为响应模型对象数据的可扩展标记语言文本,若该更新标志位为1,则将所有模型对象的数据构造为响应模型对象数据的可扩展标记语言文本,并将该响应模型对象数据、该当前时间戳值以及该更新标志位发送给该客户端。
服务器根据模型对象的数据、该历史时间戳值、该当前时间戳值以及该更新标志位构造响应模型对象数据,具体地,若该更新标志位为0,则选择当前时间戳值大于该历史时间戳值的模型对象的数据构造为响应模型对象数据的XML文本,并将该响应模型对象数据、该当前时间戳值以及该更新标志位发送给该客户端。
若该更新标志位为1,表示有模型对象被删除,则需要将所有模型对象的数据发送给客户端,因此,将所有模型对象的数据构造为响应模型对象数据的XML文本。并将该更新标志位1,以及发生数据更新的模型对象及其所在模型对象组的时间戳值0都发送给客户端。
本发明实施例,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
请参阅图4,图4为本发明第四实施例提供的基于时间戳的数据交换方法的实现流程示意图,主要包括以下步骤S401至步骤S403:
S401、向服务器发送数据请求;
客户端向服务器发送数据请求,该数据请求用于向该服务器请求最新数据。该数据请求中包含客户端自身记录的各模型对象组的历史时间戳值。
该历史时间戳值即为上一次进行数据交换后在客户端保存的时间戳值,与上一次数据交换后服务器保存的时间戳值相同,该历史时间戳值是服务器发送给客户端的。
S402、接收该服务器发送的响应模型对象数据、发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;
该响应模型对象数据包括更新后的数据。
S403、根据该更新标志位解析该响应模型对象数据,并进行数据更新,以及保存该当前时间戳值。
具体地,若该更新标志位为0,则解析该响应模型对象数据以获取响应模型对象数据的XML文本,并根据该响应模型对象数据的XML文本进行对应的数据更新。例如,模型对象VDisk发生数据更新,则对应更新VDisk的数据即可。此时,保存的该当前时间戳值比之前保存的该历史时间戳值大1。
若该更新标志位为1,则清除内存模型中对应的模型对象组中的所有模型对象的数据,并解析该响应模型对象数据以获取响应模型对象数据的XML文本,以及,根据该响应模型对象数据的XML文本将发生数据更新的模型对象的数据加入对应的模型对象组中。此时,保存的该当前时间戳值为0。
本发明实施例,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
请参阅图5,图5是本发明第五实施例提供的基于时间戳的数据交换装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图5示例的交换装置可以是前述图2所示实施例提供的基于时间戳的数据交换方法的执行主体。图5示例的基于时间戳的数据交换装置,主要包括:
判断模块501、设置模块502、接收模块503、构造模块504以及发送模块505。
以上各功能模块详细说明如下:
其中,判断模块501,用于当检测到存储设备发生数据更新时,判断该存储设备中是否有模型对象被删除;
设置模块502,用于根据判断模块501的判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;
接收模块503,用于接收客户端的数据请求,该数据请求中包含各模型对象组的历史时间戳值;
构造模块504,用于根据模型对象的数据、该历史时间戳值、该当前时间戳值以及该更新标志位构造响应模型对象数据;
发送模块505,用于将该响应模型对象数据、该当前时间戳值以及该更新标志位发送给该客户端。
本实施例未尽之细节,请参阅前述图1至图4所示实施例的描述,此处不再赘述。
需要说明的是,以上图5示例的基于时间戳的数据交换装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将基于时间戳的数据交换装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成;本说明书提供的各个实施例都可应用上述描述原则。
本发明实施例,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
仍请参阅图5,本发明第六实施例提供的基于时间戳的数据交换装置,主要包括:
判断模块501、设置模块502、接收模块503、构造模块504以及发送模块505。
以上各功能模块详细说明如下:
其中,判断模块501,用于当检测到存储设备发生数据更新时,判断该存储设备中是否有模型对象被删除;
设置模块502,用于根据判断模块501的判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;
接收模块503,用于接收客户端的数据请求,该数据请求中包含各模型对象组的历史时间戳值;
构造模块504,用于根据模型对象的数据、该历史时间戳值、该当前时间戳值以及该更新标志位构造响应模型对象数据;
发送模块505,用于将该响应模型对象数据、该当前时间戳值以及该更新标志位发送给该客户端。
进一步地,设置模块502,还用于若判断结果为有模型对象被删除,则设置该发生数据更新的模型对象所在的模型对象组的更新标志位为1,并将该发生数据更新的模型对象及其所在模型对象组的时间戳值均设置为0作为该当前时间戳值。
设置模块502,还用于若判断结果为没有模型对象被删除,则设置该发生数据更新的模型对象所在的模型对象组的更新标志位为0,并将该发生数据更新的模型对象所在的模型对象组的时间戳值增加1作为该当前时间戳值,以及,将该发生数据更新的模型对象的时间戳值设置为该当前时间戳值。
进一步地,构造模块504,还用于若该更新标志位为0,则选择当前时间戳值大于该历史时间戳值的模型对象的数据构造为响应模型对象数据的可扩展标记语言文本,若该更新标志位为1,则将所有模型对象的数据构造为响应模型对象数据的可扩展标记语言文本。
发送模块505,还用于将该响应模型对象数据的可扩展标记语言文本、该当前时间戳值以及该更新标志位发送给该客户端。
本实施例未尽之细节,请参阅前述图1至图5所示实施例的描述,此处不再赘述。
本发明实施例,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
请参阅图6,图6是本发明第七实施例提供的基于时间戳的数据交换装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图6示例的交换装置可以是前述图4所示实施例提供的基于时间戳的数据交换方法的执行主体。图6示例的基于时间戳的数据交换装置,主要包括:
发送模块601、接收模块602、解析模块603、更新模块604以及保存模块605。
以上各功能模块详细说明如下:
其中,发送模块601,用于向服务器发送数据请求;
接收模块602,用于接收该服务器发送的响应模型对象数据,发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;
解析模块603,用于根据该更新标志位,解析该响应模型对象数据;
更新模块604,用于进行数据更新;
保存模块605,用于保存该当前时间戳值。
本实施例未尽之细节,请参阅前述图1至图5所示实施例的描述,此处不再赘述。
本发明实施例,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
请参阅图7,图7是本发明第八实施例提供的基于时间戳的数据交换装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图6示例的交换装置可以是前述图7所示实施例提供的基于时间戳的数据交换方法的执行主体。图7示例的基于时间戳的数据交换装置,主要包括:
发送模块701、接收模块702、解析模块703、更新模块704、保存模块705以及清除模块706。
以上各功能模块详细说明如下:
其中,发送模块701,用于向服务器发送数据请求;
接收模块702,用于接收该服务器发送的响应模型对象数据,发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;
解析模块703,用于根据该更新标志位,解析该响应模型对象数据;
更新模块704,用于进行数据更新;
保存模块705,用于保存该当前时间戳值。
进一步地,解析模块703,还用于若该更新标志位为0,则解析该响应模型对象数据以获取响应模型对象数据的可扩展标记语言文本。
更新模块704,还用于根据该响应模型对象数据的可扩展标记语言文本进行对应的数据更新。
该装置还可以进一步包括:
清除模块706,用于若该更新标志位为1,则清除内存模型中对应的模型对象组中的所有模型对象的数据。
进一步地,更新模块704,还用于根据该响应模型对象数据的可扩展标记语言文本将发生数据更新的模型对象的数据加入对应的模型对象组中。
本实施例未尽之细节,请参阅前述图1至图6所示实施例的描述,此处不再赘述。
本发明实施例,通过根据数据更新时是否有模型对象被删除,区别设置发生数据更新的模型对象组的更新标志位,以及区别设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以此确定哪些模型对象的数据需要传送给客户端进行更新,从而减少无用数据的传输,提高速度,减少网络占用。并且由于过滤掉了大部分无用冗余数据,传输的都是关键数据,增加了开发及工程人员进行调试的便捷性。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种基于时间戳的数据交换方法、装置及***的描述,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种基于时间戳的数据交换方法,其特征在于,所述方法包括:
当检测到存储设备发生数据更新时,判断所述存储设备中是否有模型对象被删除;
根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;
接收客户端的数据请求,所述数据请求中包含各模型对象组的历史时间戳值;
根据模型对象的数据、所述历史时间戳值、所述当前时间戳值以及所述更新标志位构造响应模型对象数据,并将所述响应模型对象数据、所述当前时间戳值以及所述更新标志位发送给所述客户端;
所述根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值包括:
若判断结果为有模型对象被删除,则设置所述发生数据更新的模型对象所在的模型对象组的更新标志位为1,并将所述发生数据更新的模型对象及其所在模型对象组的时间戳值均设置为0作为所述当前时间戳值;
若判断结果为没有模型对象被删除,则设置所述发生数据更新的模型对象所在的模型对象组的更新标志位为0,并将所述发生数据更新的模型对象所在的模型对象组的时间戳值增加1作为所述当前时间戳值,以及,将所述发生数据更新的模型对象的时间戳值设置为所述当前时间戳值;
所述根据模型对象的数据、所述历史时间戳值、所述当前时间戳值以及所述更新标志位构造响应模型对象数据,并将所述响应模型对象数据、所述当前时间戳值以及所述更新标志位发送给所述客户端包括:
若所述更新标志位为0,则选择当前时间戳值大于所述历史时间戳值的模型对象的数据构造为响应模型对象数据的可扩展标记语言文本;若所述更新标志位为1,则将所有模型对象的数据构造为响应模型对象数据的可扩展标记语言文本,并将所述响应模型对象数据的可扩展标记语言文本、所述当前时间戳值以及所述更新标志位发送给所述客户端。
2.一种基于时间戳的数据交换方法,其特征在于,所述方法包括:
向服务器发送数据请求;
接收所述服务器发送的响应模型对象数据、发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;
根据所述更新标志位解析所述响应模型对象数据,并进行数据更新,以及保存所述当前时间戳值;
所述根据所述更新标志位解析所述响应模型对象数据,并进行数据更新包括:
若所述更新标志位为0,则解析所述响应模型对象数据以获取响应模型对象数据的可扩展标记语言文本,并根据所述响应模型对象数据的可扩展标记语言文本进行对应的数据更新;
若所述更新标志位为1,则清除内存模型中对应的模型对象组中的所有模型对象的数据,并解析所述响应模型对象数据以获取响应模型对象数据的可扩展标记语言文本,以及,根据所述响应模型对象数据的可扩展标记语言文本将发生数据更新的模型对象的数据加入对应的模型对象组中。
3.一种基于时间戳的数据交换装置,其特征在于,所述装置包括:
判断模块,用于当检测到存储设备发生数据更新时,判断所述存储设备中是否有模型对象被删除;
设置模块,用于若判断结果为有模型对象被删除,则设置所述发生数据更新的模型对象所在的模型对象组的更新标志位为1,并将所述发生数据更新的模型对象及其所在模型对象组的时间戳值均设置为0作为当前时间戳值;
所述设置模块,还用于若判断结果为没有模型对象被删除,则设置所述发生数据更新的模型对象所在的模型对象组的更新标志位为0,并将所述发生数据更新的模型对象所在的模型对象组的时间戳值增加1作为所述当前时间戳值,以及,将所述发生数据更新的模型对象的时间戳值设置为所述当前时间戳值;
接收模块,用于接收客户端的数据请求,所述数据请求中包含各模型对象组的历史时间戳值;
构造模块,用于若所述更新标志位为0,则选择当前时间戳值大于所述历史时间戳值的模型对象的数据构造为响应模型对象数据的可扩展标记语言文本;若所述更新标志位为1,则将所有模型对象的数据构造为响应模型对象数据的可扩展标记语言文本;
发送模块,用于将所述响应模型对象数据的可扩展标记语言文本、所述当前时间戳值以及所述更新标志位发送给所述客户端。
4.一种基于时间戳的数据交换装置,其特征在于,所述装置包括:
发送模块,用于向服务器发送数据请求;
接收模块,用于接收所述服务器发送的响应模型对象数据,发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;
解析模块,用于若所述更新标志位为0,则解析所述响应模型对象数据以获取响应模型对象数据的可扩展标记语言文本;
更新模块,用于根据所述响应模型对象数据的可扩展标记语言文本进行对应的数据更新;以及,
用于根据所述响应模型对象数据的可扩展标记语言文本将发生数据更新的模型对象的数据加入对应的模型对象组中;
保存模块,用于保存所述当前时间戳值;
清除模块,用于若所述更新标志位为1,则清除内存模型中对应的模型对象组中的所有模型对象的数据。
5.一种基于时间戳的数据交换***,其特征在于,所述***包括:
服务器,客户端以及存储设备;
其中,所述服务器,用于当检测到所述存储设备发生数据更新时,判断所述存储设备中是否有模型对象被删除;根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值;接收所述客户端的数据请求,所述数据请求中包含各模型对象组的历史时间戳值;根据模型对象的数据、所述历史时间戳值、所述当前时间戳值以及所述更新标志位构造响应模型对象数据,并将所述响应模型对象数据、所述当前时间戳值以及所述更新标志位发送给所述客户端;
所述根据判断结果,设置发生数据更新的模型对象所在的模型对象组的更新标志位,以及,设置发生数据更新的模型对象及其所在模型对象组的当前时间戳值包括:
若判断结果为有模型对象被删除,则设置所述发生数据更新的模型对象所在的模型对象组的更新标志位为1,并将所述发生数据更新的模型对象及其所在模型对象组的时间戳值均设置为0作为所述当前时间戳值;
若判断结果为没有模型对象被删除,则设置所述发生数据更新的模型对象所在的模型对象组的更新标志位为0,并将所述发生数据更新的模型对象所在的模型对象组的时间戳值增加1作为所述当前时间戳值,以及,将所述发生数据更新的模型对象的时间戳值设置为所述当前时间戳值;
所述根据模型对象的数据、所述历史时间戳值、所述当前时间戳值以及所述更新标志位构造响应模型对象数据,并将所述响应模型对象数据、所述当前时间戳值以及所述更新标志位发送给所述客户端包括:
若所述更新标志位为0,则选择当前时间戳值大于所述历史时间戳值的模型对象的数据构造为响应模型对象数据的可扩展标记语言文本;若所述更新标志位为1,则将所有模型对象的数据构造为响应模型对象数据的可扩展标记语言文本,并将所述响应模型对象数据的可扩展标记语言文本、所述当前时间戳值以及所述更新标志位发送给所述客户端;
所述客户端,用于向服务器发送数据请求;接收所述服务器发送的响应模型对象数据、发生数据更新的模型对象及其所在模型对象组的当前时间戳值,以及发生数据更新的模型对象所在的模型对象组的更新标志位;根据所述更新标志位,解析所述响应模型对象数据,并进行数据更新,以及保存所述当前时间戳值;
所述根据所述更新标志位解析所述响应模型对象数据,并进行数据更新包括:
若所述更新标志位为0,则解析所述响应模型对象数据以获取响应模型对象数据的可扩展标记语言文本,并根据所述响应模型对象数据的可扩展标记语言文本进行对应的数据更新;
若所述更新标志位为1,则清除内存模型中对应的模型对象组中的所有模型对象的数据,并解析所述响应模型对象数据以获取响应模型对象数据的可扩展标记语言文本,以及,根据所述响应模型对象数据的可扩展标记语言文本将发生数据更新的模型对象的数据加入对应的模型对象组中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510953589.1A CN105553722B (zh) | 2015-12-16 | 2015-12-16 | 一种基于时间戳的数据交换方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510953589.1A CN105553722B (zh) | 2015-12-16 | 2015-12-16 | 一种基于时间戳的数据交换方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105553722A CN105553722A (zh) | 2016-05-04 |
CN105553722B true CN105553722B (zh) | 2019-01-08 |
Family
ID=55832662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510953589.1A Active CN105553722B (zh) | 2015-12-16 | 2015-12-16 | 一种基于时间戳的数据交换方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553722B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106198362A (zh) * | 2016-08-31 | 2016-12-07 | 南京理工大学 | 远程多点激光尘埃粒子计数器*** |
CN107154957A (zh) * | 2016-12-29 | 2017-09-12 | 贵州电网有限责任公司铜仁供电局 | 基于虚拟环负载均衡算法的分布式存储控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364163A (zh) * | 2007-08-07 | 2009-02-11 | 英业达股份有限公司 | 一种逻辑卷创建***及其方法 |
CN101853217A (zh) * | 2009-03-30 | 2010-10-06 | 富士通株式会社 | 缓存控制装置、信息处理装置和计算机可读记录介质 |
CN102314322A (zh) * | 2011-07-01 | 2012-01-11 | 杭州华三通信技术有限公司 | 一种基于raid阵列的数据处理方法和设备 |
CN103885718A (zh) * | 2012-12-21 | 2014-06-25 | 刘庆国 | 一种基于lvm的镜像磁盘增量同步方法 |
CN104657089A (zh) * | 2015-03-13 | 2015-05-27 | 浪潮集团有限公司 | 一种对象存储设备上的放置组的统一管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319525A1 (en) * | 2008-06-23 | 2009-12-24 | Microsoft Corporation | Lost write protection via stream-based replication |
-
2015
- 2015-12-16 CN CN201510953589.1A patent/CN105553722B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364163A (zh) * | 2007-08-07 | 2009-02-11 | 英业达股份有限公司 | 一种逻辑卷创建***及其方法 |
CN101853217A (zh) * | 2009-03-30 | 2010-10-06 | 富士通株式会社 | 缓存控制装置、信息处理装置和计算机可读记录介质 |
CN102314322A (zh) * | 2011-07-01 | 2012-01-11 | 杭州华三通信技术有限公司 | 一种基于raid阵列的数据处理方法和设备 |
CN103885718A (zh) * | 2012-12-21 | 2014-06-25 | 刘庆国 | 一种基于lvm的镜像磁盘增量同步方法 |
CN104657089A (zh) * | 2015-03-13 | 2015-05-27 | 浪潮集团有限公司 | 一种对象存储设备上的放置组的统一管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105553722A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038162B (zh) | 基于数据库日志的实时数据查询方法和*** | |
CN109271412A (zh) | 智慧城市的实时流数据处理方法及*** | |
CN107544837B (zh) | 云服务设备性能数据采集***、方法和装置 | |
CN102291416A (zh) | 一种客户端与服务器端双向同步的方法及*** | |
CN109788020A (zh) | 一种坐席分配方法及相关设备 | |
CA3065118A1 (en) | Distributed searching and index updating method and system, servers, and computer devices | |
CN109213792A (zh) | 数据处理的方法、服务端、客户端、装置及可读存储介质 | |
CN103118130A (zh) | 一种用于分布式服务的集群管理方法和*** | |
CN103324715B (zh) | 一种灾备***可用性检测方法及装置 | |
CN104219298B (zh) | 集群***及其数据备份的方法 | |
CN109040183A (zh) | 节点信息获取方法、装置、设备及计算机可读存储介质 | |
JPWO2008056670A1 (ja) | 資源情報提供システム、方法、資源情報提供装置、およびプログラム | |
CN106161103B (zh) | 交换机拓扑构建方法及装置 | |
US8954576B2 (en) | Test analysis system of network and analysis method thereof | |
CN106713497A (zh) | 一种服务器端消息推送装置、方法及消息推送*** | |
CN105302709B (zh) | 测试数据生成方法及设备 | |
CN109766242A (zh) | 基于移动用户端的监控方法、装置、***及存储介质 | |
CN101815013A (zh) | 一种基于Ajax和Web服务技术的卫星应用***运行监控方法 | |
CN104394011A (zh) | 一种通过告警信息支持服务器虚拟化运维的方法 | |
CN114791846A (zh) | 一种针对云原生混沌工程实验实现可观测性的方法 | |
CN105553722B (zh) | 一种基于时间戳的数据交换方法、装置及*** | |
CN102902746A (zh) | 一种海量数据处理方法、装置及*** | |
US20160308871A1 (en) | Network element data access method and apparatus, and network management system | |
CN109525466A (zh) | 数据节点监听方法及装置 | |
CN104410657B (zh) | 分布式中央监护***中的数据发送方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |