GB/T 36674-2018 标准规范下载简介
GB/T 36674-2018 公共机构能耗监控系统通用技术要求B.1.3管控对象及点标识
图B.2社区智能节电控制网络的系统模型
GB/T366742018
DB21/T 3518-2021 建筑信息模型设计审查技术规程.pdf图B.3管控对象的树状数据模型
图B.3中,Point代表管控对象:PointSet代表管控对象集。PointSet聚集了多个Point和 PointSet,这种结构实现了分级管理。每个Point通过一系列的Value元素来描述,传感器的一个读数 或执行器的一条指令都是一个Value元素。Value元素本身不需要全局唯一的标识符,但具有时间属 性,从而标识该Value何时从传感器提取,或者应该在何时将该Value发往执行器上。 在泛在绿色社区控制网络中,仅对Point和PointSet定义了id属性,对Value定义了时间属性。其 他的属性可以根据具体的节点应用和现场网络进行灵活的定义和扩展
B.2泛在绿色社区控制网络协议架构
B.2.1.1组件之间的通信协议
GB/T366742018
图B.4FETCH协议示意图
如图B.4所示,Requester向Provider发起请求,Provider返回响应。 Phase1:Requester调用Provider的query方法。Requester发送查询请求消息(例如限定感兴趣 的数据集的范围),并指明Requester在RPC响应时可接受的最大数据集大小,即可同时接收value的 最多数目,款认值为100。 Phase2:Provider通过RPC响应返回数据集.如果返回数据集的大小超过了Requester最大可接 受的数据的大小,或是需要消耗Provider过多的计算资源,则provider仅返回整个数据集的一个子集, 并提供一个指针用于后续的数据获取过程。 Phase3:如果在接收到的响应中有一个指针,则Requester再次调用Provider的query方法,用于 获取剩余的数据,重复Phase2。 Phase4:如果接收到的响应中没有指针,表示所有的数据已经传递完毕,FETCH过程也完成了。 在FETCH过程中需要注意的是,指针应具有有效时间。如果Provider接收到的请求消息中指针 已经过期失效,则返回报错信息。指针有效期缺省推荐值为60S。但是如果网络带宽不够,导致RPC 耗时可能变长,则需要适当增加指针的有效期时间, 除了指针失效外,Provider遇到任何错误时都会主动返回错误信息,如访问控制策略错误,XML的 格式不正确的,或其他系统错误等。 b)WRITE协议 WRITE协议用于向远程组件传输数据。提交数据的组件为Requester,接收数据的组件为 Target。WRITE协议示意图如图B.5所示
如图B.5所示,Requester向Target发起数据传输请求,Target返回响应。 Phasel:Requester调用Target的data方法,携带待发送数据的内容。 Phase2:Target向Requester返回结果,表明此次WRITE操作是成功或失败 c)TRAP协议
图B.5WRITE协议示意图
GB/T366742018
图B.6TRAP协议示意图
图B.7TRAP协议实际部署实现图
B.2.1.2组件与注册器之间的通信协议
在泛在绿色社区智控制网络中,注册器的接口提供两种方法:registration和lookup。组件与注
GB/T366742018
aREGISTRATTON初议 REGISTRATION协议使组件可以注册自已的实现角色以及对应的管控对象信息等。提交注 青的组件为Registrant,注册器为Registry。REGISTRATION协议的示意图如图B.8所示
图B.8REGISTRATION协议示意图
图B.9LOOKUP协议示意图
B.2.2应用程序接口API
B.2.2中定义了两种类型的应用程序编程接口(API),包括组件访问接口和注册器访问接口。组 可接口用于组件到组件的通信过程,注册器访问接口用于组件和注册器之间的通信过程
GB/T366742018
组件(网关,存储器和应用单元)的访问接口定义了query和data方法,用于其他组件的访问。 query用于从组件获取或订阅数据,data用于向组件推送数据。通过query和data两种方法,可以实现 FETCH、WRTIE和TRAP三个协议。 注册器的访问接口定义了registration和lookup方法,从而支持组件(网关、存储器和应用单元)接 人注册器,获得注册器提供的服务。通过registration和lookup两种方法,可以实现REGISTRATION 和LOOKUP两个协议
B.2.2.2传输消息的数据结构
.2传输消息的数据结构
在泛在绿色社区控制网络中,无论是组件之间的通信还是组件与注册器之间的通信,都由远程过程 调用RPC方法实现对组件或注册器的接人。如图B.1o所示,Caller调用Callee方法,发起请求消息, 而Callee返回响应消息
图B.10传输消息的数据结构
在请求方与响应方之间的通信过程中,请求消息和响应消息具有相同的数据结构,包括消息头和消 息体。消息头包含控制信息,如查询表达式(用于组件之间的通信)、查找表达式(用于组件和注册器之 间的通信)、确认信息、失败信息等等。消息体包含携带数值的管控对象或管控对象集,例如来自传感器 的读数和对执行器的指令(用于组件之间的通信),或是组件的实现角色和对应管控对象的点标识(用于 组件和注册器之间的通信)。若控制信息与管控对象或管控对象的特定Value密切相关,则该控制对象 也是消息体的一部分
B.2.2.3组件的访问接口
GB/T366742018
设置为"storage”,表明执行FETCH协议 Requester在一个RPC响应中,一次所能接收的Value元素的最大数目 用于获取未传完的后续数据。cursor属性不会出现在Requester发送的第 个query请求消息中,其值由Provider根据响应消息的发送情况设定
acceptableSize Requester在一个RPC响应中,一次所能接收的Value元素的最大数目 cursor 用于获取未传完的后续数据。cursor属性不会出现在Requester发送的第 个query请求消息中,其值由Provider根据响应消息的发送情况设定 当type=“storage”时,在query的响应消息中,消息头携带有查询表达式以及响应结果,通常以 OK或Error表示。在query响应携带的查询表达式中,如果存在cursor属性,则意味着还有后续数据 要继续传送。如果没有cursor则意味着所有数据已经传送完毕。query响应消息头中的OK表明Pro vider成功地完成了query方法对应的数据传送过程,Error表示Provider在执行query方法调用时出 现了错误。Error也可提供具体的错误描述信息,供Requester检查。如果query响应携带OK,则其消 息体中携带相应的管控对象或是管控对象集的相关信息,否则该消息体被接收方忽略。 当type=“stream”时,query请求消息t的消息头中携带有查询表达式,消息体被Provider忽略 查询表达式具有如下属性: id 用于标识该query。当周期性更新query时,该id值不变 type 设置为"stream”,表明执行TRAP协议 ttl 设置该query在Provider处的生存时间,单位为秒 callbackData 当数据与查询匹配时,数据发送的目标组件的URI callbackControl 当需要发送控制类信息时,接收该类信息的目标组件的UR1 acceptableSize 可选,callbackData标识的组件在一次数据传输过程中,一次所能接收的 Value元素的最大数目 当type=“stream”时,在query的响应消息中,消息头携带有查询表达式以及以OK或Error表示 的响应结果。query响应消息头中的OK表明Provider成功地完成了query方法对应的数据传送过 程,Error表示Provider在执行query方法调用时出现了错误。Error也可提供具体的错误描述信息, 供Requester检查。接收方忽略响应消息的消息体。当有匹配查询条件的数据更新时,Provider调用 callbackData对应组件的data方法。Provider发送的请求消息t的消息头需要复制查询表达式,供 callbackData组件恭取足够的 据内
id 用于标识该query。当周期性更新query时,该id值不变 type 设置为"stream”,表明执行TRAP协议 ttl 设置该query在Provider处的生存时间,单位为秒 callbackData 当数据与查询匹配时,数据发送的目标组件的URI callbackControl 当需要发送控制类信息时,接收该类信息的目标组件的URI acceptableSize 可选,callbackData标识的组件在一次数据传输过程中,一次所能接收的 Value元素的最大数目
当type="stream”时,在query的响应消息中,消息买携带有查询表达式以及以OK或Error表示 的响应结果。query响应消息头中的OK表明Provider成功地完成了query方法对应的数据传送过 程,Error表示Provider在执行query方法调用时出现了错误。Error也可提供具体的错误描述信息, 供Requester检查。接收方忽略响应消息的消息体。当有匹配查询条件的数据更新时,Provider调用 callbackData对应组件的data方法。Provider发送的请求消息t的消息头需要复制查询表达式,供 callbackData组件获取足够的信息了解消息体中的数据内容。 b)data方法 data方法的格式为Transportdata(Transportt)。 Requester将向Target传送的管控对象或管控对象集的相关信息封装在data请求消息t的消息体 中。如果在TRAP协议中调用data方法,从Provider向callbackData组件传送数据,则t的消息头中 复制有相应的query方法消息头中携带的查询表达式。 在data的响应消息中,消息头携带以OK或Error表示的响应结果,OK表明Target成功地完成 了data方法对应的数据写人过程,Error表示Target在执行data方法调用时出现了错误。Error也可 提供具体的错误描述信息,供Requcester检查。响应消息的消息体被接收方忽略
B.2.2.4注册器的访问接口
GB/T366742018
图B.11注册器访问接口的数据结构
GB/T366742018
type 设置为“point”,表明需要查找管控对象 当type=“point"时,在lookup的响应消息中,消息头携带有查找表达式以及以OK或Error表示 的响应结果。OK表明Registry成功地完成了lookup方法对应的管控对象查找过程,Error表示Reg stry在执行lookup方法调用时出现了错误。Error也可提供具体的错误描述信息,供Requester检查。 如果lookup响应携带OK,则其消息体中携带与查找匹配的管控对象的属性文件,否则该消息体被接 收方忽略。
从XML格式。本标准中的“类”对应XML中的“元素”。为了方便理解,本标准规定,类的名称以 字母开始,XML元素的名称以小写字母开始
B.23.2组件之间通信协议的数据结构
B.2.3.2.2Transport类
Transport类用于在一个消息中同时传输数据平面信息和控制平面信息,类成员包括了 ader对象和一个Body对象。Transport类没有属性 Trnasport类的实例如下:
Transport类用于在一个消息中同时传输数据平面信息和控制平面信息,类成员包括了 Header对象和一个Body对象。Transport类没有属性 Trnasport类的实例如下:
B.2.3.2.3Header类
Header类用于承载控制平面信息,包括查询表达式、失败消息等,类成员包括了Query对象、OK 对象以及Error对象。Header类没有属性。 Header类的实例如下: 实例一:
GB/T366742018
B.2.3.2.4Body 类
B.2.3.2.5PointSet类
GB/T366742018
B.2.3.2.6 Point 类
B.2.3.2.7Value 类
B.2.3.2.8Query类
GB/T366742018
B.2.3.2.9Kev类
GB/T366742018
B.2.3.2.10OK类
OK类表明请求被成功地接受,OK类没有类成员,也没有属性。 OK类的实例如下:
B.2.3.2.11Error类
Error类承载出错信息,没有类成员。Error类的属性为type,用于描述错误类型等具体错误信 Error类的实例如下: 实例一:
3.2.3.3组件与注册器之间的通信协议的数据结
B.2.3.3.2Transport类
GB/T366742018
Transport类用于在一个消息中同时传输数据平面信息和控制平面信息,类成员包括了一个 Header对象和一个Body对象。Transport类没有属性。 Transport类的实例如下: 实例一: