CN111240649A - 一种支撑智能环境快速实现的软件定义智能架构系统及其方法 - Google Patents
一种支撑智能环境快速实现的软件定义智能架构系统及其方法 Download PDFInfo
- Publication number
- CN111240649A CN111240649A CN202010064921.XA CN202010064921A CN111240649A CN 111240649 A CN111240649 A CN 111240649A CN 202010064921 A CN202010064921 A CN 202010064921A CN 111240649 A CN111240649 A CN 111240649A
- Authority
- CN
- China
- Prior art keywords
- intelligent
- rule
- node
- implementation
- script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提出了一种支撑智能环境快速实现的软件定义智能架构系统及其方法,该方法包括以下步骤:S1,规则控制器解析脚本配置文件,将智能实现分解为包含位置信息的计算单元,并基于智能节点的位置信息,将健康看护服务对应的规则集分配到相应位置的智能节点上;S2,智能节点基于脚本解释器编译脚本配置文件,将健康看护服务中功能算法对应的脚本文件编译为系统可执行的代码文件。本发明能够快速、有效地实现智能环境的智能服务、功能调整,并充分降低了系统开发的代价,提高了智能实现的灵活性。
Description
技术领域
本发明涉及一种智能环境技术领域,特别是涉及一种支撑智能环境快速实现的软件定义智能架构系统及其方法。
背景技术
随着人工智能与普适计算的迅速发展,以智能节点为基础的智能环境(SmartEnvironment)作为热门的研究领域在近几年得到了长足的发展与重视,其通过在家庭、办公、公共服务场所等环境安装智能传感器,提供更舒适、更安全、更方便的居住、办公、服务环境,并依据每个人不同的服务需求代替人完成各种体力劳动和重复性任务。另外,智能环境巨大的应用价值还体现在其具体的用途上,例如智能会议室、智能教室、智能家居等。近年来,研究人员也逐渐开始研究利用智能环境在老年人或残障人士的健康监测、生活辅助上能够提供更好的服务,具有代表性的工作包括乔治亚理工的Aware Home、英特尔西雅图研究院的Ageing-in-Place、英国布鲁内尔大学的Millennium Home等。这些智能环境通过嵌入在智能家庭中的智能感知、通讯、交互设备(后面统称为“智能节点”)来监控、引导老年人的日常生活,从而延长他们可行的独立生活时间,并提供更好的安全保障。
然而,经过多年的研究与发展,智能环境并未在老年看护等领域得到广泛地应用和推广,其主要问题包括三方面,如图1:
1)智能环境中智能实施策略效率低:在传统智能节点的智能实施上,生产商一般会根据智能环境中特定的需求生产出含有对应传感器的节点设备,并将其功能算法在节点中烧录固化,然后按照既定的模式进行设备的安装和部署。然而,这种智能实施策略虽然性能良好,但是效率低下、调整困难、过分依赖设备生产商,导致当前智能环境大多被用在特定的应用。
2)智能环境中系统开发方法代价高、难度大:在传统智能环境系统的开发中,开发人员需要针对不同厂商、不同功能的智能节点逐一进行底层代码开发,并将其在智能节点上烧录固化。然而一个功能丰富的智能环境大概需要近百个智能节点,这种系统开发方法需要开发人员投入大量的时间与精力,开发成本高、效率低。另外,不同生产商的智能节点设备异构性高,开发人员需要多种底层开发语言,智能环境系统开发难度大。
3)智能环境中智能的实现不能应对用户合理的需求变化做出灵活的调整:在智能环境的具体应用中,一旦系统需要升级,或者人员、用户需求、设备发生一些变化时,(例如:新型传感器的接入、老年病并发症的出现,或者用户提出了新的服务需求等),往往需要开发人员对智能设备重新进行嵌入式软件开发。因此,传统的智能环境需要大量的时间和资源去更新、维护系统中数量庞大的智能节点,智能的实现不能应对用户合理的需求变化做出灵活的调整,这无疑对系统升级、技术更新和智能环境的推广造成了巨大的阻碍。
因此,为了提高智能环境的智能实施效率、降低系统开发的代价、保证智能实现的灵活性、实现系统的快速部署与重构,我们提出一种支撑智能快速实现的软件定义智能架构,将智能环境进行分层模型设计,降低不同层次间的关联度和耦合度,从而使整个系统的开发和升级更加灵活。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种支撑智能环境快速实现的软件定义智能架构系统及其方法。
为了实现本发明的上述目的,本发明提供了一种支撑智能环境快速实现的软件定义智能架构系统,包括OS层模块、智能层模块、控制层模块以及应用层模块;
所述OS层模块由传感元件和特征数据计算器组成,负责智能环境中特征数据的计算、整合和存储,实现原始数据的实时采集,并通过实时数据通讯组件将特征数据或原始数据发送至智能层模块;
智能层模块负责智能节点的脚本配置、服务控制、规则推理,基于脚本形式的规则实现计算、统计、推理、通讯服务,并为OS层模块和控制层模块分别提供数据采集服务和规则集处理服务;
控制层模块负责智能节点的规则分配、地址解析、规则集配置更新服务,并连接应用层模块,向客户端应用发送系统所需的推理结论、特征数据;
应用层模块包括程序开发接口和基于此接口开发的健康看护应用服务。
在本发明的一种优选实施方式中,程序开发接口用于提供特征数据和相应计算、推理结论的实时查询、历史查询接口服务;
基于此接口开发的健康看护应用服务用于远程接收实时智能节点特征数据,提供睡眠监测、摔倒检测、活动识别之一或者任意组合服务。
本发明还公开了一种支撑智能环境快速实现的软件定义智能架构方法,包括以下步骤:
S1,规则控制器解析脚本配置文件,将智能实现分解为包含位置信息的计算单元,并基于智能节点的位置信息,将健康看护服务对应的规则集分配到相应位置的智能节点上;
S2,智能节点基于脚本解释器编译脚本配置文件,将健康看护服务中功能算法对应的脚本文件编译为系统可执行的代码文件;
S3,智能节点基于功能算法的数据需求,调用通讯服务,与相邻智能节点通讯,交换计算所需的特征数据;
S4,智能节点执行编译后的代码文件,基于执行引擎完成健康看护服务中的计算、统计、推理任务,并将执行结果与服务反馈发送到规则控制器;
S5,规则控制器通过数据通讯组件,将健康看护所需的特征数据、推理结论传输到应用层,实现健康看护服务。
在本发明的一种优选实施方式中,在智能层模块中包括脚本推理引擎,脚本推理引擎包括脚本解释器、执行引擎和底层库;脚本解释器包括词法与语法分析、算法操作、统计操作、通讯操作和规则推理;底层库包括基础函数库、通讯实现库和推理知识库;
脚本解释器用于识别输入的脚本文件,然后将识别后的输出命令作为执行引擎的输入,从而得到不同的执行结果;
执行引擎包括计算引擎、通讯引擎、推理引擎和事件引擎,通过读入规则和上下文数据,进行上下文推理,最后得到推理结果。
在本发明的一种优选实施方式中,脚本解释器的工作方法包括以下步骤:
1)将脚本配置文件读入内存;
2)根据预定义的词法解析规则进行脚本词法分割,得到token,或者执行对应的动作Action;
3)语法解析器读入词法分析过程后的token,根据语法规则生成具有语义,当满足一模式下的语义则执行该模式下对应的动作Action;
4)将步骤3)产生的动作作为执行引擎的输入,进而进行推理计算。
在本发明的一种优选实施方式中,在脚本解释器中,用Flex&Bison工具生成词法、语法解析器的源程序,包含定义段、规则段和用户代码段;其中:
1)定义段包含名字的定义,名字由一个或多个字母、数字、下划线、短横线组成,而名字的定义从其后的第一个非空白字符开始直到行尾;
2)规则段包括模式和动作,其中模式为正则表达式,动作为C语句表达,即模式指出了一个单词的构成,当分析出一个符合该规则的单词时,就执行相应的动作;
3)将用户代码原样拷贝到执行文件中。
在本发明的一种优选实施方式中,智能节点的功能恢复包括以下步骤:
1)当某个设备节点功能失效时,其他智能节点察觉到失效信息;
2)智能节点将信息发送到规则控制器;
3)规则控制器依据已掌握的信息,计算出需要恢复的规则;
4)将规则指令集发送到基础设备层中需要恢复的智能节点;
5)智能节点依据新的规则指令集执行相应的任务。
在本发明的一种优选实施方式中,包括如下之一或者任一组合定义:
定义1.智能实现:智能实现代表着智能环境中包含节点位置信息的智能功能模块,由功能描述、输入数据集、输出数据集、资源需求等元素组成,表示为 Ri={Ni,INPi,OUTPi,CPi,STi,CMi}={Cj},其中,Ri表示第i种智能实现;Ni为标签信息,代表智能实现中包含节点位置信息的功能描述;INPi代表此智能实现的输入数据集; OUTPi代表输出结果集合;CPi为此智能实现完成所需要的计算资源;STi代表此智能实现完成所需要的存储资源;CMi代表此智能实现对通讯能力的要求;
定义2.标签:标签用来表示智能节点所处的位置及其所能提供功能,包含节点的类型,智能实现的类型,表示为Ni={Nsi,Npi,Nti},其中,Nsi代表智能实现所需节点的类型集合;Npi为智能节点所对应的位置集合;Nti为此智能实现的类型;
定义3.计算单元:计算单元代表着节点提供的计算服务,是包含位置信息的一组计算规则集合,表示为Cj={Cnj,Cinpj,Coutpj,Ccpj,Cstj,Ccmj},其中,Cnj需要对位置信息进行更细致的划分。
在本发明的一种优选实施方式中,智能层的设计包括:
1)配置服务:用于存储智能节点工作时遵循以下之一或者任意组合规则:数据处理规则、数据传输规则以及采用基于脚本配置的方式来存储的规则;
2)基础服务:用于提供智能节点的基础计算功能与服务,包括算术计算、统计计算、推理计算以及通讯服务;
3)服务控制:针对基础服务的结果提供服务反馈,控制相关设备进行调整操作;
4)计算及推理引擎为权利要求4中的脚本推理引擎。
在本发明的一种优选实施方式中,规则控制器基于脚本配置文件将智能实现分解为一定量、不同功能的规则集,并依据规则集对应的位置信息,将规则集依次传输到相应的智能节点。
综上所述,由于采用了上述技术方案,本发明能够快速、有效地实现智能环境的智能服务、功能调整,并充分降低了系统开发的代价,提高了智能实现的灵活性。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明智能环境推广所面临的问题和解决方案示意图。
图2是本发明软件定义智能架构示意图。
图3是本发明软件定义智能架构的工作流程示意图。
图4是本发明脚本推理引擎的原理图示意图。
图5是本发明智能节点中智能层的设计示意图。
图6是本发明规则控制器工作架构示意图。
图7是本发明智能节点中智能实现的数据结构示意图。
图8是本发明传统方法与软件定义智能架构的最终得分示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
如图1所示,本文的主要研究内容包括三个方面:
1)为了提高智能环境智能实施的效率,我们开发了脚本推理引擎,主要由脚本解释器、执行引擎、底层库三部分组成,基于脚本配置的规则推理,实现了基本计算、统计计算、推理计算、智能功能常用算法、上下文感知算法等基础功能与服务。
2)为了降低智能环境的系统开发成本、提高系统开发效率,本文基于传统节点提出了智能层,将智能节点工作模式设计中硬件任务的静态配置变更为基于脚本的动态配置,进而就可以通过这层结构合理且动态地管理节点资源,从而达到对开发人员屏蔽底层设备的差异性和具体的实现细节以及实现系统快速部署与调整的目的。
3)为了提高智能环境系统的灵活性,我们将控制层从智能节点中分离出来,设计了一种规则控制器,通过规则集的配置和更新,使智能实现的调整更灵活、更方便。另外,开发人员可以基于规则控制器更加合理地将规则计算单元分配到相应的智能节点,以降低智能环境系统中数据传输消耗从而减少系统响应时间。
1相关工作
1.1智能环境
随着物联网的快速发展以及智能设备、可穿戴设备等物联网设备的日益普及,智能环境作为一个提供智能控制、生活辅助、环境监测、危险预警、安全监控等多种服务的智能化技术,受到了产业界、学术界的广泛关注。近年来,研究人员研究利用智能环境为老年人提供健康监控、生活辅助、危险警告等服务,以减少老年健康看护系统的压力。例如,Portet等人研究表明智能环境可以对现有家庭安全、健康、功能状态等进行自我监控,是健康看护迫切需要的技术;Nehmer等人利用智能环境提供更好的健康监测辅助系统,提高老年人或残疾人的生活质量;Medjahed等人提出了一个自动家用医疗监控系统,综合老年人的生理数据、行为数据、环境条件、医疗知识以确保老年人可以独立、安全地生活在他们的家里。除了健康看护系统的研究,更多的研究人员致力于智能环境的具体服务研究,比如活动识别、情感监测、失眠检测、摔倒检测等。然而,智能环境并未在老年健康看护领域得到广泛的应用,其主要原因是智能环境实施效率低、系统开发代价高、智能的实现不灵活。因此,本文基于软件定义技术构建软件定义智能架构,打破传统智能环境的开发模式,将传统智能环境功能算法的代码开发和烧录固化工作变更为基于规则集的脚本配置工作,提高了智能环境的实施效率,降低了系统开发成本,使智能实现的调整更加方便。
1.2软件定义技术
软件定义技术最早出现在斯坦福大学Mckeown教授在2009年提出的软件定义网络(Software DefinedNetwork)。软件定义网络将因特网的控制层和数据层分离,其中数据层仅执行数据包转发任务,控制层负责路由决策,从而降低节点的负载,增强了网络的灵活性和可控性。近年来,随着软件定义架构、控制器设计、转发规则设计、标准化协议等相关技术领域研究的开展,软件定义技术成为当前最热门的网络技术。2012年,Mahmud和Luo同时研究了软件定义传感器网络,将软件定义技术和无线传感网络(Wireless Sensor Network)结合,完成无线传感网络的感知、路由、测量等任务。软件定义无线传感器网路的架构同软件定义网络类似,将无线传感网络分为三层:最上层为应用层;中间层是逻辑控制层,负责与下层节点通讯、发布指令;底层是节点所在的数据转发层,根据逻辑控制层发来的指令执行相应的操作。目前,软件定义技术由于其开放性和可编程性,已经在无线传感网络、数据中心网络、云计算、网络安全等领域得到了广泛的应用。
同无线传感网络类似,智能环境也是基于智能节点组成智能系统以提供计算、感知、推理、预测、辅助等功能服务。但在传统智能环境中,智能节点的层次划分不能应对用户合理的需求变化。例如:心脏病老人和癫痫病老人看护都需要对老人心跳状态进行监测,两者的区别在于监测心跳的阈值和超过阈值的持续时间等参数,其基本的计算方法:排序、寻找最大值等算法都是相似的,仅需要简单的参数调整或逻辑重组就可以完成任务,但传统方法却需要回到开发人员手中才能完成应对需求变化的调整。因此,我们基于软件定义技术,对智能节点进行分层模型设计,将智能环境中比较通用的、支撑智能实现的一些要素分离出来,统一为预装在智能节点上的一个标准化的智能层。
1.3脚本推理引擎
基于规则的推理系统类似于人的思维方法,各条规则之间相互独立,具有很强的模块特性,易于解释功能,在硬件系统设计、软件工程、编译器、网络协议、计算语言、网络漏洞分析等领域得到广泛的应用。脚本语言与高级程序设计语言不同,是以构件粘贴的方式进行设计的,即是将符合粘贴条件的构件拼装在一起形成应用。脚本构件的使用不依赖于应用中别的构件,它由脚本编写者参数化,并能够在执行期间动态地改变。因此,本文结合规则推理与脚本语言构建脚本推理引擎,通过脚本解释器识别不同的配置文件,然后将识别后的输出作为执行引擎的输入,基于规则库实现不同的执行结果。
总之,本文提出了一种软件定义智能架构,通过分层模型设计,将智能环境的系统开发工作转换为基于规则集的脚本配置工作,不仅解决了智能环境中智能实施效率低、开发代价高、智能实现不灵活等问题,也很大程度上促进了智能环境在老年看护等领域的应用与推广。
2软件定义智能架构设计
在本节中,我们主要介绍了智能环境中软件定义智能的整体架构设计及其工作流程,并详述了智能实现的基础定义及其设计原则。
2.1架构设计
最近几年,研究人员针对软件定义技术提出了多种架构方案,主要分为基础设备层、控制层和应用层。基础设备层由采集设备、路由设备、转发设备等组成,负责数据的采集、转发和处理;控制层为中间层,主要根据类OpenFlow协议与底层设备通讯,同时为应用层提供可扩展的编程接口;架构的最上层是应用层,主要包括一些不同类型的服务与应用。
如图2所示,本文采用软件定义技术的分层思想,将软件定义智能架构分为以下四个部分:
1)OS层
OS层由各种类型的传感元件(振动元件、压敏元件、力敏元件、声敏元件等等) 和特征数据计算器组成,负责智能环境中特征数据的计算、整合和存储,实现原始数据的实时采集,并通过实时数据通讯组件将特征数据或原始数据发送至智能层。具体的,压敏元件(压力传感器)采集的压力信号传输至OS层,在OS层内进行特征计算,计算后通过数据通讯组件(例如WiFi、4G、3G、Bluetooth等等)传输至智能层;该OS层可以为连接有压力传感器的开发板(BeagleBone开发板),并具有 WiFi收发功能,将压力传感器采集的压力信号经WiFi传输至智能层;力敏元件(压强传感器)采集的压强信号传输至OS层,在OS层内进行特征计算,计算后通过数据通讯组件传输至智能层;该OS层可以为连接有压强传感器的BeagleBone开发板,并具有4G收发功能,将压强传感器采集的压力信号经4G传输至智能层;声敏元件 (例如驻极体话筒)采集的声音信号传输至OS层,在OS层内进行特征计算,计算后通过数据通讯组件传输至智能层;该OS层可以为连接有驻极体话筒的BeagleBone 开发板,并具有LORA收发功能,将驻极体话筒采集的声音信号经LORA传输至智能层。在OS层中,针对环境中的随机噪声,使用Daubechies作为小波基函数,通过小波变换分解出不同波形,把随机噪声的波通过去噪阈值Tn0筛选的方法去除,再重构成新的波形;针对设备本身产生的高频噪声,把傅里叶变换后高于频率阈值Tf0的系数置零来实现低通滤波,再利用傅里叶逆变换重构出新的波形;由于滤波后振动幅度差异非常小,最后需要通过最大最小归一化处理适当放大最大值和最小值的差异使其显示出清晰的峰值。
2)智能层
智能层是软件定义智能架构的核心,主要负责智能节点的脚本配置、服务控制、规则推理,基于脚本形式的规则实现计算、统计、推理、通讯等服务,并为OS层和控制层分别提供数据采集服务和规则集处理服务。图2详细给出了智能层中的主要功能模块,包括脚本配置、服务控制以及脚本推理引擎等。脚本配置包括上下文配置、通讯配置、存储配置等等,脚本配置服务用于接收和存储智能节点工作时所要遵循的相关规则集合;服务控制包括通讯服务、计算服务、推理服务等等,服务控制用以提供智能节点工作所需的算术计算、统计计算、推理服务以及通讯服务等,并接收服务执行的反馈;脚本推理引擎包括脚本解释器、运算控制、通讯控制、逻辑控制、事件流等等,脚本推理引擎解析脚本配置文件,并基于计算引擎、推理引擎、通讯引擎等执行引擎实现智能环境中的功能服务。在智能层中,可以包括以下特征提取:极差特征提取、均值特征提取、标准差特征提取、能量特征提取、频域熵特征提取和均方根特征提取:
极差特征提取的方法为:Range=max(X)-min(X),其中,Range表示极差特征; max(X)、min(X)分别为X集合中的最大值、最小值;
上述提取采用时间队列实现,该队列用于存储时间和对应的动作数据,该队列包含两个属性:时间窗口t和时间步长T0,时间窗口表示该队列可以存储多长时间的数据,时间步长表示窗口每次移动的距离,即该队列每次计算后需要丢弃多长时间的数据,特征提取过程中将实时产生的动作数据通过时间队列存储起来,当队列存储满指定时间窗口的数据时,计算队列中数据的特征,计算完毕后丢弃前T0时间的数据,添加新数据,重新计算队列中的特征,这样就能实时计算出当前时间点下的动作特征。
3)控制层
控制层是软件定义智能架构的中间层,与智能层相连,主要负责智能节点的规则分配、地址解析、规则集配置更新等服务,并连接应用层,向客户端应用发送系统所需的推理结论、特征数据。
4)应用层
应用层包括软件定义智能架构中功能服务的程序开发接口和基于此接口开发的健康看护应用服务。程序开发接口主要提供特征数据和相应计算、推理结论的实时查询、历史查询等接口服务。在此接口上开发的应用服务,可以远程接收实时智能节点特征数据,提供睡眠监测、摔倒检测、活动识别等服务。
如图3所示,在软件定义智能架构中,智能环境系统实现的基本流程主要包括6步:
Step1.开发人员通过分析老年用户在智能环境中的智能看护需求,设计健康看护服务,然后为健康看护服务匹配相应的智能实现方法,并基于节点的计算资源编写功能算法的脚本配置文件,最终将脚本配置文件发送给规则控制器;
Step2.规则控制器解析脚本配置文件,将智能实现分解为包含位置信息的计算单元,并基于智能节点的位置信息,将健康看护服务对应的规则集分配到相应位置的智能节点上;
Step3.智能节点基于脚本解释器编译脚本配置文件,将健康看护服务中功能算法对应的脚本文件编译为系统可执行的代码文件;
Step4.智能节点基于功能算法的数据需求,调用通讯服务,与相邻智能节点通讯,交换计算所需的特征数据;
Step5.智能节点执行编译后的代码文件,基于执行引擎完成健康看护服务中的计算、统计、推理等任务,并将执行结果与服务反馈发送到规则控制器;
Step6.规则控制器通过数据通讯组件,将健康看护所需的特征数据、推理结论等传输到应用层,以实现睡眠监测、跌倒检测、活动识别等健康看护服务。
2.2基础定义与设计原则
智能环境基于部署在环境中丰富的、功能相异的智能节点提供健康监控、生活辅助等服务,支撑其智能实现的功能算法通常被烧录在相应的智能节点上。当智能环境中人员、设备、用户需求发生变化时,系统开发人员需要重新定义用户需求,开发智能节点的功能算法,并将其重新烧录在传感器节点上。因此,传统的智能环境系统开发方法开发代价高,智能实现不能灵活地适应人员、设备、用户需求的合理性变化。本文基于软件定义技术提出了一种新的支撑智能快速实现的软件定义智能架构,将智能环境中的智能实现从功能算法的代码开发与烧录固化转换为基于脚本规则的动态配置,从而提高智能的实施效率,降低系统开发的成本,使智能的实现更加灵活。在详细描述软件定义智能架构之前,我们先给出一些软件定义智能的基础定义。
定义1.智能实现。智能实现代表着智能环境中包含节点位置信息的智能功能模块,由功能描述、输入数据集、输出数据集、资源需求等元素组成,表示为 Ri={Ni,INPi,OUTPi,CPi,STi,CMi}={Cj}。其中,Ri表示第i种智能实现;Ni为标签信息,代表智能实现中包含节点位置信息的功能描述;INPi代表此智能实现的输入数据集; OUTPi代表输出结果集合;CPi为此智能实现完成所需要的计算资源;STi代表此智能实现完成所需要的存储资源;CMi代表此智能实现对通讯能力的要求;后面一部分则是基础计算单元的集合,即INPi,OUTPi,CPi,STi,CMi分别为:输入、输出、计算资源需求、存储资源需求、通讯能力需求。
定义2.标签。标签用来表示智能节点所处的位置及其所能提供功能,包含节点的类型,智能实现的类型等,表示为Ni={Nsi,Npi,Nti}。其中,Nsi代表智能实现所需节点的类型集合;Npi为智能节点所对应的位置集合;Nti为此智能实现的类型。
定义3.计算单元。计算单元代表着节点提供的计算服务,是包含位置信息的一组计算规则集合,表示为Cj={Cnj,Cinpj,Coutpj,Ccpj,Cstj,Ccmj}。其中,Cnj需要对位置信息进行更细致的划分,例如对卧室进行分块划分。
在智能环境系统开发中,每个智能实现都可能存在着三种关系:
为了提高智能环境系统的开发与更新效率,本文所提出的软件定义智能架构需要遵循以下设计原则:
设计原则1.以“智能实现”为主体的开发模式。与传统的智能环境系统开发方式不同,软件定义智能架构中系统开发以“智能实现”为基础。开发人员通过分析用户需求,选择一定量、不同位置、不同功能的“智能实现”来实现健康监控、生活辅助等老年病人看护服务。
设计原则2.智能节点位置可寻址。在软件定义智能架构中,任何一个智能节点都可以和与其存在物理层链接(可能是多跳的)的智能节点通讯;任务一个节点都可以与规则控制器通讯,并且能够向规则控制器发送任务响应。这一设计原则有助于实现相对便捷的编程模型,并利用规则控制器分配计算资源,对系统开发人员屏蔽底层设备的异构性。
设计原则3.有限的规则库。底层设备节点提供有限的通用规则库,如均值计算、计时器、数据统计、阈值处理、数据传输和其他形式的简单规则运算。智能节点通过激活规则库的子集,完成计算单元的任务。因此,提供一个良好的、高效的规则库是软件定义智能架构设计的重点。
设计原则4.灵活性和可管理性。灵活性和可管理性是软件定义智能架构设计的目标。灵活性代表智能环境中智能实现可以灵活地调整,它允许系统开发人员依据人员、设备、用户需求的变化调整相关的智能实现。可管理性代表智能节点计算资源的可管理性,当智能节点新增、减少、更换时,通过软件定义智能架构调整计算单元分配,充分利用节点资源。
这些设计原则产生了三个重要的优点:
1)软件定义智能架构对系统开发人员屏蔽了底层设备的异构性,开发人员可以使用熟悉的编程方法,同时系统开发也不再需要功能算法的烧录固化;
2)智能节点基于规则控制器分配的规则集,执行计算、统计、推理等相应的操作,承担智能环境中的智能实现任务,智能实现的调整更为灵活;
3)规则库是通用的,新的设备节点通过部署规则库,可以迅速地融入智能环境系统中。
3关键技术
本节详细介绍了软件定义智能实现的关键技术,包括:智能节点如何解析脚本配置文件,实现智能环境中高效的智能实施;如何在智能节点中构建智能层,实现计算、统计、推理、通讯等任务,对开发人员屏蔽底层设备异构性,降低系统开发成本;如何设计智能规则控制器,基于规则集的配置更新,使智能实现的调整更加灵活。
3.1脚本推理引擎设计
脚本推理引擎作为智能节点中感知、计算、推理的核心,是基于脚本配置文件实现算术运算、统计计算、通讯配置、逻辑推理、上下文感知算法等的核心部件。如图4所示,脚本推理引擎主要由脚本解释器、执行引擎、底层库三部分组成。脚本解释器包括词法与语法分析、算法操作、统计操作、通讯操作、规则推理,脚本解释器识别不同配置的文件,然后将识别后的输出命令作为执行引擎的输入,从而得到不同的执行结果,是工作引擎中一个重要的组成部分;执行引擎分为不同的功能模块,包括计算引擎、通讯配置引擎、推理引擎、事件引擎等,通过读入规则与上下文数据,进行上下文推理,最后得到推理结果,该结果反映到物理环境或者作为逻辑结果供后续处理。底层库包括基础函数库、通讯实现库、推理知识库。
在智能环境中,由于嵌入式平台CPU、内存、通讯等资源的限制,脚本解释器需要采用“轻量级”的方式来实现。本文中,嵌入式平台的解释器/编译器用Felx&Bison 工具来迅速搭建,其中,Flex工具读取源代码并将代码分解为各种预定义的词汇 (token),Bison工具则是根据Flex分解的token来找到其他组成方式。脚本解释器的详细工作流程如下所示:
1)将脚本配置文件读入内存;
2)根据本文预定义的词法解析规则进行脚本词法分割(词法分析),得到一系列的token,或者执行对应的动作(Action);
3)语法解析器(使用Bison工具编写)读入词法分析过程后的token,根据语法规则生成具有一定语义的模式,当满足该模式则执行对应的动作(Action);
4)将步骤3产生的动作作为执行引擎的输入,进而进行推理计算。
在脚本解释器中,Flex&Bison工具生成词法、语法解析器的源程序包含三部分内容:定义段、规则段和用户代码段。
1)定义段包含着一些简单名字的定义(Name Definitions),旨在简化扫描器的规范。名字可以由一个或多个字母、数字、下划线、短横线组成,而名字的定义从其后的第一个非空白字符开始直到行尾。例如,DIGIT[0-9]定义了一个名字DIGIT,其定义是一个数字。
2)规则段由模式(Pattern)和动作(Action)两部分组成,其中模式就是一个正则表达式,动作一般是一些C语句。模式指出了一个单词是如何构成的,当分析出一个符合该规则的单词时,就执行相应的动作。
3)用户代码会被原样拷贝在执行文件中,在这里可以定义一些辅助函数或代码,供扫描器调用,或者调用扫描器。用户代码段是非必须的。
例如:[a-zA-Z_][a-zA-Z0-9]*(模式)new::std::string(yytext,yylen);returnSTRING;(动作),该规则表示当扫描到一个字符开头的字符串时,就实例化一个string 对象。
最终,脚本推理引擎将脚本解释器的输出作为执行引擎的输入,基于基础函数库、通讯规则库、推理知识库等,实现了算术运算、统计运算、逻辑推理、集合运算、上下文感知、通讯配置、规则运算等操作。目前,脚本推理引擎支持实现的数据类型和各类操作如表1所示,其中数据类型包括布尔类型、数字类型、字符串类型、枚举类型(enum)、正则表达式、绝对/相对时间、端口号(port)、IP地址(Addr)、集合类型、文件类型、事件类型等,涵盖了智能环境系统支撑智能实现的所有数据类型。另外,更详细的推理引擎描述与实现细节可以参考我们已开发的推理机模型 (https://github.com/wclight55/RuleEngine.git)。总之,我们提出的脚本推理引擎通过脚本文件配置与更新,替代了传统智能节点基于功能算法烧录固化的智能实施方法,提高了智能环境中智能实施的效率,提高了智能节点中功能算法调整的灵活性,有利于智能环境的开发与推广。
3.2智能层设计
通过研究智能环境中功能服务的实现,我们发现智能的实现可以拆解为一定量、不同位置、不同功能的智能节点组合。而且某些功能服务的改变,仅需要智能节点的工作模式进行非关键性变化或小范围内节点工作模式的改变,例如参数变化、阈值变化、计算单元变化等。这意味着可以在传统智能节点中增加一层结构,将智能节点工作模式设计中硬件任务的静态配置变更为基于脚本的动态配置,进而可以通过这层结构合理、动态地管理节点资源,从而达到对用户、系统开发人员屏蔽底层设备的差异性和具体实现细节,以实现系统快速部署与调整的目的。在本文中,这一层次结构被称为智能层,是一个集成了推理服务、配置服务、控制服务等常用智能服务的相对独立的层次,支持智能节点的智能实现。图5描述了智能层的结构模型,设备节点可以通过智能层对此节点进行脚本配置变更、小幅度工作模式的变化,以满足人员、用户需求变化带来的功能服务的变动。
如图5所示,智能节点中智能层与OS层相连,基于脚本规则的动态配置实现节点功能的快速调整,对开发人员屏蔽了底层设备的差异性,同时向上层应用提供统一的智能调用接口。其中,OS层包含底层驱动、系统内核、设备接口、通讯协议、图形界面等功能,负责智能节点的资源分配、任务调度等;智能层包含计算及推理引擎、配置服务、基础服务、服务控制等功能,主要负责脚本配置、功能计算、规则推理等,支撑智能节点的功能实现。规则服务包括规则推理、算数计算、统计计算等等,脚本配置包括通讯规则、存储规则、上下文配置,其智能层设计的实现细节如下:
1)配置服务:用于存储智能节点工作时所要遵循的相关规则,例如数据处理规则、数据传输规则、数据相应规则等。采用基于脚本配置的方式来存储规则,以便更动态地更换这些规则,当人员、用户需求发生变化时,仅需要由上层传入相应的配置文件替换原有的配置文件即可。
2)基础服务:用以提供智能节点的基础计算功能与服务,包含算术计算(比较、加、减、乘、除等简单算术计算)、统计计算(求某段时间内的数据平均值、极值、中值等)、推理计算(汇聚其他计算结果来进行的一些决策活动)以及通讯服务(将运算结果、推理结论传送给某个节点)。
3)服务控制:针对基础服务的结果提供服务反馈,系统可以控制相关设备进行一些调整操作。
4)计算及推理引擎:如上节所示,由脚本解释器、执行引擎、底层库三部分实现,基于脚本文件实现计算、推理、通讯等服务。
在智能层中首先利用CART算法来训练决策树模型,得到不同特征的特征重要性参数,通过筛选阈值Ti0筛选出重要特征,把重要特征替换原有动作特征后再重新训练出新的决策树模型,然后对新的决策树模型进行剪枝来防止过拟合,最后基于剪枝后的决策树模型使用规则提取算法得到动作识别的规则。其中,对新的决策树模型进行剪枝的方法为:预剪枝使用随机搜索算法来实现超参数优化,通过十折交叉验证评估剪枝效果;后剪枝使用CCP算法实现。规则提取算法为:从决策树模型的根结点开始遍历,按照深度优先的路径遍历方式搜索叶子结点,记录非叶子结点中的分支条件,搜索到叶子结点后,开始计算叶子结点中对应类样例数占总样例数的比例,得到动作概率,把得到的条件和结论组成规则,按照动作概率从小到大的顺序插入规则列表中。
3.3规则控制器设计
为了提高智能环境中智能实现的灵活性,合理高效地分配计算资源,我们设计一种规则控制器将控制层从基础设备层中分离出来,主要负责智能节点的规则分配与部署。当智能环境需要系统开发或系统升级时,系统开发人员基于用户在智能环境中的智能需求,分析智能节点的计算资源,选择一定量的、不同位置的、不同功能的智能实现,最后由规则控制器将各个智能实现发送到相应的智能节点,协同完成智能环境中的健康看护服务。
在定义1和3中,智能环境中智能实现,由标签、输入、输出、计算资源需求、存储资源需求、通讯资源需求组成,实际上是一组包含位置信息的计算单元的集合,其中每个计算单元代表一组规则计算指令集。例如,“睡眠监测”中需要振动传感器将每分钟的振动峰值传送到上级节点,那么“峰值传输”作为“睡眠监测”的一个计算单元,需要计时、存储、最大值计算、数据传输等多个规则指令共同实现。
在软件定义智能架构中,规则控制器基于脚本配置文件将智能实现分解为一定量、不同功能的规则集,并依据规则集对应的位置信息,将规则集依次传输到相应的智能节点。与传统智能实现的开发方法相比,规则控制器具有一致性、可用性、容错性等优点。当智能节点发生损坏或功能更新时,软件定义智能架构可以通过规则集的配置更新快速恢复失效节点,具有强大的容错能力。智能节点的功能恢复过程如图6所示:
1)当某个设备节点功能失效时,其他智能节点察觉到失效信息;
2)智能节点将信息发送到规则控制器;
3)规则控制器依据已掌握的信息,计算出需要恢复的规则;
4)将规则指令集发送到基础设备层中需要恢复的智能节点;
5)智能节点依据新的规则指令集执行相应的任务。
当人员、设备、用户需求发生变化,需要更新相应智能节点的功能时,规则控制器解析脚本配置文件,通过规则集的配置更新(步骤4和步骤5),使智能实现的调整更灵活,提升了智能实现的灵活性。
4智能实现与规则库
本节详细介绍了软件定义智能架构中规则库的设计,分析了规则集在智能节点中数据结构、规则操作、依赖关系,并给出了实例验证。
4.1数据结构
由于智能节点存储资源、计算资源等限制,规则库的设计必须是简单、高效的。在软件定义智能架构中,智能节点的一个智能实现表现为任意多个规则的线性组和,以简化智能实现的构造和分析。每一个规则可以看作是一个计算任务,作为智能实现的一部分来执行;规则通过参数配置来控制修改任务。
我们的指导原则是,规则应该提供尽可能多的功能和服务,同时易于使用和重用。有限规则库中的规则为各种各样的数据提供查询、处理、过滤、分类、推理和管理等计算单元。例如,“Average”规则计算智能节点中数据的平均值,而“Alarm”规则延迟规则链中后续规则的任务,直到特定的时间(可以是系统的相对时间)。
图7从智能节点的角度展示了智能实现的数据结构。在智能节点上执行的智能实现有两部分:智能实现对象维护线性规则链,一个或多个动态容器保存任务处理的中间结果或最终结果。其中,智能实现对象包括一个智能实现ID(智能实现ID的编号分别为1、2、3、……n)和一个带有相应参数的规则列表(Maximum、Count、 Reasoning、……、Send);即可以是智能实现ID编号为1对应的规则为Maximum,智能实现ID编号为2对应的规则为Count,智能实现ID编号为3对应的规则为 Reasoning,……,智能实现ID编号为n对应的规则为Send,动态容器指向线性规则链中的第一个规则,并从一个规则移动到另一个规则,依次由每个规则处理,最终当到达规则链末尾时被删除。
与一个智能实现相关的所有状态都由该智能实现对应的规则集来维护。由于智能实现的资源需求是不可预测的,静态地为它们规划规划内存分配是不切实际的;动态分配提供了一种仅在需要时分配内存资源的方法,从而提高系统效率。
4.2规则操作
每一个智能实现的描述以序列化的形式从规则控制器传播到智能节点,其中包含智能实现的标识符和组成该智能实现的规则集。每一个规则都将其名称及其参数编码为标签长度的属性。
智能节点接受三种类型的智能实现操作:规则部署、更新和删除。当智能节点从规则控制器接收到一个包含当前未安装的智能实现ID的描述时,智能节点断定该智能实现处于未安装状态,进而安装该智能实现。一个包含当前已安装智能实现的描述被解释为修改该智能实现的请求;一个空的描述被智能节点看作销毁当前正在运行智能实现的请求。当需要删除一个智能实现时,所有与该智能实现相关的动态容器都需要被删除(它们可能隐藏在任何与智能实现关联的规则集中),然后删除智能实现本身。
4.3实例
表2描述了软件定义智能架构中部分规则函数。我们可以将一定量规则函数组合在一起,组成健康看护、生活辅助等服务。在本节中,我们已经组合了几个规则函数来验证智能节点中规则操作的可行性。为了通过目视检查来验证智能节点是否正常运行,我们首先通过规则控制器向收集振动信息的智能节点A注入“Bright”规则函数。
表2有限规则库的规则函数及其描述
Wait(1000ms,REPEAT)→Bright(A)
由于“Bright”规则函数未安装,智能节点A安装该规则集,添加计时器,将计时器的值转化为LED模式,每隔1秒,LED灯闪烁一次。这可以帮助验证规则控制器和智能节点之间的连接,以及通过目视检查智能节点对规则集的响应。
Wait(1000ms,REPEAT)→Bright(A)→GetMaximum(A)→Send(x,B)
由于“Bright”函数已安装,智能节点A执行修改当前规则集的请求。为了进一步验证智能节点的数据处理能力,我们修改“Bright”函数,除了闪烁之外,该智能节点还需要统计每分钟的振动峰值x,并将该峰值发送到智能节点B。
Wait(1000ms,REPEAT)→GetMaximum(B)
→compare(x,y)→SetDecide()→Bright(B)
智能节点B基于“GetMaximum”函数获取每分钟振动数据的峰值y,然后与智能节点A发送来的峰值x作比较。若x>y,则智能节点B闪烁一次,否则智能节点 B不闪烁。这帮助验证了智能节点之间的通信连接,确保了智能节点的可寻址性。最终,规则控制器向智能节点A和B发送空描述,销毁当前正在运行的智能实现,规则集的删除操作。
DropRule(A)→Reboot(A)
DropRule(B)→Reboot(B)
5实验与结果分析
本节通过智能实施的效率、系统开发的代价以及智能实现的灵活性三方面来验证我们提出的软件定义智能架构的性能,分析系统的可管理性和可靠性。实验表明,软件定义智能架构的核心设计,如脚本推理引擎、智能层、规则控制器等,共同改变了传统智能环境的系统开发方法,降低了系统开发代价,提高了系统的灵活性;而且,即使是具有挑战性、复杂的应用程序,也可以分解为一个或多个基于脚本规则推理的智能实现来执行,减少资源的浪费。
5.1智能实施的效率分析
为了验证软件定义架构中智能实施的效率,本文讨论了表1中规则函数的内存占用、执行时间,同时,比较了基于脚本推理引擎的智能实施方法与烧录固化方法在性能上的差别。
脚本推理引擎及其主要规则函数的内存占用、相应时间如表3所示,“Reboot”函数占用空间最小,“Send”函数占用空间最大。最重要的是,大多数规则函数的RAM 占用为0,ROM占用小于1MB,表明了基于脚本推理引擎的规则函数在智能节点中运行占用空间较小,并且智能节点日益强大的存储资源能够支撑智能环境中计算、存储、推理、通讯等智能的实施。
表3规则函数的内存占用及执行时间
Rule Function | ROM | RAM | Execution time | Rule Function | ROM | RAM | Execution time |
GetMaximum | 190 | 0 | 2.1 | Bright | 234 | 0 | 1.4 |
GetMinimum | 190 | 0 | 2.1 | Alarm | 330 | 16 | 1.5 |
GetAverage | 243 | 0 | 2.4 | Wait | 950 | 28 | 1.5 |
Count | 136 | 0 | 2.2 | GetTime | 176 | 0 | 0.7 |
CopyAttributes | 150 | 0 | 0.8 | Compare | 78 | 0 | 1.2 |
DeleteAttributes | 204 | 0 | 0.8 | InSet | 78 | 0 | 0.9 |
Reboot | 60 | 0 | 3.5 | Send | 1078 | 140 | 1.7 |
DropRule | 287 | 0 | 1.7 | If…else… | 270 | 0 | 2.3 |
为了对比基于烧录固化的传统智能实施方法与基于脚本推理引擎的软件定义智能实施方法的性能差别,我们测试了“GetAverage”规则函数应对不同数量输入数据时的函数运行时间,实验结果如表4所示,其中每种情况均测试五次以上。当输入数据的数量逐渐增加时,“GetAverage”规则函数的运行时间逐渐增加。另外,与传统烧录固化的智能实施方法相比,我们开发的脚本推理引擎在执行时间上并没有较大差距,能够满足智能环境的数据处理需求。
5.2系统开发的代价分析
我们设计了人工实验以检验软件定义智能架构的系统开发代价。在本节中,我们以智能环境中的睡眠监测服务为例,邀请了10位系统开发人员参与本次实验,包括2名博士研究生,4名硕士研究生和4名本科研究生。其中,2名博士研究生从事智能环境领域相关领域3年之久,4名硕士研究生在智能环境领域从事了2年研究, 4名本科生有智能环境系统开发经验2年,他们对智能环境系统开发及硬件开发语言都比较熟悉。
在实验中,他们使用4个地震传感器,各自独自开发一个睡眠监测服务系统,其中5人(1名博士研究生,2名硕士研究生和2名本科生)使用传统的方法进行系统开发,另外5人基于我们提供的规则集使用软件定义智能的系统开发方法。他们可以根据自己的开发经验,从规则集中选择1个或多个智能实现开始,增量式地开发睡眠监测应用。根据开发者的开发情境,我们会人工记录开发人员在每个系统开发阶段的开发时长、代码量、功能模块之间的耦合度等信息。
为了客观地评估软件定义智能方法的系统开发代价,我们从编码复杂度、扩展性、可修改性三方面讨论软件定义智能架构与传统智能环境系统开发方法的区别。
1)编码复杂度表示使用这种智能环境系统开发方法的编码工作量与编码难易程度。在本文中,我们使用代码行数用来衡量编码的工作量,变量个数用来衡量编码的难易程度。代码行数越少,声明的变量越少,说明编码的复杂度越低。
2)扩展性表现了系统功能的扩展能力,用来衡量为了满足用户新的功能需求需要对原系统进行多大规模的修改。本文提出了平均代码修改量来表示新增或修改一个现有的功能模块需要增加和修改的代码的平均行数。
3)可修改性用来反映系统应对适应人员、设备、需求发生变化时所需做出的修改程度。在智能环境系统设计中,各个智能实现之间的耦合度越低,说明智能实现之间的联系越少、相互影响越小,当开发人员需要对智能实现进行调整时,所需修改的代码量就越少,系统的可修改性性也就越高。
为了客观地反应传统智能环境开发方法与我们提出的软件定义智能架构在编码复杂度、扩展性和可修改性上的差异,我们设计了对应的量化处理指标及其指标公式,如表4所示。其中,Ci表示智能实现功能模块i的代码总行数,Vi代表智能实现功能模块i的变量总个数。表示当智能环境系统中增加或修改智能实现功能模块时,需要调整的代码总行数。另外,U表示智能环境系统的耦合度,当智能实现功能模块 i与功能模块j之间有耦合,那么耦合值Uij设为1,否则Uij设为0。
表4智能环境系统的评价指标及公式
由于表5中的客观评价指标单位不统一,我们通过比例加权的方法对每项指标进行归一化处理。由于表5中客观评价指标数值与指标得分是负相关的,我们设计比例归一化公式如下:
其中,s是该项指标归一化之前的数值,smin表示该项指标的最低数值。s′表示进行归一化处理后该项评价指标的最终分数,最大值为1。最后,经过归一化处理后,评价指标的得分越高,说明该智能环境系统的编码复杂性越低,扩展性与可修改性越好。例如,系统1的代码行数为100行,系统2的代码行数为150行,那么系统1 的最终得分为1分,系统2的最终得分为0.67分(100/150=0.67)。
表5规则函数的执行时间
Input samples | Traditional | SDI |
1 | 2.2 | 2.4 |
20 | 2.6 | 3.2 |
200 | 6.2 | 6.8 |
800 | 11.3 | 11.6 |
在实验中,10位参与者针对老年人睡眠监测服务开发设计了5个智能实现功能模块,分别是数据采集、时间同步、特征提取、姿势识别、睡眠质量分析。首先,在同等工作环境、每天工作8小时的情况下,我们记录了10位参与者在5个模块的平均开发时长。测试结果表明,使用传统方法进行睡眠监测服务的开发平均需要15 天,然而使用软件定义智能架构大约需要8天就能完成系统开发,主要原因是:(1) 软件定义智能架构通过集成的规则集编辑智能实现,高效的规则调用简化了开发人员底层代码的开发工作;(2)传统方法在系统调试时需要反复地将功能算法烧录固化到智能节点上,这很大程度上降低了调试的效率,增加了系统开发的工作量。
之后,我们对比了传统智能环境开发方法和基于软件定义智能架构的方法的编码复杂度差异,测试结果如表6所示。与传统智能环境的开发方法相比,测试人员基于规则配置的软件定义智能方法开发的睡眠监测系统,平均代码行数较少,平均变量个数也比较少。其中,姿势识别模块对应的代码行数相差最大,主要原因是:采用软件定义智能架构开发的姿势识别模块是基于集成的规则集实现的,高效的规则集调用可以减少变量声明、数据处理、训练分类等功能子模块的代码复杂度.
表6代码行数和变量个数的测试数据
为了测试软件定义智能架构的扩展性,10位参与者对睡眠监测服务进行了5次改动:
1)参与者修改数据采集模块,增加数据采样频率以获取更多的睡眠数据;
2)参与者增加数据预处理模块,对数据进行去噪处理,提升数据的辨识度;
3)参与者修改姿势识别模块,从横躺、侧躺的识别,扩展翻身、伸腿等动作的识别;
4)参与者新增失眠检测模块,基于短时间内频繁地翻身、伸腿等动作,判断用户的睡眠状态;
5)参与者新增呼吸检测模块,基于用户睡觉时产生的振动数据,分析呼吸是否平稳、是否存在呼吸骤停等健康问题。
实验结果如表7所示,基于软件定义智能架构开发的睡眠监测系统中,参与者修改或新增功能模块时,系统中平均需要修改的代码行数较少。特别是修改现有的功能模块(如改动3),传统方法的代码修改量约是软件定义智能架构的3倍,主要原因是软件定义智能架构的现有功能模块修改大多仅需要调整模块内规则的配置。因此,我们可以得出基于规则配置的软件定义智能架构的系统扩展性高于传统智能环境的开发方法,有利于智能实现的调整与修改,减少了智能环境系统维护与修改的压力。
表7代码修改量的测试数据
Modification | Traditional | SDI |
1 | 936 | 557 |
2 | 1684 | 1125 |
3 | 2176 | 894 |
4 | 1136 | 528 |
5 | 2530 | 1863 |
Average | 1692 | 993 |
为了验证软件定义智能架构的系统可修改性,我们使用各个智能实现之间耦合度的测试数据侯建一个0、1矩阵,并依据表3中耦合度的计算公式计算出软件定义智能架构的系统平均耦合度约为0.3,而传统方法的平均耦合度为0.5。
最后,我们对代码行数、变量个数、平均修改代码量和耦合度通过比例加权的方法归一下处理,测试结果如图8所示。人工实验测试结果表明软件定义智能架构与传统的智能环境开发方法相比,能够有效地降低编码复杂度低,提高系统的扩展性与可修改性。因此,软件定义智能架构的智能层能够对开发人员屏蔽了底层设备的异构性,通过规则集的配置更新替代了传统节点算法的烧录固化,从而大幅度减少了代码开发的时间,同时也有效地降低了系统调试的时间,有利于智能环境在老年看护等领域的推广。
5.3软件定义智能架构的灵活性分析
智能环境系统的灵活性主要体现在两个方面:(1)计算资源分配的灵活性,当新增节点或节点损坏时,能够迅速调整智能实现,分配计算资源;(2)功能服务调整的灵活性,当用户需求升级时,能够灵活地调整参数,以适应新的用户需求。本文以睡眠监测服务为例,在新增节点、节点损坏、需求更新三种情况下,讨论软件定义智能架构与传统智能环境开发方法的灵活性差异。
1)计算资源分配的灵活性
假如老年用户身体情况的恶化需要更精确的睡眠质量监测服务,我们新增一个振动传感器以获取更丰富的振动数据。通过传统的智能环境开发方法,开发人员需要重新设计功能算法,合理地将计算任务分配到各个节点,并将相应的功能算法在各个传感器上重新烧录固化。因此,当新增节点时,传统的智能环境开发方法不仅需要重新设计功能算法,而且必须将已安装的智能节点取下,重新烧录功能算法,然后将智能节点重新安装固定进行算法调试。另外,在新的功能算法调试期间,设备需要反复的算法烧录,影响用户的正常使用。因此,传统的智能环境设计不能应对智能节点数量的变化便捷地分配计算资源,功能算法的开发与调试工作量大,影响用户的日常使用。
然而,基于软件定义智能架构,开发人员可以通过规则控制器更灵活、更便捷地调整计算资源。当智能环境需要新增节点时,开发人员不再需要将已安装好的节点取下,通过分析节点的计算资源,重新设计功能算法,并编写新的脚本规则配置文件,最终由规则控制器将新的规则集分配到各个智能节点,替换原有的规则集执行睡眠监测服务。因此,当用户需求的变化需要新增智能节点时,我们提出的软件定义智能架构不仅可以通过规则控制器高效地调整功能算法、合理地分配计算资源,而且不需要取消已安装的智能节点,不影响用户的日常使用。
另外,在智能环境的系统正常运作中,不可避免的会出现节点损坏的情况,而节点的损坏必然影响服务的精度,甚至影响整个系统的运行。因此,当智能节点损坏时,及时调整智能节点的功能算法,迅速恢复健康看护功能服务,是智能环境能够在老年看护领域推广的必要条件之一。
在传统的智能环境系统中,当智能节点发生损坏时,开发人员不仅需要寻找替代节点,并将相应的功能算法烧录在新的节点上,而且需要重新建立新节点与其他节点的通讯联系。然而,在软件定义智能架构中,规则控制器依据已掌握的信息,计算出需要恢复的规则,将规则集发送到新的智能节点,恢复节点的功能服务。因此,我们提出的软件定义智能架构,可以通过规则控制器快速地将已损坏节点的规则集迁移到新的智能节点上,迅速恢复受损的功能服务。
2)功能服务调整的灵活性
当智能环境应用于老年看护领域时,老年人病情的改变必然带来用户看护需求的变动。然而,这种看护需求的变动一般不需要改变智能看护的功能算法,通常仅通过调整功能算法的参数或阈值即可实现。例如,轻度高血压用户的健康看护系统仅需要发送老年人晨起、睡前的血压数据,而重度高血压用户则需要发送老年人晨起、饭前、饭后、活动前、活动后、睡前等多个时刻的血压数据,同样的,在老年人的睡眠监测服务中,患有轻度的失眠症老人的深度睡眠时间低于2个小时,系统需要发出警示信息;当老人病情发展为中度失眠症时,深度睡眠的时间低于1.5个小时,系统即需要发出警示信息。因此,用户病情改变带来的需求变动一般不需要改变相应的功能算法,仅需要调整功能函数的一些参数。
在传统的智能环境系统开发中,开发人员想要修改功能算法的参数配置,需要先将已安装的节点取下,然后再重新将参数调整后的功能算法烧录在相应的智能节点上,最后重新安装固定智能节点,完成智能节点算法升级。但是,在软件定义智能架构中,参数的调整不需要取下已安装的智能节点,只需要开发人员更新智能节点中脚本规则的参数配置,然后由规则控制器将调整后的规则集发送到智能节点替换原有的规则集,即可迅速完成智能节点的算法升级。
总之,我们提出的软件定义智能架构通过规则控制器能够灵活地分配智能节点的计算资源,高效地调整功能算法的参数配置,能够应对智能环境中人员、设备、用户需求的合理性变化及时调整功能算法和参数配置,提高了智能环境系统升级的效率,有助于智能环境在健康看护领域的应用和推广。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (10)
1.一种支撑智能环境快速实现的软件定义智能架构系统,其特征在于,包括OS层模块、智能层模块、控制层模块以及应用层模块;
所述OS层模块由传感元件和特征数据计算器组成,负责智能环境中特征数据的计算、整合和存储,实现原始数据的实时采集,并通过实时数据通讯组件将特征数据或原始数据发送至智能层模块;
智能层模块负责智能节点的脚本配置、服务控制、规则推理,基于脚本形式的规则实现计算、统计、推理、通讯服务,并为OS层模块和控制层模块分别提供数据采集服务和规则集处理服务;
控制层模块负责智能节点的规则分配、地址解析、规则集配置更新服务,并连接应用层模块,向客户端应用发送系统所需的推理结论、特征数据;
应用层模块包括程序开发接口和基于此接口开发的健康看护应用服务。
2.根据权利要求1所述的支撑智能环境快速实现的软件定义智能架构系统,其特征在于,程序开发接口用于提供特征数据和相应计算、推理结论的实时查询、历史查询接口服务;
基于此接口开发的健康看护应用服务用于远程接收实时智能节点特征数据,提供睡眠监测、摔倒检测、活动识别之一或者任意组合服务。
3.一种支撑智能环境快速实现的软件定义智能架构方法,其特征在于,包括以下步骤:
S1,规则控制器解析脚本配置文件,将智能实现分解为包含位置信息的计算单元,并基于智能节点的位置信息,将健康看护服务对应的规则集分配到相应位置的智能节点上;
S2,智能节点基于脚本解释器编译脚本配置文件,将健康看护服务中功能算法对应的脚本文件编译为系统可执行的代码文件;
S3,智能节点基于功能算法的数据需求,调用通讯服务,与相邻智能节点通讯,交换计算所需的特征数据;
S4,智能节点执行编译后的代码文件,基于执行引擎完成健康看护服务中的计算、统计、推理任务,并将执行结果与服务反馈发送到规则控制器;
S5,规则控制器通过数据通讯组件,将健康看护所需的特征数据、推理结论传输到应用层,实现健康看护服务。
4.根据权利要求3所述的支撑智能环境快速实现的软件定义智能架构方法,其特征在于,在智能层模块中包括脚本推理引擎,脚本推理引擎包括脚本解释器、执行引擎和底层库;脚本解释器包括词法与语法分析、算法操作、统计操作、通讯操作和规则推理;底层库包括基础函数库、通讯实现库和推理知识库;
脚本解释器用于识别输入的脚本文件,然后将识别后的输出命令作为执行引擎的输入,从而得到不同的执行结果;
执行引擎包括计算引擎、通讯引擎、推理引擎和事件引擎,通过读入规则和上下文数据,进行上下文推理,最后得到推理结果。
5.根据权利要求4所述的支撑智能环境快速实现的软件定义智能架构方法,其特征在于,脚本解释器的工作方法包括以下步骤:
1)将脚本配置文件读入内存;
2)根据预定义的词法解析规则进行脚本词法分割,得到token,或者执行对应的动作Action;
3)语法解析器读入词法分析过程后的token,根据语法规则生成具有语义,当满足一模式下的语义则执行该模式下对应的动作Action;
4)将步骤3)产生的动作作为执行引擎的输入,进而进行推理计算。
6.根据权利要求5所述的支撑智能环境快速实现的软件定义智能架构方法,其特征在于,在脚本解释器中,用Flex&Bison工具生成词法、语法解析器的源程序,包含定义段、规则段和用户代码段;其中:
1)定义段包含名字的定义,名字由一个或多个字母、数字、下划线、短横线组成,而名字的定义从其后的第一个非空白字符开始直到行尾;
2)规则段包括模式和动作,其中模式为正则表达式,动作为C语句表达,即模式指出了一个单词的构成,当分析出一个符合该规则的单词时,就执行相应的动作;
3)将用户代码原样拷贝到执行文件中。
7.根据权利要求3所述的支撑智能环境快速实现的软件定义智能架构方法,其特征在于,智能节点的功能恢复包括以下步骤:
1)当某个设备节点功能失效时,其他智能节点察觉到失效信息;
2)智能节点将信息发送到规则控制器;
3)规则控制器依据已掌握的信息,计算出需要恢复的规则;
4)将规则指令集发送到基础设备层中需要恢复的智能节点;
5)智能节点依据新的规则指令集执行相应的任务。
8.根据权利要求3所述的支撑智能环境快速实现的软件定义智能架构方法,其特征在于,包括如下之一或者任一组合定义:
定义1.智能实现:智能实现代表着智能环境中包含节点位置信息的智能功能模块,由功能描述、输入数据集、输出数据集、资源需求元素组成,表示为Ri={Ni,INPi,OUTPi,CPi,STi,CMi}={Cj},其中,Ri表示第i种智能实现;Ni为标签信息,代表智能实现中包含节点位置信息的功能描述;INPi代表此智能实现的输入数据集;OUTPi代表输出结果集合;CPi为此智能实现完成所需要的计算资源;STi代表此智能实现完成所需要的存储资源;CMi代表此智能实现对通讯能力的要求;
定义2.标签:标签用来表示智能节点所处的位置及其所能提供功能,包含节点的类型,智能实现的类型,表示为Ni={Nsi,Npi,Nti},其中,Nsi代表智能实现所需节点的类型集合;Npi为智能节点所对应的位置集合;Nti为此智能实现的类型;
定义3.计算单元:计算单元代表着节点提供的计算服务,是包含位置信息的一组计算规则集合,表示为Cj={Cnj,Cinpj,Coutpj,Ccpj,Cstj,Ccmj},其中,Cnj需要对位置信息进行更细致的划分。
9.根据权利要求4所述的支撑智能环境快速实现的软件定义智能架构方法,其特征在于,智能层的设计包括:
1)配置服务:用于存储智能节点工作时遵循以下之一或者任意组合规则:数据处理规则、数据传输规则以及采用基于脚本配置的方式来存储的规则;
2)基础服务:用于提供智能节点的基础计算功能与服务,包括算术计算、统计计算、推理计算以及通讯服务;
3)服务控制:针对基础服务的结果提供服务反馈,控制相关设备进行调整操作;
4)计算及推理引擎为权利要求4中的脚本推理引擎。
10.根据权利要求8所述的支撑智能环境快速实现的软件定义智能架构方法,其特征在于,规则控制器基于脚本配置文件将智能实现分解为一定量、不同功能的规则集,并依据规则集对应的位置信息,将规则集依次传输到相应的智能节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064921.XA CN111240649B (zh) | 2020-01-20 | 2020-01-20 | 一种支撑智能环境快速实现的软件定义智能架构系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064921.XA CN111240649B (zh) | 2020-01-20 | 2020-01-20 | 一种支撑智能环境快速实现的软件定义智能架构系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240649A true CN111240649A (zh) | 2020-06-05 |
CN111240649B CN111240649B (zh) | 2020-11-13 |
Family
ID=70865316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010064921.XA Active CN111240649B (zh) | 2020-01-20 | 2020-01-20 | 一种支撑智能环境快速实现的软件定义智能架构系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240649B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510298A (zh) * | 2022-04-20 | 2022-05-17 | 科大讯飞股份有限公司 | 智能引擎接入和调用方法及相关平台、装置、设备、介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544574A (zh) * | 2013-11-07 | 2014-01-29 | 南京国电南自轨道交通工程有限公司 | 基于可编辑公式脚本的变电站智能专家系统 |
CN107895595A (zh) * | 2017-11-14 | 2018-04-10 | 重庆大学 | 面向用户需求的软件快速定义智能环境的规划选择方案推荐方法 |
CN108199900A (zh) * | 2018-01-23 | 2018-06-22 | 重庆大学 | 用于智能环境的分布式推理节点优化分配方法 |
CN109697050A (zh) * | 2019-01-07 | 2019-04-30 | 浙江大学 | 一种基于知识图谱面向电商领域的需求描述模型设计方法 |
US20190391793A1 (en) * | 2015-11-10 | 2019-12-26 | International Business Machines Corporation | Separation of user interface logic from user interface presentation by using a protocol |
-
2020
- 2020-01-20 CN CN202010064921.XA patent/CN111240649B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544574A (zh) * | 2013-11-07 | 2014-01-29 | 南京国电南自轨道交通工程有限公司 | 基于可编辑公式脚本的变电站智能专家系统 |
US20190391793A1 (en) * | 2015-11-10 | 2019-12-26 | International Business Machines Corporation | Separation of user interface logic from user interface presentation by using a protocol |
CN107895595A (zh) * | 2017-11-14 | 2018-04-10 | 重庆大学 | 面向用户需求的软件快速定义智能环境的规划选择方案推荐方法 |
CN108199900A (zh) * | 2018-01-23 | 2018-06-22 | 重庆大学 | 用于智能环境的分布式推理节点优化分配方法 |
CN109697050A (zh) * | 2019-01-07 | 2019-04-30 | 浙江大学 | 一种基于知识图谱面向电商领域的需求描述模型设计方法 |
Non-Patent Citations (1)
Title |
---|
汪成亮等: "智能环境下分布式Rete 算法", 《计算机应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510298A (zh) * | 2022-04-20 | 2022-05-17 | 科大讯飞股份有限公司 | 智能引擎接入和调用方法及相关平台、装置、设备、介质 |
CN114510298B (zh) * | 2022-04-20 | 2022-08-02 | 科大讯飞股份有限公司 | 智能引擎接入和调用方法及相关平台、装置、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111240649B (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Raveendranathan et al. | From modeling to implementation of virtual sensors in body sensor networks | |
Winther | Part-whole science | |
Thiele | R marries NetLogo: introduction to the RNetLogo package | |
CN111240649B (zh) | 一种支撑智能环境快速实现的软件定义智能架构系统及其方法 | |
Kampouraki et al. | e-Doctor: a web based support vector machine for automatic medical diagnosis | |
Dawant et al. | Coupling numerical and symbolic methods for signal interpretation | |
GB2603831A (en) | Mobile AI | |
Tu et al. | A problem-solving model for episodic skeletal-plan refinement | |
Wen et al. | Code similarity detection using ast and textual information | |
Wah | New computers for artificial intelligence processing | |
Rentschler | Model transformation languages with modular information hiding | |
CN109147938A (zh) | 一种疾病智能诊断装置及设备 | |
da Silva et al. | Refactoring of crosscutting concerns with metaphor-based heuristics | |
Gall | A rule-based implementation of ACT-R using Constraint Handling Rules | |
Curino et al. | X− SOM Results for OAEI 2007 | |
CN114610648A (zh) | 一种测试方法、装置及设备 | |
Michlich | An analysis of semiotic and mimetic processes in Australopithecus afarensis | |
Abdullah et al. | Using unified modeling language for conceptual modelling of knowledge-based systems | |
Haefner | Ecosystem assembly grammars: generative capacity and empirical adequacy | |
Jaya | A standard methodology for the construction of symptoms ontology for diabetes diagnosis | |
Langdon | Creating and debugging performance CUDA C | |
Diaper | An approach to IKBS development based on a review of conceptual structures: information processing in mind and machine by JF Sowa | |
Afzal et al. | DYNAMIC ONTOLOGY MODELLING FOR HUMAN ACTIVITY RECOGNITION | |
Peer et al. | Ciclops: computational intelligence collaborative laboratory of pantological software | |
Djoudi et al. | On specifying reconfigurable component-based systems using strategies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |