智能电器及在其与云端之间实现业务数据一致性的方法与流程

文档序号:14072545阅读:303来源:国知局

本发明涉及计算机及其软件技术领域,特别地涉及一种在智能电器和云端之间实现业务数据一致性的方法以及与云端保持业务数据一致的智能电器。



背景技术:

现代智能硬件系统中,智能硬件数据(如设备状态、业务数据)一般会存在硬件(设备)端,同时在智能云端(服务端)也会存储,以便用户在设备离线(即断网,不与云端相连)时使用此类数据。例如,用户可能会通过手机app(应用程序)设置一个智能微波炉的菜谱,该菜谱数据首先会被发送到云端,然后云端将该菜谱数据发送给智能设备(硬件端),同时云端会存储这些数据。此外,用户也可以直接在智能设备上设置此类业务数据,再将设置好的业务数据上报至云端,用户随后可在手机app上查看和维护这些业务数据(如菜谱数据)。

以上的使用场景就会提出了分布式数据存储的问题,即云端和智能设备端数据不一致的问题。例如,用户在云端设置了业务数据,并且云端将业务数据下发到智能设备上,智能设备接收成功,但响应给云端时超时,那么,云端会通知用户业务数据下发到智能设备端失败,用户可能会撤回这条操作,相应地,云端也就会丢弃这条业务数据,但是此时智能设备已经保存了该条业务数据,这样,云端和智能设备端二端数据就不一致了。

通常情况下,由于智能硬件网络环境的复杂性,很容易造成系统分布式数据不一致。目前的技术方案一般不支持二端的数据同步,通常数据以硬件端(智能设备端)为准,云端只存储数据备份,或从硬件端(智能设备端)拉取设备快照。由于云端和智能设备端二端数据的不同步,使得用户体验较差。



技术实现要素:

有鉴于此,本发明提供一种在智能电器和云端之间实现业务数据一致性的方法以及与云端保持业务数据一致的智能电器,能够实现智能电器和云端数据的一致性,即用户无论是在智能电器端还是云端(通过手机app)对硬件的设置,二端上的业务数据最终可保持一致。

为实现上述目的,根据本发明的一个方面,提供了一种在智能电器和云端之间实现业务数据一致性的方法。

一种在智能电器和云端之间实现业务数据一致性的方法,所述业务数据包括数据内容、数据来源和版本号,所述方法包括:当用户在智能电器设置或更新业务数据,该智能电器执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为智能电器,并且保存设置或更新的业务数据,当用户在云端设置或更新业务数据,该云端执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为云端,并把设置或更新的数据发送给所述智能电器,其中在发送成功时,所述智能电器接收并保存设置或更新的业务数据,当所述智能电器与所述云端连接时,该智能电器按照设定的频率向所述云端发送保存的业务数据的快照,所述快照包括所述智能电器保存的业务数据的数据来源和版本号,所述云端把接收的快照与该云端存储的业务数据进行比较以判断一致性,其中当接收的快照与该云端存储的业务数据的数据来源和版本号都相同时,则判定数据一致,当数据来源相同而版本号不同,则用该数据来源对应的所述智能电器和所述云端二者之一的当前业务数据更新另外一者的业务数据,当数据来源不同,则用所述智能电器和所述云端二者中的当前业务数据的版本号较大者的业务数据更新另外一者的业务数据。

可选地,所述用户、所述智能电器和所述云端彼此之间以有线或无线方式通信。

可选地,所述用户利用客户端设备通过因特网访问所述智能电器或所述云端并设置或更新业务数据。

可选地,所述用户利用手机app在所述智能电器或所述云端设置或更新业务数据。

可选地,所述用户在所述智能电器的输入装置上设置或更新业务数据。

可选地,当所述云端把设置或更新的数据发送给所述智能电器时,如发送不成功,所述云端进行数据回滚。

根据本发明的另一方面,提供了一种与云端保持业务数据一致的智能电器。

一种与云端保持业务数据一致的智能电器,所述业务数据包括数据内容、数据来源和版本号,所述智能电器包括:输入装置,用于接收用户输入;通信装置,用于实现与所述云端和用户的通信连接;存储装置,用于存储所述业务数据;处理装置;其中,当用户通过所述输入装置或通信连接在该智能电器设置或更新业务数据,则所述处理装置执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为智能电器,并且把设置或更新的业务数据保存在所述存储装置,其中,当用户在云端设置或更新业务数据,该云端执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为云端并把设置或更新的数据发送给所述智能电器,其中在发送成功时,所述智能电器接收并保存设置或更新的业务数据,当所述智能电器与所述云端有通信连接时,所述处理装置按照设定的频率向所述云端发送保存的业务数据的快照,所述快照包括所述智能电器保存的业务数据的数据来源和版本号,其中,所述云端把接收的快照与该云端存储的业务数据进行比较以判断一致性,其中当接收的快照与该云端存储的业务数据的数据来源和版本号都相同时,则判定数据一致,当数据来源相同而版本号不同,则用该数据来源对应的所述智能电器和所述云端二者之一的当前业务数据更新另外一者的业务数据,当数据来源不同,则用所述智能电器和所述云端二者中的当前业务数据的版本号较大者的业务数据更新另外一者的业务数据。

可选地,所述通信装置用于实现与所述云端和用户的有线或无线通信。

可选地,所述用户利用客户端设备通过因特网访问所述智能电器或所述云端并设置或更新业务数据。

可选地,所述用户利用手机app在所述智能电器或所述云端设置或更新业务数据。

可选地,所述输入装置用于用户在所述智能电器上设置或更新业务数据。

可选地,当所述云端把设置或更新的数据发送给所述智能电器时,如发送不成功,所述云端进行数据回滚。

根据本发明的技术方案,当用户在智能电器设置或更新业务数据,该智能电器执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为智能电器,并且保存设置或更新的业务数据,当用户在云端设置或更新业务数据,该云端执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为云端,并把设置或更新的数据发送给智能电器,其中在发送成功时,智能电器接收并保存设置或更新的业务数据,当智能电器与云端连接时,该智能电器按照设定的频率向云端发送保存的业务数据的快照,快照包括智能电器保存的业务数据的数据来源和版本号,云端把接收的快照与该云端存储的业务数据进行比较以判断一致性,其中当接收的快照与该云端存储的业务数据的数据来源和版本号都相同时,则判定数据一致,当数据来源相同而版本号不同,则用该数据来源对应的智能电器和云端二者之一的当前业务数据更新另外一者的业务数据,当数据来源不同,则用智能电器和云端二者中的当前业务数据的版本号较大者的业务数据更新另外一者的业务数据。使用本发明的技术方案,能够实现智能电器和云端数据的一致性,即用户无论是在智能电器端还是云端(通过手机app)对硬件的设置,二端上的业务数据最终可保持一致。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的在智能电器和云端之间实现业务数据一致性的方法的主要步骤示意图;

图2是根据本发明实施例的用户端、智能电器端和云端之间的数据交互示意图;

图3是根据本发明实施例的与云端保持业务数据一致的智能电器的主要构成示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施例的在智能电器和云端之间实现业务数据一致性的方法的主要步骤示意图。

根据本发明实施例的在智能电器和云端之间实现业务数据一致性的方法主要包括步骤s11至步骤s13。其中,业务数据包括数据内容、数据来源和版本号。

步骤s11:当用户在智能电器设置或更新业务数据,该智能电器执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为智能电器,并且保存设置或更新的业务数据。

步骤s12:当用户在云端设置或更新业务数据,该云端执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为云端,并把设置或更新的数据发送给智能电器,其中在发送成功时,智能电器接收并保存设置或更新的业务数据。

其中,当云端把设置或更新的数据发送给智能电器时,如发送不成功,云端进行数据回滚。

步骤s13:当智能电器与云端连接时,该智能电器按照设定的频率向云端发送保存的业务数据的快照,快照包括智能电器保存的业务数据的数据来源和版本号,云端把接收的快照与该云端存储的业务数据进行比较以判断一致性。

其中,当接收的快照与该云端存储的业务数据的数据来源和版本号都相同时,则判定数据一致,当数据来源相同而版本号不同,则用该数据来源对应的智能电器和云端二者之一的当前业务数据更新另外一者的业务数据,当数据来源不同,则用智能电器和云端二者中的当前业务数据的版本号较大者的业务数据更新另外一者的业务数据。

用户、智能电器和云端彼此之间可以以有线或无线方式通信。

用户可利用客户端设备通过因特网访问智能电器或云端并设置或更新业务数据,具体地,用户可利用手机app在智能电器或云端设置或更新业务数据。

用户也可以在智能电器的输入装置上设置或更新业务数据。

图2示出了本发明实施例的用户端、智能电器端和云端之间的数据交互示意图。其中,用户端可以是手机app。智能电器可以是带有处理装置(处理器)并具有通信功能的微波炉、电冰箱、洗衣机、空调、电动窗帘等电器。

下面根据图2所示的交互示意图,对用户端、智能电器端和云端之间的数据交互进行详细地介绍。

用户可以通过手机app等用户端在云端设置或更新业务数据,例如,用户可在手机app界面设置或更新业务数据,然后上传到云端进行保存。云端在对用户设置或更新的业务数据进行保存的同时,把数据来源设为云端,并将云端业务数据的版本号累加1,具体地,云端可预先设置一个业务数据版本号的初始值,例如0,当云端上的业务数据有更新时,将更新后的业务数据的版本号在原有版本号的基础上累加1。然后,云端将更新后的业务数据下发到智能电器端,如果云端下发数据成功,则智能电器端保存并更新业务数据,同时将更新后的自身业务数据的版本号也累加1,如果云端下发数据失败,则云端进行数据回滚,即,云端恢复为更新之前的业务数据。例如,假设业务数据为空调温度数据,当前云端保存的空调温度为20摄氏度,且数据版本号为1,当用户通过app等将云端空调温度设置为30摄氏度时,则云端存储的空调温度更新为30摄氏度,并且版本号变为2,云端下发更新后的空调温度数据,如果下发失败,则云端进行数据回滚,即,将保存的空调温度恢复为原来的20摄氏度,且版本号回复为原来的版本号1。下发失败的情况,可以是云端因网络原因没有将数据下发到智能电器端的情况,也可以是云端已将数据下发到智能电器端,并且智能电器端已成功更新了数据,但因网络闪断等原因,云端未收到智能电器端返回的功能响应,导致云端认为数据下发失败的情况。

用户也可以直接操作智能电器来设置或更新业务数据,例如,用户直接在智能电器的输入装置(如操作面板)上设置或更新业务数据,并进行保存。智能电器在对用户设置或更新的业务数据进行保存的同时,把数据来源设为智能电器,并将智能电器端业务数据的版本号累加1,具体地,智能电器可预先设置一个业务数据版本号的初始值,例如0,当智能电器中的业务数据有更新时,将更新后的业务数据的版本号在原有版本号的基础上累加1。然后,智能电器将根据该在线情况(即与云端建立通信连接的情况)决定是否向云端上报更新后的业务数据,如果智能电器当前在线(即与云端建立通信连接),则向云端上报该业务数据,否则,等待在线时再上报。

在某种情况下,例如云端下发数据失败或者智能电器端上报数据失败,则会造成二端数据的不一致,为此,智能电器端与云端之间基于数据快照上报机制来解决二端数据的一致性问题。该机制不追求二端数据的强一致性(即数据的实时一致性),而是主要关注于数据的弱一致性,即,只要智能电器正常在线,二端数据将保证数据的最终一致。

下面将详细介绍数据快照上报机制的具体实现方法。当智能电器与云端建立通信连接时,智能电器将当前保存的业务数据的快照上传到云端,并且,只要智能电器保持在线(即与云端保持通信连接),也可定时上报该快照。快照具体包括智能电器保存的业务数据的数据来源和版本号,还包括业务数据的具体内容。并且,上报快照可以以设定的频率上报,例如每隔五分钟上报一次,上报的具体频率与智能电器自身的设备属性相关,智能电器端可以自定义。云端接收到上报的快照之后,将该快照与该云端存储的业务数据进行比较以判断二端(智能电器端和云端)数据的一致性。具体地,按照快照和云端的业务数据的数据来源和版本号顺次进行比较,当快照与云端的业务数据的数据来源和版本号都相同时,则判定二端数据一致。当数据来源相同而版本号不同时,则以数据来源的业务数据为准,即,如果业务数据都来源于云端,则云端再次下发保存的业务数据到智能电器,以便智能电器将自身的业务数据更新为与云端一致,如果业务数据都来源于智能电器,则云端根据快照中的数据更新自身的业务数据,以便与智能电器端数据一致。当数据来源不同时,则比较快照与云端的业务数据的版本号,并以二者之中版本号较高者为准,即,如果快照中的业务数据版本号较高,则更新云端业务数据,否则,云端下发数据到智能电器,以便智能电器中的业务数据更新为与云端一致的数据。

图3是根据本发明实施例的与云端保持业务数据一致的智能电器的主要构成示意图。其中,业务数据包括数据内容、数据来源和版本号。

如图3所示,本发明实施例的与云端保持业务数据一致的智能电器30主要包括:输入装置31、通信装置32、存储装置33、处理装置34。

其中,输入装置31用于接收用户输入;通信装置32用于实现与云端和用户的通信连接;存储装置33用于存储业务数据。并且,当用户通过输入装置31或通信连接在该智能电器30设置或更新业务数据,则处理装置34执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为智能电器30,并且把设置或更新的业务数据保存在存储装置33,其中,当用户在云端设置或更新业务数据,该云端执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为云端并把设置或更新的数据发送给智能电器30,其中在发送成功时,智能电器30接收并保存设置或更新的业务数据。

当智能电器30与云端有通信连接时,处理装置34按照设定的频率向云端发送保存的业务数据的快照,快照包括智能电器30保存的业务数据的数据来源和版本号,其中,云端把接收的快照与该云端存储的业务数据进行比较以判断一致性,其中当接收的快照与该云端存储的业务数据的数据来源和版本号都相同时,则判定数据一致,当数据来源相同而版本号不同,则用该数据来源对应的智能电器30和云端二者之一的当前业务数据更新另外一者的业务数据,当数据来源不同,则用智能电器30和云端二者中的当前业务数据的版本号较大者的业务数据更新另外一者的业务数据。

通信装置32可用于实现与云端和用户的有线或无线通信。

用户可利用客户端设备通过因特网访问智能电器30或云端并设置或更新业务数据。并且,具体地,用户可利用手机app在智能电器30或云端设置或更新业务数据。

输入装置31可用于用户在智能电器30上设置或更新业务数据。

当云端把设置或更新的数据发送给智能电器30时,如发送不成功,云端进行数据回滚。

根据本发明实施例的技术方案,当用户在智能电器设置或更新业务数据,该智能电器执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为智能电器,并且保存设置或更新的业务数据,当用户在云端设置或更新业务数据,该云端执行如下动作:如果是初始设置,则把版本号设置为0,否则把版本号递增1,把数据来源设为云端,并把设置或更新的数据发送给智能电器,其中在发送成功时,智能电器接收并保存设置或更新的业务数据,当智能电器与云端连接时,该智能电器按照设定的频率向云端发送保存的业务数据的快照,快照包括智能电器保存的业务数据的数据来源和版本号,云端把接收的快照与该云端存储的业务数据进行比较以判断一致性,其中当接收的快照与该云端存储的业务数据的数据来源和版本号都相同时,则判定数据一致,当数据来源相同而版本号不同,则用该数据来源对应的智能电器和云端二者之一的当前业务数据更新另外一者的业务数据,当数据来源不同,则用智能电器和云端二者中的当前业务数据的版本号较大者的业务数据更新另外一者的业务数据。使用本发明实施例的技术方案,能够实现智能电器和云端数据的一致性,即用户无论是在智能电器端还是云端(通过手机app)对硬件的设置,二端上的业务数据最终可保持一致。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1