路径: 主页 > GB/T > 第212页 > GB/T 36451-2018
| 标准编号 | GB/T 36451-2018 (GB/T36451-2018) | | 中文名称 | 信息技术 系统间远程通信和信息交换 社区节能控制网络协议 | | 英文名称 | Information technology -- Telecommunications and information exchange between systems -- Community energy-saving control network protocol | | 行业 | 国家标准 (推荐) | | 中标分类 | L79 | | 国际标准分类 | 35.110 | | 字数估计 | 58,538 | | 发布日期 | 2018-06-07 | | 实施日期 | 2019-01-01 | | 发布机构 | 国家市场监督管理总局、中国国家标准化管理委员会 |
GB/T 36451-2018: 信息技术 系统间远程通信和信息交换 社区节能控制网络协议
GB/T 36451-2018 英文名称: Information technology -- Telecommunications and information exchange between systems -- Community energy-saving control network protocol
ICS 35.110
L79
中华人民共和国国家标准
信息技术 系统间远程通信和信息交换
社区节能控制网络协议
1.1 范围
本标准定义了在IPv4/IPv6网络环境下,组件(网关、存储、应用单元)之间互联和数据交换的通信
协议,在通用的数字化基础设施上采用开放的应用接口实现对多厂商设备的兼容。本标准定义了建设
数字社区的重要系统组件,包括用于现场总线网络的网关,用于搭建数据共享平台的存储器以及应用单
元,可用于建设楼宇间及城市范围内的泛在设施网络基础设施。本标准允许多家服务提供商和集成商
对基础设施进行分布式运营,定义了支持分布式基础设施互操作的组件管理协议。本标准也考虑了相
应的安全要求,以保证数据的安全性和完整性。
1.2 目的
本标准适用于建设能够对能源的使用情况进行良好管理且利用率高的绿色社区,并且允许包括中
小规模的不同现场网络、数据共享平台和应用单元在内的多楼宇设施实现互连。基于此标准的产品能
够实现泛在信息的感知、存储和展示,例如,产能和用能情况、环境状态及信息、人体活动、暖通空调的工
作状态、电灯系统、天气、报警、数据分析、数据预测等。通过系统组件之间的集成互操作,本标准可提供
并分享数据平台,包括实现与控制系统的协同。
5 通信协议
5.1 综述
本标准针对组件和注册器定义了两种类型的通信协议,包括组件与组件之间的通信协议和组件与
注册器之间的通信协议,两种通信协议基于SOAP协议来实现(见 W3C,SOAP协议1.2版本第1部分:消息传递框架)。
5.2 组件与组件之间的通信协议
5.2.1 组件与组件之间通信协议的类型
本条定义和描述了组件之间通信的3种子协议类型,组件指的是网关、存储器和应用单元。对于注册器的接入方法参见5.3。
FETCH12)协议---用于从远程组件获取数据。
WRITE13)协议---用于向远程组件传输数据。
TRAP14)协议---用于基于事件查询的注册和基于事件的数据传输。
下面给出了这3种协议的详细定义和描述。
12) 本标准中用“FETCH”表示数据获取协议的名称。
13) 本标准中用“WRITE”表示数据推送协议的名称。
14) 本标准中用“TRAP”表示基于事件触发协议的名称。
5.2.2 FETCH协议
FETCH协议用于从远程组件获取数据。本标准将请求获取数据的组件称为“信息请求方”,将负
责应答提供数据的组件称为“信息提供方”。FETCH协议的示意图见图6。
过程1:信息请求方调用信息提供方的query方法。信息请求方发送查询请求信息(例如,限定感
兴趣的数据集的范围),并指明在远程过程调用响应时可接受的最大数据集大小,即可同时接收数据值的最大数目,默认值为100。
过程2:信息提供方通过远程过程调用响应返回数据集。如果返回数据集的大小超过了信息请求
方最大可接受的数据的大小,或是需要消耗信息提供方过多的计算资源,则信息提供方仅返回整个数据
集的一个子集,并提供一个指针用于后续的数据获取过程。
过程3:如果在接收到的响应中有一个指针,则信息请求方再次调用信息提供方的query方法,重复过程2。
过程4:如果接收到的响应中没有指针,表示所有的数据已经传递完毕,FETCH过程也完成了。
注1:指针应具有有效时间。如果信息提供方收到的请求消息中的指针已经过期失效,则返回报错信息。指针有效
期推荐值为60s。但是如果网络带宽不够,可能导致RPC耗时变长,因此需要适当增加指针的有效期时间。
注2:信息提供方遇到任何错误时都应主动返回错误信息,如访问控制策略错误,XML的格式不正确的,或其他系统错误。
5.2.3 WRITE协议
WRITE协议是用于向远程组件传输数据。提交数据的组件为“信息提交方”,接收数据的组件为
“信息接收方”。WRITE协议示意图见图7。
过程1:信息提交方调用信息接收方的data方法,携带待发送数据的内容。
过程2:信息接收方向信息提交方返回结果,表明此次 WRITE操作是成功或失败。
5.2.4 TRAP协议
TRAP支持基于事件的查询注册和数据传输。组件命名如下:
信息请求方---向信息提供方设置基于事件的查询条件的组件;
信息提供方---负责当收到与触发查询条件匹配的更新时,发送数据的组件;
数据信息回送方---从信息提供方接收数据的组件;
控制信息回送方---从信息提供方接收控制信息的组件。
本条描述了组件之间的协作(见图8)。尽管组件的角色一般都有明确的分类,但在大多数实际应
用中,数据信息回送方、控制信息回送方和信息请求方通常是同一个组件(见图9)。
过程1:信息请求方调用信息提供方的query方法。除了查询表达式之外,同时传输的参数还包括
查询的有效时间(TTL),以秒(s)为单位,数据信息回送方组件的URI和控制信息回送方组件的URI。
注1:在该过程中,需要周期性的更新触发该过程,以更新信息提供方记录的TTL,从而使信息提供方能够继续接
收该通知消息,更新频率推荐为TTL的一半或三分之一。为了使信息提供方可以区分接收到的是更新请求
还是新的设置请求,需要为更新的触发请求设置相同的标识。
注2:如果信息提供方无法接受该请求,则返回错误消息。
过程2:信息提供方调用数据信息回送方的data方法,推送与查询表达式匹配的更新数据,同时信息提供方发出请求。
过程3:数据信息回送方回送成功或错误信息。
过程2':信息提供方调用控制信息回送方的data方法,推送通信错误信息(例如,过程3中遇到的错误)。
过程3':控制信息回送方回送成功或错误信息。
注1:在TRAP过程中,每过1s,信息提供方就将查询表达式的TTL减1。如果TTL达到“0”,信息提供方拒绝该
查询,并将其从查询表项中删除。
注2:如果信息请求方想显示的删除某查询请求,也可以通过指定TTL=0的方法实现。
5.3 组件与注册器的通信协议
5.3.1 组件与注册器的通信协议类型
本条定义了组件和注册器间通信的两种类型的子协议:
REGISTRATION15)协议---组件角色和点对象语义信息的注册。
LOOKUP16)协议---查找相应的组件和点对象。
注:注册器的接口提供两种方法:registration和lookup,见6.4。REGISTRATION 协议调用registration方法,
LOOKUP协议调用lookup方法。
下面给出了这两种协议的详细描述。
15) 本标准中用“REGISTRATION”表示组件或点注册协议的名称。
16) 本标准中用“LOOKUP”表示组件或点查询协议的名称。
5.3.2 REGISTRATION协议
REGISTRATION协议使组件注册自己的角色以及点对象的语义信息,提交注册申请的组件为
“注册发起方”,示意图见图10。
过程1:注册发起方调用注册器的registration方法,提供组件信息(如:名称,接入 URI,支持的协
议类型)和角色信息(如:组件管理的点对象信息)。
注:本标准不要求注册发起方支持data和query方法,例如对于点属性的注册过程,注册的是点语义信息,并非是
一个组件的角色信息。见6.4.2。
过程2:注册器返回成功或失败结果。如果未成功,注册器应返回错误信息给注册发起方。
5.3.3 LOOKUP协议
通过LOOKUP协议,组件可以查询需要接入的组件(对于组件之间的通信),或是通过语义查询寻
找指定的点。发起查询请求的组件为“查找请求方”,示意图见图11。
过程1:查找请求方调用注册器的lookup方法,其中的查找表达式指明查询对象的类型(如是查询
组件还是查询点信息)。
过程2:注册器返回解析的组件或点的接入URI。
6 应用程序编程接口
6.1 综述
本条定义了两种类型的应用程序编程接口(API)。
组件访问接口---用于组件到组件的通信过程。
注册器访问接口---用于组件和注册器之间的通信过程。
6.2 传输的数据结构
本标准中无论是组件之间的通信还是组件与注册器之间的通信,都通过远程过程调用RPC实现接入
方法,见图12。调用方调用被调用方的接口方法,发起请求消息,而被调用方返回响应消息。请求消息和
响应消息具有相同的数据结构,包括消息头和消息体。消息头包含控制信息,如用于组件之间通信的查询
表达式,用于组件和注册器之间通信的查找表达式,确认信息,失败信息等。消息体包含携带数值的点或
点集合对象,例如来自传感器的读数和对执行器的指令(用于组件之间的通信),或是组件角色和对应点标
识(用于组件和注册器之间的通信)。点或特定数据值相关的控制信息也是消息体的一部分。
6.3 组件的访问接口
7.2 点集合树结构的点管理
一个典型点集合数据树结构见图13。一个点集合聚集多个点和点集合,这种结构实现了分级管
理。每个点通过一系列的数据值元素来描述,传感器的一个读数或执行器的一条指令都是一个数据值
元素。数据值元素本身不需要全局唯一的标识符,但具有时间属性,从而标识该数据值何时从传感器提
取,或者应在何时将该数据值发往执行器上。
本标准定义了点集合的概念,但点集合的功能是可选的。所有的组件应允许在没有点集合下进行操作。
在本标准中,仅对点和点集合定义了id属性,对数据值定义了时间属性,其他的属性可以根据具体
的节点应用和现场网络进行灵活的定义和扩展。
7.3 点集合树结构的查询模式
FETCH和TRAP的请求方通过query和key元素指定了数据集的范围,然后信息提供方应提供
相应的点集合,点和数据值对象。信息提供方将指定的点集合和点对象作为响应消息body元素的子
集,点集合和点对象在点集合树上不应有两个以上的子节点。
8.1 总则
本章针对组件之间,以及组件与注册器之间的通信协议,定义了相应的数据结构。所有的消息遵从
XML格式(见 W3C可扩展置标语言)。本标准中一个类对应一个XML元素,下面章条中类的定义给
第1部分:结构,W3CXML概要 第2部分:数据类型间(见 W3CXML的命名空间1.1版本)
8.2 对象类和XML元素的命名规则
命名有大小写之分,本标准规定,类的名称以大写字母开始,XML元素的名称以小写字母开始。
从第二个字母开始,类的名称和XML的名称应该是完全一样的。
8.3 组件之间通信协议的数据结构
8.3.2.9.3 类属性
Key对象的类属性包括:
---id:对应点或点集合的目标标识符;
---attrName:定义的如下属性的名称;
---eq:若Key对象的属性值等于某给定值,则为真,否则为假;
---neq:若Key对象的属性值不等于某给定值,则为真,否则为假;
---lt:若Key对象的属性值小于某给定值,则为真,否则为假;
---gt:若Key对象的属性值大于某给定值,则为真,否则为假;
---lteq:若Key对象的属性值小于或等于某给定值,则为真,否则为假;
---gteq:若Key对象的属性值大于或等于某给定值,则为真,否则为假;
---select:具有{maximum,minimum}两个属性值;
---trap:若检测到了发生某事件,则取值为{changed}(仅在请求类型为“stream”时有效)。
注:eq、neq、lt、gt、lteq、gteq的时间格式应按照ISO 8601规定的格式,且至少指定到秒和时区。
8.4.2.5.3 类属性
Component类的属性包括:
---name:指定组件的名称(例如,网关、存储器或应用单元);
---uri:指定某组件的接入URI;
---priority:冗余数据集的接入优先级(可选属性);
---support:组件支持的协议类型(FETCH、WRITE、TRAP);
---expires:注册的有效期,以秒标识(可选属性)。
注1:当存在多于一个的候选组件可以接入时(例如,存在组件的备份),需提供priority属性,宜选择Priority的值
大的组件优先接入。
注2:通过expires属性,注册器可以掌握某注册信息的有效期,并且每过1s就将该属性值减去1。当该属性值为0
时,注册器将拒绝该注册消息。
注3:要删除某组件的注册,注册发起方应调用注册器的registration方法将expires设置为0。
注4:如果注册发起方并未提供该属性,则由注册器自行决定对应注册条目的有效期。
9 协议绑定
泛在绿色社区控制网络协议支持几乎所有的现有通信协议实现数据传输,如SMTP、SIP、FTP和
HTTP等,然而考虑到应用和实现的普遍性,本标准推荐采用 SOAP、HTTP和 SIP作为实现
UGCCNet通信的底层绑定协议,尤其是应用SIP协议实现网络设施的操作和管理17)。
17) 基于SIP协议的UGCCNet标准是IEEEP1888工作组的后续工作。
10 安全考虑
本标准定义的协议是开放的,支持来自多领域的操作及其他领域系统组件的接入访问。在这种情
况下,系统的安全考虑如下:
---避免向公众意外泄露数据;
---避免未经授权的访问资源;
---远程通信主机的可用性和保密性;
---数据的完整性和保密性;
---避免意外的访问或操作冲突。
我们将使用VPN、SSL、SSH和其他相关技术来保证远程通信主机的机密性,应用 HTTPS或SIP
及安全扩展协议将有助于保证数据的完整性和保密性。
访问控制和访问冲突管理应是另一个重要但不同类型的安全问题,应独立讨论。通常,访问控制用
于仅允许特定用户访问可读和可写资源,这必将有助于避免来自公众用户(有时是匿名)的未授权访问
或数据意外泄露。为了管理这一点,系统需要引入用户的概念来识别谁正在访问资源。我们采用基于
URI的标识用于用户认证,正如用URI来标识点PointID一样,用户和组件的认证(可能通过利用现有
的认证平台)也需要考虑。
附 录 A(资料性附录)
UGCCNet通信的典型序列
UGCCNet通......
|