物联网的基于两层覆盖网的支撑体系与实现方法与流程

文档序号:12478534阅读:283来源:国知局

本发明涉及计算机领域,特别涉及一种基于两层覆盖网的物联网支撑体系及其实现方法。



背景技术:

目前,基于云计算模式的制造资源与制造能力的共享与协同方面的理论与技术尚缺乏理想的成果,以此为基础的相应的物联网系统构造的环境与工具更是无从谈起。

物联网系统的结构与活动规律有待发现、形式化抽象与归纳;优化的物联网系统的体系结构有待确定;用于指导物联网系统优化(系统性能优化、系统构造效率优化)构建的理论结论(基于概念、假设导出的形式化结论)有待建立。

物联网领域的特殊性包括:制造资源的复杂性现状,和复杂制造资源的复杂使用。因此而提出的新高度的要求主要包括:控制与实时,资源共享调度,系统结构可重构,抽象的资源高阶操作,分布并发,需求的梳理与归纳建模,复杂状态模型。

另一方面,以物联网为背景,专门的面向物联网系统开发与运行的支撑环境与工具需要给出,使这类系统的开发,如同普通软件系统开发一样方便,提高开发效率,增进软件质量。



技术实现要素:

本发明提出一种用于物联网支撑体系及实现方法的两层覆盖网的概念,目的在于解耦制造资源的复杂性现状与复杂制造资源的复杂使用两个问题的解决方案。

本发明提出的物联网体系基于两层覆盖网,即物控网与融合网。

其中,物联网应用系统由物控网、融合网、以及物联网应用接口组成,其体系结构归纳说明:

<云制造应用系统> ::= <物控网> + <融合网> + <云制造应用接口>

<物控网>::= <制造资源> + <物控网环境> + <物控网应用>

<物控网环境> ::= <物控网API> + <物控网引擎> + <物控网管理器>

<物控网应用> ::= <物控网应用脚本>

<融合网> ::= <融合网环境> + <融合网应用>

<融合网环境> ::= <融合网API> + <融合网引擎> + <融合网管理器>

<融合网应用> ::= <融合网应用脚本>

<可视化建模器> ::= <物控网可视化建模器> + <融合网可视化建模器>

<可视化管理器> ::= <物控网可视化管理器> + <融合网可视化管理器>

物控网是一种逻辑网(覆盖网),建立在互联网之上,实现资源在管理层面上的互联(组合、集成与交互),形成“资源互联网”,并支撑对资源的语义层面的基本访问、控制、管理。

物控网是一个二部多重图,其中每个节点代表一个逻辑资源,称为“资源节点”。资源节点向上连接父节点,向下连接各个儿子节点。对资源节点的访问,只能通过其父节点进行。每个资源节点,负责接受父节点的服务请求,并进行相应的处理,返回访问结果。

物控网体系是一个经基于EITP(Extract and Injection Transfer Protocol)协议互联的资源融合而形成的网络,融合的过程是一个节点表示为超资源、边表示资源关联的二部多重图,本发明称为超资源图。其中,每个超资源节点代表一个所有各级关联资源的融合体。

超资源节点结构表述为:超资源 = 资源实体或虚拟实体 + 资源属性、结构与语义 + 资源的操作行为实体 + 资源的管理行为实体。

一个超资源节点,可以通过以下两种方式与其它超资源节点链接:

1)实链接:节点A到节点B的实链接(称为A下链B),表示节点A是节点B的管理者。管理者对被管理者除了具有访问权外,还有管理权。管理权主要包括对被管理者进行各种策略(行为策略、安全保密策略、访问策略、计费策略等)配置与修改、故障与恢复管理、加入与撤离管理等。每个节点至多可以有一个管理者,因此,实链接构成一棵多叉树。

2)虚链接:节点A到节点B的虚链接(称为A下访B),表示节点A被授予对节点B的访问权。授权的方式是节点A向B的管理者节点提出。

基于EITP协议实现制造资源的互联的物控网的融合,可以实现独立分布的超资源的连接、组合、集成、通信(信息交换与信息传递)、数据采集、数据更新等操作。

EITP协议是用于程序模块之间会话与消息传递的协议,它是一种基于引擎的体系,通过引擎实现对象之间的连接与互操作。由于对象之间的互操作是基于抽取与注入的方式,所以该协议成为抽注传输协议。此外,该协议也支持事件驱动编程。

引擎分为会话引擎与物联引擎两种。会话引擎是服务端引擎,物联引擎是对象端引擎。

会话引擎用于联通物联引擎,实现在物联引擎之间的消息通讯,从而实现对象之间的互操作。

物联引擎主要用于支撑对象端的通信服务,充当连接外部的接口—对象的远程访问端口,对象端程序在物联引擎的支撑下通过会话引擎与其他对象交互。

对象端的对象是可以连入计算机网络的任何对象,如计算机或者智能终端上的数据库、文件与计算机软件,具有网络与数据接口的仪器设备,以及其他的任意的物联网对象。

物联引擎与会话引擎之间的通信与交互通过“抽注传输协议”(EITP, Extract and Injection Transfer Protocol)进行。EITP负责在物联引擎与会话引擎之间传输对象的抽注请求与回复。

EITP协议在数据格式方面主要包括两个方面:EITP会话原语与EITP抽注指令。

EITP会话原语用于描述EITP抽注指令的在对象之间的传输,属于传输原语,它的执行是将原语中携带的抽注指令传输到指定对象,或者将抽注指令执行结果回送到指定对象。

EITP抽注指令是针对对象的数据的抽取与注入操作的描述语句,支持对象将数据注入另一个对象,或者从另一个对象抽取数据。

EITP中的抽注指令的执行,基于事件驱动方式,用户通过在抽注指令接收(解释)端挂接自己的抽注指令处理器实现对抽注指令的执行。

EITP的交互架构分为客户-服务器(C-S)、客户-服务器-服务器(C-Sc-So)两种。

C-S是传统的服务架构,可以支持目前大多数的C/S与B/S模式的应用。

C-ScSo是EITP新引入的交互架构,客户端C发起的通信经过公共服务端Sc交换到具有服务特性的对象端So,用于支持将任意一个对象转变为可访问的服务,支持任意物联网的对象的接入。

EITP的执行结果回送方式,支持三种模式:阻塞式、查询式和事件驱动式。

阻塞式是EITP原语在获得EITP抽注指令的执行结果后才返回。

查询式是EITP原语不等待执行结果而直接返回,抽注结果需要使用显式的结果查询与获取原语才能获得。

事件驱动式也是不等待结果,但系统自动查询执行结果,获得执行结果后,触发相应的事件处理程序,该程序由用户事先挂接在事件队列。

EITP在连接方式上,支持长连接与短连接两种。

短连接是每个EITP原语的执行都与接收端进行一次通信连接,原语执行后断开连接,以释放资源。

长连接是设置专门的通信连接原语与关闭原语,原语执行前,如果通信连接没有建立,则需要执行专门的连接原语建立连接,此后才能执行其他原语,但一段时间内不再需要执行通信原语时,要调用断专门的理解关闭原语来关闭连接。

融合网也是一种逻辑网,建立在物控网之上,通过物控网提供资源的集成、融合、服务资源组合、加工、更新、交互、协同、组织。

融合网的逻辑结构不像物控网那样是固定的结构,其具体结构随着参与操作的资源之间的交互关系而动态确定。

融合网分“融合网环境”与“融合网应用”两大部分。“融合网应用”是具体的物联网系统的用户需求的描述脚本,它运行在“融合网环境”之上。

融合网的构建基于“格件”(基于形式领域融合的计算模型)中的“横向融合”(场融合)技术,实现制造资源的共享、融合与联动,支持用户以“格件”的横向融合模式对具体的物联网应用系统进行建模,形成“融合网应用”,并运行在“融合网环境”之上,实现物联网。

场融合模型是基于资源融合的结构可扩展的软件开发框架,属于广义数据流处理框架,它将应用系统看作是通过将资源进行融合而形成的。

场融合是通过框架进行的,框架是由提供数据通路的数据“管道”和加工、处理和控制数据的数据“站点”构成,框架的具体化是通过对站点和管道的“扩展”而进行的。这里的管道和站点统称“融合器”;横向融合加工处理的对象是广义的数据流,可以是数据、本体、对象、代码等。

横向融合在横向“融合引擎”控制下进行;融合器有服务器、处理器、库所、管道、传感器、广播器、接收器、开关、I/O适配器等9大类。

每类具体的融合器相当于一个标准化的处理器,即核,所以,该模型也可看作是基于异构多核的融合模型;

标准化的融合器让用户一般可以直接使用他们构成资源融合流程,也可以按照规范“扩展”这些融合器后再使用,即可支持结构扩展的系统建模。

关于融合器的控制与调度,在以前项目“面向云计算的动态资源调度算法研究”的对多核系统的调度的研究理论与实践基础上,提出基于非线性流水线的资源调度方法。

考虑到首先,在物联网中,社会用户对云资源的访问往往是多种资源的流程化的访问,符合非线性流水线特征;其次,对流程化的访问,将资源顺应访问需求组织为流水线,调度性能更优;最后,借助网络流理论,可以获得较为有效的调度算法。

因此该方法将可共享的制造资源,根据当前资源访问需求动态组织为非线性流水线,然后转化为网络流问题进行最优化调度。

附图说明

图1为本发明的基于两层覆盖网的物联网体系示意图。

具体实施方式

为了更好地理解本发明的技术特点,下面结合附图对本专利作进一步的说明,需要说明的是,具体实施方式并不是对本专利保护范围的限制。

一个按照本发明开发的物联网系统,由物控网和覆盖网组成。

物控网中的物联引擎与会话引擎按照EITP协议规范进行开发,实现包括交互架构组成,长连接与短连接管理,三种结果回送方式的会话原语,抽注指令的定义与实现等功能,其中,抽注指令的定义与实现由程序员根据EITP抽注指令规范进行开发。

(1)EITP会话原语以接口定义的方式实现如下:

(1.1)建立长连接:在以长连接方式交互时,必须先与会话引擎建立连接。建立连接后,客户得到一个称为频道的连接标识,此后的所有操作,都采用频道指称所请求的会话引擎。当一段时间内不与会话引擎交互时,可以关闭连接,以释放资源。

格式:connect(会话引擎定位信息,用户身份信息,频道)。

语义:与指定的会话引擎进行连接;

参数:a)会话引擎定位信息:完整的可在网上找到到会话引擎的地址信息,具体地址形式与所在网络协议相关;b)用户身份信息:指示用户的身份信息与连接安全保密所需的信息,以确保连接的安全性与保密性;c)频道:连接成功后,返回的会话引擎连接句柄,用于后续指令使用该连接。

返回值:连接成功时,返回连接成功信息0,否则返回非0的不成功代码,包括会话引擎不存在、会话引擎无法连接、网络通信故障等情况。

说明:该指令的执行,需要进行内部身份鉴别与秘钥交换会话。

(1.2)关闭连接

格式:close(频道)。

语义:关闭“频道”对应的连接。

返回值:成功关闭频道对应的连接时,返回连接成功信息0,否则返回非0的不成功代码,包括指定的频道不存在、连接故障或已断开或已关闭、通信故障等情况。

说明:如果不是指定的连接不存在,该指令的执行一律关闭指定连接。

(1.3)阻塞式抽注请求

格式:fetch(频道,校验码,抽注指令,指令结果)。

语义:将抽注指令传输到指定频道对应的会话引擎,并等待抽注指令的执行,当抽注指令进行完成后将执行结果通过“指令结果”带回。

参数:a)频道:指定所请求的连接,该句柄必须是通过connect指令获得的;b)校验码:访问凭证,由使用connect时返回的信息动态生成,确保服务请求是合法身份者发出的;c)抽注指令:具体的访问请求消息,指出需要什么样的抽注服务;d)指令结果:返回服务请求的结果;

返回值:执行成功时,返回成功信息0,此时,“指令结果”里包含执行结果,否则返回非0的不成功代码,包括指令处理超时、指定的频道不存在、连接故障、通信故障、消息格式错、消息无法执行等情况;

(1.4)单连接阻塞式抽注请求

格式:get(会话引擎定位信息,用户身份信息,抽注指令,指令结果)。

语义:将抽注指令传输到指定的会话引擎,并等待抽注指令的执行,当抽注指令进行完成后将执行结果通过“指令结果”带回,原语执行是新打开一个连接,执行完成后自动关闭连接。

参数:a)会话引擎定位信息:要连接的会话引擎的单位信息,通connect原语;b)校验码:访问凭证,由使用connect时返回的信息动态生成,确保服务请求是合法身份者发出的;c)抽注指令:具体的访问请求消息,指出需要什么样的抽注服务;d)指令结果:返回服务请求的结果;

返回值:执行成功时,返回成功信息0,此时,“指令结果”里包含执行结果,否则返回非0的不成功代码,包括指令处理超时、指定的会话引擎不无法连接、通信故障、消息格式错、消息无法执行等情况;

(1.5)查询型非阻塞抽注请求

格式:send(频道,校验码,抽注指令,服务受理号,执行状态)。

语义:将抽注指令发送的指定频道连接,然后直接返回,不等待指令结果。指令结果需要用户使用inquiry基于受理号查询获取。

参数:a)频道:指定所请求的会话服务器,必须是通过connect获得的频道;b)校验码:访问凭证,由使用connect时返回的信息动态生成,确保服务请求是合法身份者发出的;c)抽注指令:具体的访问请求消息,指出需要什么样的抽注服务;d)执行状态:返回服务请求的服务受理号和服务状态,状态内容包括当前服务处理所处的阶段,结果的大约等待时间;e)服务受理号:如果请求成功受理,则返回该标识,由于标识所发送被受理的抽注指令,以后可利用指令inquiry根据该受理号获取服务请求结果。

返回值:指令对应的服务成功受理时,返回0,否则返回不成功代码,包括指定的频道不存在、连接故障、通信故障、消息格式错、消息无法执行等情况;

(1.6)结果获取指令

格式:inquiry(频道,服务受理号,校验码,处理状态,指令结果)。

语义:查询或者获取已经通过send指令提交的服务的执行结果。

参数:a)频道:指定所请求的服务器,必须与对应的send的频道相同;b)服务受理号:所要获取的指令结果对应的服务的受理号,是由对应的Send指令返回的标识符;c)校验码:访问凭证,由使用connect时返回的信息动态生成,确保服务请求是合法身份者发出的;d)执行结果:如果对应的send请求的服务(抽注指令)已经生成并返回,即“服务状态”表示已经获得执行结果,则系统将执行结果返回到该参数;e)指令执行状态:返回执行结果的执行状态。包括当前指令处理所处的阶段、大约等待时间;如果服务已经处理完毕,则返回指令结果。

返回值:指令结果成功获取时返回0,否则返回其他代码,包括指令尚未处理完毕、指定的指令错误、服务器故障、通信故障、消息格式错、消息无法执行等情况。

(1.7)订阅型抽注请求

格式:subscribe(频道,校验码,抽注指令,指令结果处理器句柄,服务受理号,执行状态)。

语义:将抽注指令发送的指定频道连接,然后直接返回,不等待指令结果。指令结果到达后,系统进行缓存,并触发指令结果到达时间,以调用相应的指令结果处理程序。

参数:a)频道:指定所请求的会话服务器,必须是通过connect获得的频道;b)校验码:访问凭证,由使用connect时返回的信息动态生成,确保服务请求是合法身份者发出的;c)抽注指令:具体的访问请求消息,指出需要什么样的抽注服务;d)执行状态:返回服务请求的服务受理号和服务状态,状态内容包括当前服务处理所处的阶段,结果的大约等待时间;e)服务受理号:如果请求成功受理,则返回该标识,由于标识所发送被受理的抽注指令,以后可利用指令inquiry根据该受理号获取服务请求结果;f)指令结果处理器句柄:指定该原语的抽注指令执行结果对应对应的指令结果处理器,系统将其作为该指令的指令结果到达事件的事件处理器。当指令结果被返回时,系统触发该受理号的指令结果到达事件,从而触发该处理器的执行。

返回值:指令对应的服务成功受理时,返回0,否则返回不成功代码,包括指定的频道不存在、连接故障、通信故障、消息格式错、消息无法执行等情况。

(2)EITP抽注指令规范如下:

抽注指令的一般格式为JSON结构:{操作码类别1, 操作类别2, …,参数1 参数2 …},其中的元素为键值对,前面的元素为操作类别指示,其后是操作数指示,这些具体定义均由具体的应用确定。

抽注指令的执行,经指令分析器分析后,交给指令处理器控制执行,而指令处理器的工作是通过调用用户自定义的资源访问模块实现的。

抽注指令分为系统管理指令、系统预定义指令与用户自定义指令三类。

(2.1)系统管理指令用于远程管理会话受理端(服务端),包括远程重启服务、暂停服务、远程配置服务等功能,包括:

(2.1.1)重启指令

格式:{“SysManage”:“Restart”, “ServerName”:服务器名称}。

功能:重启名称为“服务器名称”的会话受理端的服务。可以被重启的必须是以前使用Suspend指令暂停的或者是在在正常运行的服务。如果服务出现故障庅该指令无效。重启时同时重新加载系统配置文件。

参数:a)服务器名称:指定重启对象,该名称必须是在会话引擎中注册的服务器,包括会话引擎本身或者其他物联引擎。

(2.1.2)暂停指令

格式:{“SysManage”: “Suspend”, “ServerName”:服务器名称}。

功能:暂停指定服务器的运行,使其处于挂起状态。如果已经处于挂起状态,或者指定服务器故障,则该指令不起作用。

参数:a)服务器名称:拟暂停的服务器的名称,必须是在会话引擎注册的服务。

(2.1.3)系统设置指令

格式:{“SysManage”:“Config”, “ServerName”:服务器名称, “ConfigurationFile”:系统配置文件名称}。

功能:不停机重新加载系统的配置文件,使其立即生效。

参数:服务器名称:拟重新设置的服务器的名称,必须是在会话引擎注册的服务;

(2.1.4)系统事件驱动设置指令

格式:{“SysManage”:“EventProcessor”, “ServerName”:服务器名称, “SysEvent1”:事件处理器文件名1, “SysEvent2”:事件处理器文件名2,…}。

功能:为系统预定义事件SysEvent1、SysEvent2、…依次设置事件处理器。设置后,当发生对应事件时,系统自动调用相应的处理器。

参数:a)服务器名称:拟暂停的服务器的名称,必须是在会话引擎注册的服务。

(2.2)系统预定义的抽注指令:系统对一些可有多种应用共同使用的具有领域共性的对象抽注进行抽象,形成领域通用的抽注指令。目前包括关系数据库抽注指令、大数据抽注指令、物联网对象抽注指令等。

其中,关系数据库抽注指令:关系数据库抽注指令实现多关系表的筛选读取、批量写入等功能。

作为客户端,访问对象端的关系数据,只需指出访问需求,及抽注需求,而无需理解对象端的数据库结构。客户端访问数据,以“数据名“指称私钥操作访问的数据。这种模式,对象端的数据类似与商品,它的名称与功能特性等都已经由对象端指定,客户端只需按照名称访问数据。因此,这个数据名是有对象端维护的,并且在对象端内是唯一的。

对象端负责处理抽注指令,包括数据库连接、关闭、身份认证等事务。

在逻辑上,数据抽注指令针对的是一个数据记录集合,抽注都是针对这个逻辑集合的。抽注指令分为定位、读取、插入、删除、更新等操作。

(2.2.1)数据定位指令

格式:{“DataSet”:“Locate”, “DataSetName”:数据集名称, “LogicExp”:定位条件 }。

功能:在数据集中确定满足条件的记录的顺序号。

执行结果:返回满足条件每个记录的顺序号与记录条数。顺序号是指满足条件的记录在目标记录集中的排列次序,序号从0起。

参数:a)DataSetName:指称所操作的逻辑数据集名称,即目标记录集名称;b)LogicExp:指定查找定位条件,即求满足该条件的记录的顺序号。

(2.2.2)数据读取指令

格式:{“DataSet”:“Read”, “DataSetName”:数据集名称,“LogicExp”:定位条件,“Interval”:返回区间}。

功能:读取目标记录集中满足条件的在区间中的记录。

执行结果:返回满足条件的记录中的在区间“返回区间”中的记录。

参数:a)DataSetName:指定目标数据集,在该数据集中读取;b)LogicExp:指定查找条件,即求满足该条件的记录将被读取;c)Interval:形式为“n1,n2”的整数对,指示只读取顺序号在该区间内的记录。顺序号为相当于满足条件的记录组成的序列的顺序号。

(2.2.3)数据删除指令

格式:{“DataSet”:“Delete”, “DataSetName”:数据集名称, “LogicExp”:选择条件 }。

功能:将目标记录集中满足条件的记录删除;

执行结果:返回实际删除的记录数目;

参数:a)DataSetName:指称所操作的逻辑数据集名称;b)LogicExp:指出数据集中的筛选条件。

(2.2.4)数据插入指令

格式:{“DataSet”:“Insert”, “DataSetName”:数据集名称,“LogicExp”:定位条件,“Replace”:是否替换,“DataSet”:待插入数据集, }

功能:在数据集插入一批数据。

执行结果:无。

参数:a)DataSetName:目标数据集,在该数据集中执行插入操作;b)LogicExp:指定插入位置。当值为0表示在记录集的最前面插入,值为-1表示追加到末尾。其他情况,表示插入到满足条件的第一条记录的前面;c)Replace:值为1时表示替换,即用DataSet指定的记录集替换满足条件的记录集,否则不替换。

(2.2.5)数据更新指令

格式:{“DataSet”:“Update”, “DataSetName”:数据集名称,“Keyword”:关键字,“WhenMatch”: 匹配处理方式, “WhenNoMatch”:无匹配处理,“DataSet”:待追加数据集 }。

功能:在数据集追加一批数据。

执行结果:无。

参数:a)DataSetName:指称所操作的逻辑数据集名称,即目标数据集;b)Keyword:形式为用加号”+”;连接在一起的记录字段名称,用于指定“匹配记录”的判定标准:当两条记录的关键字对应的字段值按照关键字中字段次序首尾相连形成的字符串相等时,表示这两条记录“匹配”;c)WhenMatch:指出当存在匹配记录时的处理方式,值为1替换,即用DataSet中的匹配记录替换目标记录集中的所有匹配记录;值为2表示插入,即在目标记录集中将DataSet中的匹配记录插入在匹配记录的前面;值为3表示跳过,即不使用DataSet中的匹配记录更新目标记录集;d)WhenNoMatch:指出当不存在匹配记录时的处理方式,值为1表示跳过,即对不匹配记录不处理,视为没有;值为2表示插入,即将DataSet中的无匹配记录插入到目标记录集中的符合关键字排序的位置;e)DataSet:源数据集,集待更新到源目标记录集中的数据。

返回区间:形式为“n1,n2”的整数对,指示只返回顺序号在该区间内的记录。顺序号为相当于满足条件的记录组成的序列的顺序号。

融合网中的超资源节点,场融合模型和融合引擎的开发,均按照“格件”模型中的横向融合机制实现。详见专利“基于形式领域融合的计算模型”。

如上所述便可较好地实现本专利。

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