一种设备状态同步的方法及公共能力组件与流程

文档序号:25992141发布日期:2021-07-23 21:04阅读:137来源:国知局
一种设备状态同步的方法及公共能力组件与流程

本申请涉及通信领域,尤其涉及一种设备状态同步的方法及公共能力组件。



背景技术:

物联网(internetofthings,iot)系统可以由平台、网关、设备以及应用组成,如图1所示,图1是应用、公共能力组件(commonservicesentity,cse)和设备的交互流程示意图。其中,cse是物联网系统定义的公共能力组件。

当应用想要更新设备的实际状态时,首先发送资源更新请求到cse来更新设备的表征状态,cse更新资源状态成功以后向应用返回更新成功响应。设备通过轮询或者订阅的方式监听资源的变化。图2中采用订阅通知的方法,即设备订阅资源的变化,如果资源发生变化,cse将发送通知给设备,该通知中包含资源变化以后的最新状态。当设备收到通知,检测到资源变化时,先向cse返回收到通知的响应,通过本地的硬件驱动或者接口更新设备的实际状态。

但是,cse每次只能允许一个应用更新资源,而且,当cse收到应用发送的资源更新请求时,会锁定资源,拒绝其他请求,降低系统的可用性。



技术实现要素:

本申请实施例提供了一种设备状态同步的方法,用于公共能力组件完成设备表征状态和实际状态的同步,提高处理效率。

有鉴于此,本申请实施例第一方面提供了一种设备状态同步的方法,可以包括:公共能力组件接收应用发送的第一表征状态实例资源创建请求,该第一表征状态实例资源创建请求可以包括设备状态属性;可以理解的是,第一表征状态实例资源创建请求也可以称为更新表征状态资源请求。该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建第一表征状态实例资源;即公共能力组件上维护不止一个表征状态实例资源。该公共能力组件向设备发送设备状态更新请求,该设备状态更新请求中包含该设备状态属性;该公共能力组件接收该设备发送的实际状态实例资源创建请求;该公共能力组件根据该实际状态实例资源创建请求,创建实际状态实例资源;该公共能力组件向该应用发送实际状态资源创建成功的指示信息。

在本申请实施例中,公共能力组件可以维护多个表征状态实例资源,公共能力组件保存设备的表征状态资源和实际状态资源,负责和设备的实际状态之间的同步,提高处理效率。

可选的,在本申请的一些实施例中,该第一表征状态实例资源和该第二表征状态实例资源为表征状态资源的子资源;该表征状态资源可以包括:更新模式和时间模式;其中,该更新模式可以包括:序列状态或者最新状态;该时间模式包括:时刻模式、时长模式或者混合模式,该混合模式为该时刻模式加该时长模式。

更新模式为序列状态时,表示公共能力组件可以把应用对表征状态资源的请求逐个按次序传递到设备,每个请求都不能忽略,而且请求之间的次序也要保持一致。

更新模式为最新状态时,表示公共能力组件可以对应用发送到表征状态资源的请求进行删减,当公共能力组件发现设备的连接状态为不可达时,公共能力组件只需要保留最新的一个表征状态实例资源,其余旧的表征状态实例资源可以丢弃。当设备恢复连接或者配置了设备地址以后,公共能力组件只需要发送最新的一个表征状态实例资源中的设备状态到设备。

当时间模式是时刻模式时,表示请求需要在指定的时刻在设备侧执行,即需要设备在指定的时刻改变设备状态,例如开关在指定的时刻打开或者关闭。

当时间模式是时长模式时,表示请求需要设备保持执行请求以后的状态达到该的时长长度。

当时间模式是时刻+时长模式时,表示设备需要在特定的时间点改变其状态,并且保持该状态特定长度的时间。

可选的,在本申请的一些实施例中,该第一表征状态实例资源创建请求包括:该表征状态资源的标识,以及第一状态时刻和第一状态时长中的至少一个属性。在本申请实施例中,表征状态资源的标识可以指示该第一表征状态实例资源创建请求是属于表征状态资源的子资源的创建请求。

可选的,在本申请的一些实施例中,该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建该第一表征状态实例资源,可以包括:该公共能力组件根据该第一状态时刻和第一状态时长中的至少一个属性,以及该第二表征状态实例资源,创建该第一表征状态实例资源。在本申请实施例中,公共能力组件在创建第一表征状态实例资源的时候,具体可以根据该第一状态时刻和第一状态时长中的至少一个属性,以及该第二表征状态实例资源,来创建该第一表征状态实例资源。为创建第一表征状态实例资源,提供了一个可行性的方案。

可选的,在本申请的一些实施例中,该第一表征状态实例资源创建请求可以包括第一状态时刻和第一状态时长;该公共能力组件向该设备发送设备状态更新请求,可以包括:该公共能力组件在该第一状态时刻表示的时间点,向该设备发送该设备状态更新请求,且指示该设备在该第一状态时长表示的时间长度内,保持该设备状态不变。在本申请实施例中,公共能力组件还可以根据第一状态时刻,确定向设备发送设备状态更新请求的时间点,以及指示该设备在该第一状态时长表示的时间长度内,保持该设备状态不变。

可选的,在本申请的一些实施例中,该表征状态资源包括连接状态属性,该连接状态属性指示该公共能力组件与该设备连接的时间段[t1,t2];该表征状态资源的更新模式为该序列状态,时间模式为该时刻模式;该第一表征状态实例资源创建请求包括该第一状态时刻。

该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建该第一表征状态实例资源,可以包括:若该公共能力组件确定该第一状态时刻落在该时间段[t1,t2]之间,且该第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则该公共能力组件创建该第一表征状态实例资源。

在本申请实施例中,当表征状态资源的更新模式为序列状态,时间模式为时刻模式时,提供了公共能力组件创建第一表征状态实例资源的具体实现方案,增加了该技术方案的可行性。

可选的,在本申请的一些实施例中,该表征状态资源包括连接状态属性,该连接状态属性指示该公共能力组件与该设备连接的时间段[t1,t2];该表征状态资源的更新模式为该序列状态,时间模式为该混合模式;该第一表征状态实例资源创建请求包括该第一状态时刻和该第一状态时长。

该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建该第一表征状态实例资源,可以包括:

(1)若该公共能力组件确定第一时间段落在该时间段[t1,t2]之间,且该第一时间段与已创建的第二表征状态实例资源的第二时间段未重合,则该公共能力组件创建该第一表征状态实例资源,其中,该第一时间段包括:以该第一状态时刻为起始时刻,时间长度为该第一状态时长;或者,

(2)若该公共能力组件确定该第一状态时刻落在该时间段[t1,t2]之间,且该第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则该公共能力组件创建该第一表征状态实例资源;或者,

(3)若该公共能力组件确定该第一状态时长落在该时间段[t1,t2]中除去已创建的第二表征状态实例资源的第二时间段之外的任一空闲时间段,则该公共能力组件创建该第一表征状态实例资源。

在本申请实施例中,当表征状态资源的更新模式为序列状态,时间模式为混合模式时,提供了公共能力组件创建第一表征状态实例资源的具体实现方案,增加了该技术方案的可行性。

可选的,在本申请的一些实施例中,该表征状态资源包括连接状态属性,该连接状态属性指示该公共能力组件与该设备连接的时间段[t1,t2];该表征状态资源的更新模式为该序列状态,时间模式为该时长模式;该第一表征状态实例资源创建请求包括该第一状态时长。

该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建该第一表征状态实例资源,可以包括:若该公共能力组件确定该第一状态时长落在该时间段[t1,t2]中除去已创建的第二表征状态实例资源的第二时间段之外的任一空闲时间段,则该公共能力组件创建该第一表征状态实例资源。

在本申请实施例中,当表征状态资源的更新模式为序列状态,时间模式为时长模式时,提供了公共能力组件创建第一表征状态实例资源的具体实现方案,增加了该技术方案的可行性。

可选的,在本申请的一些实施例中,该表征状态资源包括连接状态属性,该连接状态属性指示该公共能力组件与该设备连接的时间段[t1,t2];该表征状态资源的更新模式为该最新状态,时间模式为该时刻模式;该第一表征状态实例资源创建请求包括该第一状态时刻。

该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建该第一表征状态实例资源,可以包括:若该公共能力组件确定该第一状态时刻落在该时间段[t1,t2]之间,且该第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则该公共能力组件删除该第二表征状态实例资源,创建该第一表征状态实例资源。

在本申请实施例中,当表征状态资源的更新模式为最新状态,时间模式为时刻模式时,提供了公共能力组件创建第一表征状态实例资源的具体实现方案,增加了该技术方案的可行性。

可选的,在本申请的一些实施例中,该表征状态资源包括连接状态属性,该连接状态属性指示该公共能力组件与该设备连接的时间段[t1,t2];该表征状态资源的更新模式为该最新状态,时间模式为该混合模式;该第一表征状态实例资源创建请求包括该第一状态时刻和该第一状态时长。

该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建该第一表征状态实例资源,可以包括:

(1)若该公共能力组件确定第一时间段落在该时间段[t1,t2]之间,且该第一时间段与已创建的第二表征状态实例资源的第二时间段重合,则该公共能力组件删除该第二表征状态实例资源,创建该第一表征状态实例资源,其中,该第一时间段包括:以该第一状态时刻为起始时刻,时间长度为该第一状态时长;或者,

(2)若该公共能力组件确定该第一状态时刻落在该时间段[t1,t2]之间,且该第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则该公共能力组件删除该第二表征状态实例资源,创建该第一表征状态实例资源;或者,

(3)若该公共能力组件确定该第一状态时长落在该时间段[t1,t2]之间,且该第一状态时长与该t1得到的第三时间段与已创建的第二表征状态实例资源的第二时间段未重合,则该公共能力组件删除该第二表征状态实例资源,创建该第一表征状态实例资源。

在本申请实施例中,当表征状态资源的更新模式为最新状态,时间模式为混合模式时,提供了公共能力组件创建第一表征状态实例资源的具体实现方案,增加了该技术方案的可行性。

可选的,在本申请的一些实施例中,该表征状态资源包括连接状态属性,该连接状态属性指示该公共能力组件与该设备连接的时间段[t1,t2];该表征状态资源的更新模式为该最新状态,时间模式为该时长模式;该第一表征状态实例资源创建请求包括该第一状态时长。

该公共能力组件根据该第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建该第一表征状态实例资源,可以包括:若该公共能力组件确定该第一状态时长落在该时间段[t1,t2]之间,且该第一状态时长与该t1得到的第三时间段与已创建的第二表征状态实例资源的第二时间段重合,则该公共能力组件删除该第二表征状态实例资源,创建该第一表征状态实例资源。

在本申请实施例中,当表征状态资源的更新模式为最新状态,时间模式为时长模式时,提供了公共能力组件创建第一表征状态实例资源的具体实现方案,增加了该技术方案的可行性。

可选的,在本申请的一些实施例中,该公共能力组件接收应用发送的第一表征状态实例资源创建请求之前,该方法还可以包括:该公共能力组件接收表征状态资源创建请求;该公共能力组件根据该表征状态资源创建请求,创建表征状态资源;该公共能力组件接收实际状态资源创建请求;该公共能力组件根据该实际状态资源创建请求,创建实际状态资源。

本申请实施例第二方面提供一种公共能力组件,具有公共能力组件完成设备表征状态和实际状态的同步,提高处理效率的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请实施例又一方面提供一种公共能力组件,可以包括:收发器,用于与所述公共能力组件之外的装置进行通信;存储器,用于存储计算机执行指令;一个或多个处理器,通过总线与所述存储器和所述收发器连接,当所述处理器执行所述存储器中存储的计算机执行指令;以及一个或多个计算机程序,其中,所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述公共能力组件执行时,使得所述公共能力组件执行如上述各方面或各方面任一可选方式所述的方法。

本申请实施例又一方面提供一种无线通信装置,可以包括:

至少一个处理器,存储器,收发电路和总线系统,所述处理器,所述存储器,所述收发电路通过所述总线系统耦合,所述无线通信装置通过所述收发电路与服务器相通信,所述存储器用于存储程序指令,所述至少一个处理器用于执行所述存储器中存储的所述程序指令,使得所述无线通信装置执行如本申请实施例上述各方面所述的方法中所述终端操作的部分。所述无线通信装置既可以是公共能力组件,也可以是应用在平台、网关、设备中执行相应功能的芯片。

本申请实施例又一方面提供一种存储介质,需要说明的是,本申请技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产口的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述终端所用的计算机软件指令,其包含用于执行上述各方面为终端所设计的程序,或者,用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述各方面为服务器所设计的程序。

该存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请实施例又一方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上述各方面或各方面任一可选实现方式中所述的方法。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,还可以根据这些附图获得其它的附图。

图1为现有技术中应用、公共能力组件和设备的交互流程示意图;

图2为本申请实施例中物联网领域国际标准化组织定义的iot系统的架构图;

图3为阻塞式方案的流程示意图;

图4为thingshadow方案的流程示意图;

图5为本申请实施例所应用的系统架构图;

图6为本申请实施例中表征状态资源的一个示意图;

图7为本申请实施例中表征状态实例资源的一个示意图;

图8为本申请实施例中实际状态资源的一个示意图;

图9为本申请实施例中设备状态同步的方法的一个实施例示意图;

图10为本申请实施例中公共能力组件创建表征状态实例资源的一个实施例示意图;

图11为本申请实施例中公共能力组件创建表征状态实例资源的一个示意图;

图12为本申请实施例中公共能力组件创建表征状态实例资源的另一个示意图;

图13为本申请实施例中公共能力组件创建表征状态实例资源的另一个示意图;

图14为本申请实施例中公共能力组件创建表征状态实例资源的另一个示意图;

图15为本申请实施例中公共能力组件创建表征状态实例资源的另一个示意图;

图16为本申请实施例中公共能力组件创建表征状态实例资源的另一个示意图;

图17为本申请实施例中公共能力组件创建表征状态实例资源的另一个示意图;

图18为本申请实施例中公共能力组件创建表征状态实例资源的另一个示意图;

图19为本申请实施例中以onem2m标准为基础的一个实施例示意图;

图20为本申请实施例中公共能力组件的一个实施例示意图;

图21为本申请实施例中公共能力组件的另一个实施例示意图。

具体实施方式

本申请实施例提供了一种设备状态同步的方法,用于公共能力组件完成设备表征状态和实际状态的同步,提高处理效率。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,都应当属于本申请保护的范围。

在iot系统中,平台、网关和设备在整个物联网体系架构中承担不同的角色,平台作为信息的汇聚者,负责给应用提供调用各种能力的应用程序接口(applicationprograminterface,api)接口。网关作为信息的中继者,一方面需要从设备收集和下发数据,一方面需要将数据上报给平台或者从平台接收各种指令。设备是信息的采集者和执行者,广泛存在于各种iot系统的末端,例如温度传感器、伺服电机、车机、机床等等。

例如,如图2所示,图2为物联网领域国际标准化组织onem2m标准定义的iot系统的架构图。在图2所示的onem2m架构中,基础能力节点(infrastructurenode,in)是平台,中间节点(middlenode,mn)是网关,设备分为应用受限节点(applicationdedicatednode,adn)和应用服务节点(applicationservicenode,asn)两种,分别适用于受限设备和资源丰富设备。in、mn、asn和adn都是onem2m定义的设备类型,符合onem2m的规范。对于不符合onem2m规范的设备,onem2m统一使用非onem2m设备(non-onem2mdevicenode,nodn)来表示。这种设备符合其他iot规范例如z-wave、zigbee、蓝牙(bluetooth)等。它们通过互通(interworking)接入到onem2m系统,因此也可以通过onem2m定义的接口访问其服务。

在onem2m定义的节点(node)中,有的节点拥有公共能力组件(commonservicesentity,cse),例如基础能力节点(infrastructurenode,in)、中间节点(middlenode,mn)、应用服务节点(applicationservicenode,asn)。有的节点没有cse,例如应用受限节点(applicationdedicatednode,adn)。cse是onem2m定义的公共能力组件,可以包括为不同行业应用的公共能力,例如:设备注册、设备管理、数据下发和上报、事件的订阅等。cse对外开放接口方便应用调用这些公共能力。

其中,cse通过资源的形式对外提供这些公共能力的接口,资源可以理解成cse持有的一个信息片段,这个信息片段可能是一个文档或者一条数据库记录等。资源记录了cse对外提供某种服务的上下文环境和服务的内容本身。cse对外开放的设备注册、数据上报下发等能力都是通过对资源的访问实现的。资源可以被创建(create)、更新(update)、获取(retrieve)和删除(delete)。从而代表一个cse提供的公共能力的整个生命周期所提供的接口。创建表示该公共能力的注册和产生,更新可以用来更新该能力的全部或者部分信息,获取可以用来监视公共能力的状态,删除可以销毁和去注册该公共能力。

cse提供的一个关键的公共能力是设备状态的同步。在iot系统中,设备的服务需要以数字化的形式和iot系统同步以实现对设备服务通过软件定义的网络接口调用。具体的即是数据的上报和下发。数据的上报可以是传感器采集数据以后,将数据上报到平台。注册到平台的应用然后可以通过平台读取该数值。注册到平台的应用也可以通过该能力下发控制命令到平台,控制器通过从平台读取控制命令的具体内容,再执行对应的操作。

在图1所示中,应用具体可以是注册到平台的应用,可以理解为基础能力节点上的应用实体(infrastructurenodeapplicationentity,in-ae)。cse上存储表示设备状态的资源(如设备的表征状态资源)。设备具体可以理解为应用受限节点上的应用实体(applicationdedicatednodeapplicationentity,adn-ae),即设备上的应用,该设备上的应用用来同步设备的实际状态和cse中的资源状态。

如果cse到设备之间的链路出现问题,cse到设备的通知没有及时成功发送,但是cse上的资源已经被更新,将会造成设备的表征状态和实际状态不一致的情况。如果设备因为硬件故障或者意外宕机,cse到adn-ae的通知成功发送,但是设备的实际状态并没有切换,也会造成表征状态和实际状态不一致的情况。

在其中一种实现方式中,如图3所示,图3为阻塞式方案的流程示意图。当cse收到应用的资源更新请求时,cse并不立即更新资源,而是将资源锁定,并进一步发送通知到设备。只有当设备实际更新了设备状态之后,设备才会发送成功响应到cse。cse只有收到成功响应以后才会执行资源更新动作,并返回更新成功响应到in-ae。

但是,cse在资源锁定期间,将会拒绝其他任何请求,造成系统的可用性降低。如果设备因为各种原因不能立即响应,将会造成cse上的资源进入长期锁定状态,使整个系统停止。

在另一种实现方式中,例如:thingshadow是亚马逊网络服务(amazonwebservice,aws)iot中设备状态同步方案。iot平台中对一个设备维护两个状态,一个desired,一个reported。desired用来表示应用期望设备的状态,reported用来表示设备的实际状态。应用想要获取设备的实际状态时,发送获取请求到iot平台,访问reported资源;应用想要修改设备的状态时,发送更新请求到iot平台,访问desired资源。aws平台根据其他环境逐步同步desired状态和reported状态。如图4所示,图4为thingshadow方案的流程示意图。

例如,控制一个开关,在awsthingshadow模式下,应用先发送更新请求到cse,访问desired资源,更新desired=on以打开开关。此时因为设备的实际状态还没有发生变化,所以reported=off。设备因为事先订阅了desired来跟踪应用实体对开关的更新请求,当设备收到desired状态的更新请求以后,更新设备实际状态,如果更新成功,设备再更新reported为on。应用因为订阅了reported,当reported状态变化为on时,in-ae收到通知,得知设备实际状态已经和desired同步。

但是,在这一过程中,因为应用对于设备具体执行指令的时间没有预期,为了等待确认设备状态是否发生改变,可能需要长时间在线以监听设备状态。而这一过程可能非常漫长,使得应用空耗资源。同时在这种方法下,并没有考虑工厂场景下对不同设备的不同更新策略。对每一个应用的指令,设备都是按次序执行,存在资源浪费且不能满足需求。

本申请所要解决的技术问题为:在设备状态托管在平台、网关或其他服务器的情况下,存在表征状态和实际状态之间的同步问题。即需要解决如何同步、何时同步等问题。

如图5所示,图5为本申请实施例所应用的系统架构图。本申请在iot平台、网关或者设备的公共能力组件中同时维护设备的两个状态资源,一个表征状态资源,一个实际状态资源。

需要说明的是,表征状态资源公共能力组件可以是独立的实体设备,也可以部署在iot平台、网关或者设备上。

表征状态资源包含表征状态实例资源,表征状态实例资源为表征状态资源的子资源。实际状态资源包含实际状态实例资源,实际状态实例资源为实际状态资源的子资源。表征状态资源和实际状态资源都可以有多个子资源。子资源的生命周期依赖于其父资源,若父资源被删除,则其所属的所有子资源都会被删除。表征状态资源可以理解为应用期望设备切换的状态的信息;实际状态资源可以理解为设备实际状态的信息。

公共能力组件中维护的表征状态资源接收应用发送的请求,请求创建一条表征状态实例资源,表征状态实例资源包含应用更新的设备状态。设备监听表征状态实例资源的创建,当设备发现新的表征状态实例资源创建时,根据表征状态实例资源中的设备状态相应的切换设备的状态,设备状态切换成功以后,发送请求到公共能力组件中维护的实际状态资源以创建实际状态实例资源,并保证最新的实际状态实例资源和设备状态是同步的。应用如果想获取设备的当前实际状态,需要获取实际状态资源下最新的实际状态实例资源。

可以理解的是,设备监听表征状态实例资源的创建,可以是设备被动接收公共能力组件发送的表征状态实例资源创建请求成功的指示信息,也可以是设备主动向公共能力组件发送请求,请求表征状态实例资源是否创建成功的指示信息。

表征状态资源由设备或者设备的应用设置,并根据设备的特征,在表征状态资源中设置相应的属性,以规范应用对表征状态资源的创建请求以及公共能力组件向设备传递更新请求的策略。例如对于agv小车,任何对其表征状态资源的更新请求都会及时传递到设备;相反对于压力控制器设备,对其表征状态资源的更新请求可能会被公共能力组件缓存,公共能力组件只会将最新的一个更新请求发送给设备。如图6所示,图6为本申请实施例中表征状态资源的一个示意图。

实际状态资源由设备或者设备的应用设置,其中包括设备状态以及设备状态的元数据。例如:设备当前状态,以及设备当前状态还需要保持多久的信息等等。以方便平台上的应用确定何时可以发送请求。

其中,设备的表征状态资源中包括各种属性,例如:更新模式、时间模式、设备地址、连接状态、确定时延等。表征状态资源包括表征状态实例资源。

可以理解的是,(1)更新模式可以是序列状态或者最新状态。

(2)时间模式可以是时刻、时长或者时刻+时长等。

(3)设备地址表示设备可达地址,公共能力组件可以通过该设备地址发送请求给设备。

(4)连接状态表示设备在线的时间安排,即设备在哪些时间段在线,哪些时间段会休眠或者不在线,公共能力组件可以根据连接状态确定是否可以发送请求到设备。

(5)确定时延是在时间确定性网络中,从公共能力组件发送消息到设备成功执行消息所需要的时间。该时间由两部分组成,一部分是网络传输时间,即公共能力组件发送消息到设备的网络时延;另一部分是设备从接收到消息到设备状态实际发生变化的程序时延。确定时延的值等于网络时延和程序时延的和。程序时延设备可以根据自己的软件环境确定,一般是一个固定的数值。网络时延的值在设备上线后根据和公共能力组件的通信时间测得。

其中,更新模式为序列状态时,表示公共能力组件可以把应用对表征状态资源的请求逐个按次序传递到设备,每个请求都不能忽略,而且请求之间的次序也必须保持一致。

更新模式为最新状态时,表示公共能力组件可以对应用发送到表征状态资源的请求进行删减,当公共能力组件发现设备的连接状态为不可达时,公共能力组件只需要保留最新的一个表征状态实例资源,其余旧的表征状态实例资源可以丢弃。当设备恢复连接或者配置了设备地址以后,公共能力组件只需要发送最新的一个表征状态实例资源中的设备状态到设备。

当时间模式是时刻时,表示请求需要在指定的时刻在设备侧执行,即需要设备在指定的时刻改变设备状态,例如开关在指定的时刻打开或者关闭。

当时间模式是时长时,表示请求需要设备保持执行请求以后的状态达到所述的时长长度。

当时间模式是时刻+时长时,表示设备需要在特定的时间点改变其状态,并且保持该状态特定长度的时间。

表征状态实例资源表示的是一个设备状态的实例,表征状态实例资源由以下属性构成:设备状态、状态时刻、状态时长。如图7所示,图7为本申请实施例中表征状态实例资源的一个示意图。

其中设备状态表示应用想要切换设备的状态,例如打开开关即是把设备状态切换成on,关闭开关即是把设备状态切换成off。

状态时刻表示设备在指定时刻切换到特定状态。例如状态时刻等于20171228t122000.000即是指在该时刻切换开关状态到on或者off。

状态时长表示设备切换到特定状态以后需要维持的时间。例如状态时长等于60s表示开关切换到on以后要至少保持60秒。

部署状态表示该表征状态实例资源是否已经转发给设备并被设备执行。如果已经转发给设备并执行,该属性值为“已部署”;如果还处在待命状态,该属性值为“未部署”;如果设备正在执行过程中,该属性值为“部署中”。

实际状态资源包含实际状态实例资源,实际状态资源可能包含多个实际状态实例资源,其中最新的实际状态实例资源表示当前设备的实际状态,该状态保存在设备状态属性中。如图8所示,图8为本申请实施例中实际状态资源的一个示意图。

在本申请中,所提到的应用,没有进行特别的说明,则认为该应用可以是平台上的应用,也可以是网关上的应用,也可以是设备上的应用,不做具体限定。公共能力组件保存设备的表征状态资源和实际状态资源,负责和设备的实际状态之间的同步。下面以实施例的方式,对本申请中的方法实施例进行说明,如图9所示,图9为本申请实施例中设备状态同步的方法的一个实施例示意图。即公共能力组件接收应用发送的请求,同步设备状态的流程如下图所示:

901:应用和设备分别向公共能力组件进行注册。

在本申请实施例中,应用和设备分别向公共能力组件进行注册,注册可以包括认证鉴权分配安全秘钥等流程。注册完成之后,应用和设备可以调用公共能力组件提供的公共能力,即可以使用公共能力提供的设备状态同步方法,进行设备状态的同步。

902:公共能力组件接收表征状态资源配置请求。

公共能力组件接收应用或者设备发送的表征状态资源配置请求。表征状态资源配置请求中可以携带设备表征状态资源。该表征状态资源配置请求可能来自设备本身,即设备根据自己的特征在注册完成以后主动向公共能力组件发起表征状态资源创建请求,以向应用开放自己的服务接口。

903、公共能力组件根据表征状态配置请求,创建表征状态资源。

公共能力组件可以根据表征状态资源创建请求,创建表征状态资源。设备表征状态资源创建成功以后,应用可以通过访问该资源控制设备的状态。

904:公共能力组件接收实际状态资源配置请求。

公共能力组件接收应用或者设备发送的实际状态资源配置请求。实际状态资源配置请求中可以携带设备实际状态资源。该实际状态资源配置请求也可以理解为实际状态资源创建请求。可能来自设备本身,设备创建实际状态资源以更新自己的实际状态,以便于应用可以访问设备的实际状态。

905、公共能力组件根据实际状态资源配置请求,创建实际状态资源。

公共能力组件可以根据实际状态资源创建请求,创建实际状态资源。需要说明的是,步骤902和904的时序不做限定。

906:公共能力组件接收应用发送的更新表征状态资源请求。

其中,更新表征状态资源请求中包括表征状态资源标识。更新表征状态资源请求具体可以是表征状态实例资源创建请求,表征状态实例资源为表征状态资源的子资源。

907:公共能力组件根据更新表征状态资源请求,创建表征状态实例资源。

公共能力组件确定表征状态实例资源能否成功创建。如果表征状态实例资源创建成功,根据表征状态实例资源中的信息,在达到预置条件时发送设备状态更新请求到设备。

908:公共能力组件发送设备状态更新请求到设备。

909:设备根据设备状态更新请求中的内容更新设备状态。

910:设备发送实际状态实例资源创建请求到公共能力组件。

即设备状态更新成功以后,设备发送更新实际状态资源请求到公共能力组件。可以理解的是,更新实际状态资源请求可以是实际状态实例资源创建请求。

911:公共能力组件根据实际状态实例资源创建请求,创建实际状态实例资源。

912:公共能力组件发送实际状态资源更新通知到应用。

应用可以得知设备的实际状态已经发生改变。

在本申请实施例中,公共能力组件接收应用发送的第一表征状态实例资源创建请求,所述第一表征状态实例资源创建请求包括设备状态属性;所述公共能力组件根据所述第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建所述第一表征状态实例资源;所述公共能力组件向所述设备发送设备状态更新请求,所述设备状态更新请求中包含所述设备状态属性;所述公共能力组件接收所述设备发送的实际状态实例资源创建请求;所述公共能力组件根据所述实际状态实例资源创建请求,创建实际状态实例资源;所述公共能力组件向应用发送实际状态资源更新通知。公共能力组件可以维护多个表征状态实例资源,完成设备表征状态和实际状态的同步,提高处理效率。

如图10所示,图10为本申请实施例中公共能力组件接收应用发送的更新表征状态资源请求;公共能力组件根据更新表征状态资源请求,创建表征状态实例资源的一个实施例示意图,如下所示:

1051:公共能力组件接收应用发送的表征状态实例资源创建请求。

其中,表征状态实例资源创建请求中包括设备状态属性,可选的,还可以包括状态时刻、状态时长等属性。可以理解的是,设备状态表示应用想要设备切换到的新状态。状态时刻表示应用计划在该时刻让设备切换状态。状态时长表示应用计划让设备在该状态下保持特定长度的时间。

表征状态实例资源创建请求中还可以包括所述表征状态资源的标识,表征状态实例资源创建请求中可以同时包含状态时刻和状态时长,也可以只包含其中的任意一个。

1052:公共能力组件确定表征状态资源里面的更新模式为序列状态或者最新状态。

其中,更新模式为序列状态的时候,执行步骤1053,更新模式为最新状态的时候,执行步骤1054。

1053:当表征状态资源的更新模式为序列状态时,进一步确认表征状态资源的时间模式。

若时间模式是时刻,则执行步骤1055;若时间模式是时长,则执行步骤1056;若时间模式是时刻+时长,则执行步骤1057。

1054:当表征状态资源的更新模式为最新状态时,进一步确认表征状态资源的时间模式。

若时间模式是时刻,则执行步骤10510;若时间模式是时长,则执行步骤10511;若时间模式是时刻+时长,则执行步骤10512。

1055:当表征状态资源的更新模式是序列状态,且时间模式是时刻时,说明创建的每一个表征状态实例资源都需要同步到设备,且设备的同步需要遵从具体的时刻。

公共能力组件确定所需要的设备状态是否能够在指定时刻同步到设备。具体的,可以包括,公共能力组件确定在指定的时刻,设备的连接状态是否可达;以及根据连接状态和确定时延确定是否可以在指定的时刻切换设备状态。

如图11所示,图11为公共能力组件创建表征状态实例资源的一个示意图。确定时延是阴影部分表示的时长。公共能力组件收到的表征状态实例资源创建请求中包含状态时刻texe和设备状态,表示公共能力组件需要确保设备可以在texe时刻按照设备状态属性切换设备状态。

在case1的情况下,texe在t1和t2之间,考虑到确定时延的长度,公共能力组件需要在tsend时刻发送设备状态更新请求到设备,以确保设备能够在确定时延以后切换设备状态。这种情况下,公共能力组件成功创建该表征状态实例资源并返回创建成功响应1059。

在case2的情况下,texe在t1和t2之外,因此,公共能力组件拒绝表征状态实例资源的创建请求,并返回创建失败响应1058。

同时,因为表征状态资源的更新模式是序列状态,公共能力组件还需要确定在已经创建成功的,但是部署状态依然为false的表征状态实例资源中,是否存在和表征状态实例资源创建请求中的表征状态实例资源的状态时刻冲突的表征状态实例资源。如果发现冲突,则返回创建失败响应1058。

如果公共能力组件收到的表征状态实例资源创建请求中携带了状态时长属性,公共能力组件需要返回创建失败响应1058,因为时间模式是时刻,设备不能接受规定时长的时间模式。

1057:当表征状态资源的更新模式是序列模式,且时间模式是时刻+时长时,说明创建的每一个表征状态实例资源都需要同步到设备,且设备的同步需要遵从具体的时刻和时长。

当公共能力组件收到表征状态实例资源创建请求,表征状态实例资源创建请求中包含状态时刻属性、状态时长属性和设备状态属性,表示公共能力组件需要在状态时刻,切换设备到设备状态,并维持状态时长的时间。例如图12所示,图12为公共能力组件创建表征状态实例资源的另一个示意图。

texe0表示表征状态实例资源创建请求中待创建的表征状态实例资源的状态时刻、状态时长。如图12所示。因为更新模式是序列状态,公共能力组件需要确定texe0和已经存在的状态时刻为texe1,texe2,texe3的表征状态实例资源及其状态时长之间的关系,以确定待创建的表征状态实例资源是否可以创建成功。

如果texe0在texe1和texe2之间的空白处,且texe0加状态时长以后仍然没有超过texe2,则表征状态实例资源可以成功创建,公共能力组件创建该表征状态实例资源并返回创建成功响应1059。如果texe0在texe2和texe3之间或其他地方,因为texe0加状态时长,已经和其他已经创建成功的表征状态实例资源之间产生了冲突,所以创建失败,公共能力组件返回创建失败响应1058。

如果表征状态实例资源创建请求只携带了状态时刻或者状态时长中的一个。则需要综合判断该待创建表征状态实例资源和已经存在的表征状态实例资源的状态时刻和状态时长之间的关系以确定能否创建成功。

例如,图13所示,图13为公共能力组件创建表征状态实例资源的另一个示意图。已经存在3个表征状态实例资源,表征状态实例资源1状态时刻为texe1,状态时长如图13所示;表征状态实例资源2没有设置状态时刻,状态时长如图13所示;表征状态实例资源3状态时刻为texe3,没有设置状态时长。待创建表征状态实例资源在三种不同的case时,执行如下过程:

case1:当待创建表征状态实例资源设置了状态时刻为texe01和状态时长,执行过程如前文所述。

case2:当待创建表征状态实例资源只设置了状态时刻为texe02时,只要确定texe02没有和当前已经存在的3个表征状态实例资源相冲突即可以成功创建。

case3:当待创建表征状态实例资源只设置了状态时长,因为没有约束状态时刻,公共能力组件则确定当前立即执行是否可以成功创建。如果确定当前设备在线,并且当前设备不在一个表征状态实例资源的状态时长内,则成功创建该资源并返回成功响应1059。

否则,顺次确定下一个可以成功创建的时间。例如,图13中所示texe1和表征状态实例资源1有冲突,则可以把待创建表征状态实例资源创建在表征状态实例资源1和表征状态实例资源2之间。

创建成功以后,公共能力组件需要为新创建的表征状态实例资源分配状态时刻属性,该状态时刻属性是公共能力组件根据具体情况分配的具体切换设备状态的时刻。并且公共能力组件需要在创建成功响应中携带该分配的状态时刻属性,以通知应用设备状态切换的时刻。如果在已知的设备在线时间内都找不到可以创建该待创建表征状态实例资源的时间,则返回创建失败响应1058。

1056:当表征状态资源的更新模式是序列模式,且时间模式是时长时,说明创建的每一个表征状态实例资源都需要同步到设备,且设备的同步需要遵从具体的时长。

当公共能力组件收到表征状态实例资源创建请求时,该表征状态实例资源创建请求包含状态时长属性。当表征状态资源下还有其他表征状态实例资源时,该表征状态实例资源创建请求能否成功,如图14所示,图14为公共能力组件创建表征状态实例资源的另一个示意图。

公共能力组件在已知的设备在线的时间段内,确定已经被其他表征状态实例资源预留的时间段之外的第一个其他时间段,创建成功以后返回创建成功响应1059。如步骤1057中case3的描述,此处不再赘述。

10515:如果表征状态资源设置了更新模式但是没有设置时间模式,公共能力组件根据当前设备状态确定该表征状态实例资源是否可以创建,创建以后,立即通知设备执行设备状态更新请求,切换设备状态。

具体的,公共能力组件确定当前设备在线,确定当前设备并没有处在一个需要维持特定状态时长的请求中时,创建该表征状态实例资源,并返回创建成功响应10515。否则返回创建失败响应。

10510:当表征状态资源的更新模式是最新状态,且时间模式是时刻时。

当创建表征状态实例资源时,如果该表征状态实例资源创建请求中包含状态时刻属性,且在该状态时刻,已经存在其他表征状态实例资源,只需要同步最新的表征状态实例资源到设备,旧表征状态实例资源被替换。

具体的,公共能力组件收到表征状态实例资源创建请求,所述表征状态实例资源创建请求包含状态时刻属性。如图15所示,图15为公共能力组件创建表征状态实例资源的另一个示意图。

表征状态资源下已经包含表征状态实例资源1,表征状态实例资源1包含状态时刻的时间为texe1。如果待创建的表征状态实例资源的状态时刻属性中的时刻为texe01,且texe01=texe1,则用待创建表征状态实例资源替换表征状态实例资源1,并返回创建成功响应。如果时刻属性中的时刻为texe02,texe02≠texe1,则直接创建表征状态实例资源,返回成功响应10513。

10511:当表征状态资源的更新模式是最新状态,且时间模式是时刻+时长时。

当创建表征状态实例资源时,如果该表征状态实例资源中包含状态时刻属性或者状态时长属性,且该状态时刻或者状态时长已经存在其他表征状态实例资源形成冲突(如图16所示,图16为公共能力组件创建表征状态实例资源的另一个示意图),则:

公共能力组件收到表征状态实例资源创建请求,且创建的表征状态资源下已经包含3个表征状态实例资源。在不同的情况下,处理方式不同:

case1:当待创建的表征状态实例资源同时包含状态时长和状态时刻时,如果texe01大于texe1且在表征状态实例资源1的状态时长之内,或者,texe01小于texe1且texe1在待创建表征状态实例资源的状态时长内,或者,待创建表征状态实例资源的状态时长和表征状态实例资源2的状态时长有重叠,或者,texe3落在了待创建的表征状态实例资源的状态时长之内。成功创建该表征状态实例资源,相应的,冲突的表征状态实例资源1,2或者3被替换删除,并返回成功响应10513。

case2:当待创建的表征状态实例资源只包含时刻时,如果和表征状态实例资源存在冲突。例如texe02在表征状态实例资源1或者2的状态时长之内,或者texe02=texe3,成功创建该表征状态实例资源。相应的,冲突的表征状态实例资源1,2或者3被替换删除,并返回成功响应10513。

case3:当待创建的表征状态实例资源只包含状态时长,公共能力组件确定第一个设备可达的时间,例如上图16中t1,成功创建并替换有冲突的其他表征状态实例资源,返回创建成功响应10513。如果在要求的状态时长内有其他表征状态实例资源,例如图16中的表征状态实例资源1,则替换该资源。公共能力组件在创建表征状态实例资源时,需要根据情况,为状态时刻分配具体的值表示设备将会在该时刻切换状态。并在成功响应中携带状态时刻。

在case1和case2情况中,如果待创建的表征状态实例资源和当前正在执行的其他表征状态实例资源的状态时长相冲突,则创建失败,返回创建失败响应10514。如图17所示,图17为公共能力组件创建表征状态实例资源的另一个示意图。

如果当前时间如图17中虚线所示,公共能力组件已经执行了表征状态实例资源1,部署状态从“未部署”,切换成了“部署中”。对于case1和case2如果texe01或者texe02的时间和表征状态实例资源1的状态时长冲突,则需要拒绝表征状态实例资源的创建请求。对于case3,公共能力组件寻找第一个设备可达的时间应该从表征状态实例资源1执行完毕,部署状态切换成“已部署”以后开始搜索。

10512:当表征状态资源的更新模式是最新状态,且时间模式是时长时。

说明当创建表征状态实例资源时,如果该表征状态实例资源中包含状态时长属性,且该状态时长和已经创建了的其他表征状态实例资源冲突,如图18所示,图18为公共能力组件创建表征状态实例资源的另一个示意图。执行如下步骤。

公共能力组件在设备可达的第一个可用时间段内,例如上图18中的t1开始,创建该表征状态实例资源。如果和其他表征状态实例资源发生冲突,例如图18中的表征状态实例资源1,则替换删除表征状态实例资源1。公共能力组件同时需要根据情况为创建的表征状态实例资源分配状态时刻,并在响应中携带该状态时刻,以通知应用设备状态实际切换的时间。

在本申请实施例中,主要介绍了公共能力组件如何成功创建表征状态实例资源的详细说明,增加了方案的可行性。

实施例2:如图19所示,图19是本申请以onem2m标准为基础的一个实施例示意图。mn-cse是中间节点公共能力中间件,通过onem2m定义的mca接口和灯的开关相连,开关相当于设备。同时ae作为应用也和mn-cse公共能力组件相连接。

(1)以onem2m为例进行说明,onem2m中更新模式为序列状态。

onem2m采用容器(container)资源表征设备的状态,例如一个开关设备使用container资源来表征其on或者off的状态。container包含一个或者多个实例(contentinstance)子资源,每个contentinstance子资源表示一条开关状态的历史记录。每个contentinstance子资源包含创建时间(creationtime),内容(content)等属性。其中creationtime是这条contentinstance的创建时间,content即是on或者off的值。container资源下可能有多个contentinstance,其中creationtime最新的一个,即是开关当前的状态。

container资源即是本申请中的表征状态资源和实际状态资源。例如,通过onem2m协议控制开关,创建两个container资源分别表示针对这个开关的表征状态资源和实际状态资源。container下的contentinstance是表征状态实例资源和实际状态实例资源。

a101:mn-ae和ae分别和mn-cse注册。

具体的表现在分别发送创建应用实体(createae)请求到mn-cse,注册以后,mn-cse的csebase资源下分别创建mn-ae和ae对应的ae资源。如图19所示,ae创建的ae资源为csebase的子资源。ae资源包含属性接入点(pointofaccess)是开关设备的访问地址。

例如:为http://1.1.1.1:8080/app,mn-cse可以通过该地址访问ae;schedule是ae的连接状态,表示ae的可达时间段;determinedelay是发送请求到ae并被ae成功执行的往返时间,该时间由ae根据其本地环境确定(例如程序执行时间,和mn-cse之间的网络延迟等)。

a102:ae发送资源创建(createcontainer)请求到mn-cse,请求访问ae资源的地址。

在ae资源下创建container子资源,该container子资源包括如下属性:statetype为desired,表示该container资源是表征状态资源;更新模式(updatemode)为序列状态(sequence),表示mn-cse在同步container资源状态到ae的时候为序列状态;时间模式(timemode)表示同步的时间模式。该container资源的id是container-desired

a103:ae发送createcontainer请求到mn-cse,请求访问ae资源的地址。

在ae下创建container子资源,该container子资源包含的属性状态类型(statetype)为实际(actual),表示该container资源是实际状态资源。该container资源的id是container-actual。

a104:mn-ae发送createcontentinstance到container-desired。

该contentinstance的id为contentinstance-0,contentinstance-0包含表示设备状态的content属性为on表示打开开关;表示状态时刻的statetime属性表示在特定时刻打开开关;表示状态时长的stateduration为表示持续时间。

a105:mn-cse首先确定container-desired下所有isdeployed为false的contentinstance资源,这些资源状态都还没有同步到ae。

假如为contentinstance-1,contentinstance-2,contentinstance-3。再根据contentinstance-0和contentinstance-1,2,3资源以及ae资源的schedule属性、determinedelay属性和timemode确定contentinstance-0是否可以创建。分为如下几种情况:(time表示statetime属性,duration表示stateduration属性)

表1

在上面表1所示中,ae的schedule属性是20180130t000000:000到20180130t006000:000的一个小时,这里为了表述简单写成00~60。每个contentinstance的statetime的数字表示的都是从00开始的分钟数。stateduration表示的是持续的分钟数。从mn-cse发出消息到开关实际切换状态的时间determinedelay是1s。timemode是time表示时间模式是时刻,mixed表示是时刻+时长,duration表示时长。根据待创建的contentinstance资源和container-desired下已经有的三个contentinstance资源的状态,具体可以分成7种情况如上表所示。根据步骤905的描述,具体解释如下:

case1:因为contentinstance-0和contentinstance-1,2,3之间没有冲突关系,所以创建成功。

case2:因为contentinstance-0的statetime超过了ae的schedule的可达时间,所以创建失败。

case3:因为contentinstance-0和contentinstance-1的statetime有冲突,所以创建失败。

case4:因为contentinstance-0的时间段正好可以嵌入在ae的schedule开始时间和contentinstance-1的开始时间之间,所以创建成功。

case5:contentinstance-0的开始时间正好在contentinstance-1之后,但是duration和contentinstance-2有冲突,所以创建失败。

case6:contentinstance-0的statetime恰好在contentinstance-1和contentinstance-2之间的空闲时间,所以创建成功。

case7:contentinstance-0的duration是10,mn-cse在ae的可达时间内确定的第一个符合条件的时间段是0~10,所以创建成功,并设置contentinstance-0的statetime为0。

case8:contentinstance-0的duration是15,mn-cse在ae的可达时间内确定的第一个符合条件的时间段是contentinstance-1结束以后15~30,所以创建成功,并设置contentinstance-0的statetime是15。

case9:contentinstance-0的duration是20,mn-cse在ae的可达时间内没有合适的时间段可以创建成功,所以创建失败。

a106:mn-cse在到达container-desired下多个contentinstance子资源中第一个状态时刻减去determinedelay的时刻发送备状态更新请求到ae,备状态更新请求中携带contentinstance中的content属性内容。

a107:ae根据从mn-cse收到的设备状态更新请求切换设备状态。

a108:ae更新设备状态以后,发送createcontentinstance请求到mn-cse,请求访问container-actual,用来表示设备当前已经成功切换状态。createcontentinstance请求中携带设备当前的实际状态。

a109:mn-cse收到请求以后创建contentinstance资源。

a110:mn-cse发送通知给mn-ae,表示设备状态已经成功切换。

(2)以onem2m为例进行说明,onem2m中更新模式为最新状态。

在该实施例中,不同点在于container-desired的更新模式(updatemode)是最新状态(latest),表示同一时间只需要对最后一个请求进行响应即可。

b101:mn-ae和ae分别和mn-cse注册。同a101。

b102:ae发送createcontainer请求到mn-cse,请求访问ae资源的地址。在ae资源下创建container子资源,该container子资源包括如下属性:statetype为desired,表示该container资源是表征状态资源;updatemode为latest,表示mn-cse在同步container资源状态到ae的时候为最新状态;timemode表示同步的时间模式。该container资源的id是container-desired。

b103:ae发送createcontainer请求到mn-cse,请求访问ae资源的地址。同a103。

b104:mn-ae发送createcontentinstance到container-desired。同a104。

b105:mn-cse首先确定container-desired下所有isdeployed为false的contentinstance资源,这些资源状态都还没有同步到ae,假如为contentinstance-1,contentinstance-2,contentinstance-3。再根据contentinstance-0和contentinstance-1,2,3资源以及ae资源的schedule属性、determinedelay属性和timemode确定contentinstance-0是否可以创建。分为如下几种情况:(time表示statetime属性,duration表示stateduration属性)

表2

在上面的例子中,ae的schedule属性是20180130t000000:000到20180130t006000:000的一个小时,这里为了表述简单写成00~60。每个contentinstance的statetime的数字表示的都是从00开始的分钟数。stateduration表示的是持续的分钟数。从mn-cse发出消息到开关实际切换状态的时间determinedelay是1s。timemode是time表示时间模式是时刻,mixed表示是时刻+时长,duration表示时长。根据待创建的contentinstance资源和container-desired下已经有的三个contentinstance资源的状态,具体可以分成7种情况如上表所示。根据步骤905的描述,具体解释如下:

case1:contentinstance-0和contentinstance-1冲突,创建成功,contentinstance-1被替换。

case2:contentinstance-0和contentinstance-2冲突,创建成功,contentinstance-2被替换。

case3:contentinstance-0和contentinstance-1冲突,创建成功,contentinstance-1被替换。

case4:mn-cse收到请求以后创建contentinstance-0,因为contentinstance-0和contentinstance-1有冲突,所以contentinstance-1被替换。

b106:mn-cse在到达container-desired下多个contentinstance子资源中第一个状态时刻减去determinedelay的时刻发送备状态更新请求到ae,备状态更新请求中携带contentinstance中的content属性内容。同a106。

b107:ae根据从mn-cse收到的设备状态更新请求切换设备状态。同a107。

b108:ae更新设备状态以后,发送createcontentinstance请求到mn-cse,请求访问container-actual,用来表示设备当前已经成功切换状态。createcontentinstance请求中携带设备当前的实际状态。同a108。

b109:mn-cse收到请求以后创建contentinstance资源。同a109。

b110:mn-cse发送通知给mn-ae,表示设备状态已经成功切换。同a110。

示例性的,在实际应用场景中,通过本申请技术方案,当应用控制设备执行某种操作时,在不同的情况下可以达到不同的效果:

(1)对所有应用下发的指令能够按次序执行。例如在工厂内负责搬运货物的自动导引车(automatedguidedvehicle,agv)小车,应用通过平台发送指令命令机器人搬运物料。每个指令到包含源地址和目的地址。因此每一道应用发放的请求都必须执行,否则会造成货物积压或者物料供应不足。

(2)需要执行最新的一个指令。例如控制压力、液位、油位、炉温等。因为变化过程缓慢,而且作用时间周期较长,所以在较多控制指令序列化到达的情况下,如果前面的指令执行尚未结束或者还未执行,则可以直接跳过只执行最新的指令。

(3)需要在指定的时间执行指令。在生产控制过程中,有大量时间敏感的操作,例如控制传送带的速率,控制组装机器人之间的配合关系等。这种操作要求指令须在确定的时间执行,产线可以正常运行,否则可能造成产线停止,器械碰撞等严重问题。

(4)需要设备运转特定时间长度。在一些工业场景中,例如装置的冷却、排风等,根据冷却装置或者排风装置的效率,为了达到较好的冷却或者排风效果,须保证设备的运转状态达到指定的长度,否则会造成意外。

如图20所示,图20为本申请实施例中公共能力组件的另一个实施例示意图。

接收模块2001,用于接收应用发送的第一表征状态实例资源创建请求,第一表征状态实例资源创建请求包括设备状态属性;接收设备发送的实际状态实例资源创建请求;

处理模块2002,用于根据第一表征状态实例资源创建请求和已创建的第二表征状态实例资源,创建第一表征状态实例资源;根据实际状态实例资源创建请求,创建实际状态实例资源;

发送模块2003,用于向设备发送设备状态更新请求,设备状态更新请求中包含设备状态属性;向应用发送实际状态资源创建成功的指示信息。

可选的,在本申请的一些实施例中,第一表征状态实例资源和第二表征状态实例资源为表征状态资源的子资源;

表征状态资源包括:更新模式和时间模式;

其中,更新模式包括:序列状态或者最新状态;

时间模式包括:时刻模式、时长模式或者混合模式,混合模式为时刻模式加时长模式。

可选的,在本申请的一些实施例中,第一表征状态实例资源创建请求包括:表征状态资源的标识,以及第一状态时刻和第一状态时长中的至少一个属性。

可选的,在本申请的一些实施例中,

处理模块2002,具体用于根据第一状态时刻和第一状态时长中的至少一个属性,以及第二表征状态实例资源,创建第一表征状态实例资源。

可选的,在本申请的一些实施例中,第一表征状态实例资源创建请求包括第一状态时刻和第一状态时长;

发送模块2003,具体用于在第一状态时刻表示的时间点,向设备发送设备状态更新请求,且指示设备在第一状态时长表示的时间长度内,保持设备状态不变。

可选的,在本申请的一些实施例中,表征状态资源包括连接状态属性,连接状态属性指示公共能力组件与设备连接的时间段[t1,t2];

表征状态资源的更新模式为序列状态,时间模式为时刻模式;

第一表征状态实例资源创建请求包括第一状态时刻;

处理模块2002,具体用于若确定第一状态时刻落在时间段[t1,t2]之间,且第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则创建第一表征状态实例资源。

可选的,在本申请的一些实施例中,表征状态资源包括连接状态属性,连接状态属性指示公共能力组件与设备连接的时间段[t1,t2];

表征状态资源的更新模式为序列状态,时间模式为混合模式;

第一表征状态实例资源创建请求包括第一状态时刻和第一状态时长;

处理模块2002,具体用于若确定第一时间段落在时间段[t1,t2]之间,且第一时间段与已创建的第二表征状态实例资源的第二时间段未重合,则创建第一表征状态实例资源,其中,第一时间段包括:以第一状态时刻为起始时刻,时间长度为第一状态时长;

或者,

处理模块2002,具体用于若确定第一状态时刻落在时间段[t1,t2]之间,且第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则创建第一表征状态实例资源;

或者,

处理模块2002,具体用于若确定第一状态时长落在时间段[t1,t2]中除去已创建的第二表征状态实例资源的第二时间段之外的任一空闲时间段,则创建第一表征状态实例资源。

可选的,在本申请的一些实施例中,表征状态资源包括连接状态属性,连接状态属性指示公共能力组件与设备连接的时间段[t1,t2];

表征状态资源的更新模式为序列状态,时间模式为时长模式;

第一表征状态实例资源创建请求包括第一状态时长;

处理模块2002,具体用于若确定第一状态时长落在时间段[t1,t2]中除去已创建的第二表征状态实例资源的第二时间段之外的任一空闲时间段,则创建第一表征状态实例资源。

可选的,在本申请的一些实施例中,表征状态资源包括连接状态属性,连接状态属性指示公共能力组件与设备连接的时间段[t1,t2];

表征状态资源的更新模式为最新状态,时间模式为时刻模式;

第一表征状态实例资源创建请求包括第一状态时刻;

处理模块2002,具体用于若确定第一状态时刻落在时间段[t1,t2]之间,且第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则删除第二表征状态实例资源,创建第一表征状态实例资源。

可选的,在本申请的一些实施例中,表征状态资源包括连接状态属性,连接状态属性指示公共能力组件与设备连接的时间段[t1,t2];

表征状态资源的更新模式为最新状态,时间模式为混合模式;

第一表征状态实例资源创建请求包括第一状态时刻和第一状态时长;

处理模块2002,具体用于若确定第一时间段落在时间段[t1,t2]之间,且第一时间段与已创建的第二表征状态实例资源的第二时间段重合,则删除第二表征状态实例资源,创建第一表征状态实例资源,其中,第一时间段包括:以第一状态时刻为起始时刻,时间长度为第一状态时长;

或者,

处理模块2002,具体用于若确定第一状态时刻落在时间段[t1,t2]之间,且第一状态时刻与已创建的第二表征状态实例资源的第二状态时刻不相同,则删除第二表征状态实例资源,创建第一表征状态实例资源;

或者,

处理模块2002,具体用于若确定第一状态时长落在时间段[t1,t2]之间,且第一状态时长与t1得到的第三时间段与已创建的第二表征状态实例资源的第二时间段未重合,则删除第二表征状态实例资源,创建第一表征状态实例资源。

可选的,在本申请的一些实施例中,表征状态资源包括连接状态属性,连接状态属性指示公共能力组件与设备连接的时间段[t1,t2];

表征状态资源的更新模式为最新状态,时间模式为时长模式;

第一表征状态实例资源创建请求包括第一状态时长;

处理模块2002,具体用于若确定第一状态时长落在时间段[t1,t2]之间,且第一状态时长与t1得到的第三时间段与已创建的第二表征状态实例资源的第二时间段重合,则删除第二表征状态实例资源,创建第一表征状态实例资源。

可选的,在本申请的一些实施例中,

接收模块2001,还用于接收表征状态资源创建请求;接收实际状态资源创建请求;

处理模块2002,还用于根据表征状态资源创建请求,创建表征状态资源;根据实际状态资源创建请求,创建实际状态资源。

如图21所示,图21是本申请实施例提供的一种公共能力组件的结构示意图。可以包括:

收发器2101、存储器2102和处理器2103,其中,收发器2101、存储器2102和处理器2103互相之间通过总线连接。上述实施例中由公共能力组件所执行的步骤可以基于该图21所示的公共能力组件结构。此处不再赘述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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