CN113064666B - 物联网设备调度冲突检测方法及系统 - Google Patents

物联网设备调度冲突检测方法及系统 Download PDF

Info

Publication number
CN113064666B
CN113064666B CN202110291182.2A CN202110291182A CN113064666B CN 113064666 B CN113064666 B CN 113064666B CN 202110291182 A CN202110291182 A CN 202110291182A CN 113064666 B CN113064666 B CN 113064666B
Authority
CN
China
Prior art keywords
conflict
state
equipment
conditional instruction
conditional
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.)
Active
Application number
CN202110291182.2A
Other languages
English (en)
Other versions
CN113064666A (zh
Inventor
金芝
陈小红
边寒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
East China Normal University
Original Assignee
Peking University
East China Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University, East China Normal University filed Critical Peking University
Priority to CN202110291182.2A priority Critical patent/CN113064666B/zh
Publication of CN113064666A publication Critical patent/CN113064666A/zh
Priority to US17/697,338 priority patent/US20220300287A1/en
Application granted granted Critical
Publication of CN113064666B publication Critical patent/CN113064666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/30Control

Abstract

本发明公开了一种物联网设备调度冲突检测方法,涉及物联网技术领域,具体步骤包括:获取设备模型数据,根据设备模型数据,将设备调度指令转换成条件指令;根据历史数据中设备调度冲突确定调度冲突规则;基于调度冲突规则检测条件指令是否为冲突状态;若为冲突状态,进行第一冲突消解;若为未冲突状态或冲突消解后执行二次检测;二次检测将条件指令转换成SMT公式,并将SMT公式输入SMT求解器进行检测,判断是否为冲突状态;若为冲突状态,进行第二冲突消解;若为未冲突状态或冲突消解后执行所述条件指令。本发明保证物联网不同服务间的一致性,分别采用了基于规则和基于SMT求解器的方法,进行了冲突检测。

Description

物联网设备调度冲突检测方法及系统
技术领域
本发明涉及物联网技术领域,具体涉及物联网设备调度冲突检测方法及系统。
背景技术
市场上已经出现了各种物联网系统,它们由事件驱动的智能应用程序控制,这些应用程序将感应数据、用户输入或其他来自互联网的外部触发器作为输入,并通过执行器指挥一个或多个智能设备提供不同形式的自动化。如今互联智能设备的数量正在急剧增加,从2010年的125亿台到今年的500亿台。预计在2025年,全球范围内将达到754.4亿台。
为了应对这一趋势,在过去几年中,各公司开始向普通消费者推销智能设备,为大众市场的普适计算创造了动力。因此,长期以来在学术文献中讨论的给终端用户提供工具对环境进行编程的想法,现在正在为更多的人提供可能。它们通常采用 "IF trigger,THENaction "的形式,如 "IF温度超过25摄氏度,THEN打开空调",这被称为触发动作编程(TAP),很多平台都支持TAP,如IFTTT、苹果的Homekit和亚马逊的Alexa。
遗憾的是,这些平台并没有提出措施来保障物联网不同服务间的一致性,容易出现一致性问题。一致性问题指有某条规则本身就不可能发生或者两条或两条以上的规则之间出现冲突,对于软件系统来说,任何由于不一致导致的差错,都可能在现实世界中产生后果,甚至对用户的财产、生命造成威胁。在物联网系统中,使用TAP进行用户编程时,用户并不会去考虑一致性问题,使得这些问题更加突出。
因此,如何提供一种保证物联网不同服务间的一致性的物联网设备调度冲突检测方法及系统是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种物联网设备调度冲突检测方法及系统,保证物联网不同服务间的一致性,分别采用了基于规则和基于SMT求解器的方法,进行了冲突检测。
为了实现上述目的,本发明提供如下技术方案:
一种物联网设备调度冲突检测方法,具体步骤包括:
获取设备模型数据,其中所述设备模型包括设备自动机和设备注册表;
根据所述设备模型数据,将设备调度指令转换成条件指令;
根据历史数据中设备调度冲突确定调度冲突规则;
基于所述调度冲突规则检测所述条件指令是否为冲突状态;
若为冲突状态,进行第一冲突消解;若为未冲突状态或冲突消解后执行二次检测;
所述二次检测将条件指令转换成SMT公式,并将所述SMT公式输入SMT求解器进行检测,判断是否为冲突状态;
若为冲突状态,进行第二冲突消解;若为未冲突状态或冲突消解后执行所述条件指令。
优选的,在上述的一种物联网设备调度冲突检测方法中,所述设备调度指令转换成条件指令具体步骤包括:
从设备注册表中获取物联网设备的待执行操作语句;
根据所述待执行操作语句确定API;
通过所述状态自动机确定所述API 的待触发状态语句;所述待触发状态语句替换所述待执行语句;
得到条件指令。
优选的,在上述的一种物联网设备调度冲突检测方法中,所述调度冲突规则包括:两条条件指令之间存在至少三种冲突;
结果状态冲突:相同触发条件,不同待执行状态;
条件结果倒置冲突:两条条件指令触发条件和待执行状态位置互换;
状态覆盖冲突:其中一条条件指令的触发条件涵盖另一条件指令的触发条件范围,但有不同的待执行状态。
优选的,在上述的一种物联网设备调度冲突检测方法中,基于所述调度冲突规则检测所述条件指令是否为冲突状态具体步骤如下:
对于任意两条条件指令,首先通过文字对比检测触发条件是否相同;如果相同,再检测待执行状态是否是同一设备的不同状态,如果是,则结果状态冲突,返回真并输出冲突的条件指令;
其次,检测其中一条条件指令的触发条件是否为另一条条件指令的待执行操作,同时检测待执行操作是否为另一条条件指令的触发条件,如果是,则条件结果倒置冲突,返回真并输出冲突的条件指令;
最后,首先检测两条条件指令的触发条件是否可能同时发生,如果可能,再检测待执行操作是否是同一设备的不同状态,如果是,则发生了状态覆盖冲突,返回真并输出冲突的条件指令;
如果上述三步都没有发现冲突,则根据规则检测不出冲突,返回假,算法结束。
优选的,在上述的一种物联网设备调度冲突检测方法中,所述二次检测具体步骤如下:
将条件指令转换成SMT公式,并输入SMT求解器;
输出所述SMT公式是否有可行解,其中,将两个条件指令的触发条件对应的SMT公式写入同一个文件中,对所述SMT公式进行求解;
如果结果无解,这两个触发条件不会同时发生,表示不会发生冲突;否则结果有解,这两个触发条件可能同时发生,表示可能发生冲突。
一种物联网设备调度冲突检测系统,包括:
数据获取模块,用户获取设备模型数据,其中包括设备自动机和设备注册表;
指令转换模块,用于将设备调度指令转换成条件指令;
调度冲突规则模块,用于根据历史数据中设备调度冲突确定调度冲突规则;
第一检测模块,用于基于所述调度冲突规则检测所述条件指令是否为冲突状态;
第二检测模块,用于SMT求解器进行检测,判断是否为冲突状态。
优选的,在上述的一种物联网设备调度冲突检测系统中,所述指令转换模块包括待执行操作语句识别单元、待触发状态语句确定单元、语句替换单元和条件指令输出单元;其中,待执行操作语句识别单元从设备注册表中获取物联网设备的待执行操作语句;并根据所述待执行操作语句确定API;
所述待触发状态语句确定单元通过所述状态自动机确定所述API的待触发状态语句;
所述语句替换单元将所述待触发状态语句替换所述待执行语句;
所述条件指令输出单元,输出条件指令。
优选的,在上述的一种物联网设备调度冲突检测系统中,所述第一检测模块包括:结果状态冲突单元、结果倒置冲突单元、状态覆盖冲突单元和冲突指令输出单元;对于任意两条条件指令,所述结果状态冲突单元通过文字对比检测触发条件是否相同;如果相同,再检测待执行状态是否是同一设备的不同状态,如果是,则结果状态冲突,返回真并输出冲突的条件指令;
其次,所述结果倒置冲突单元检测其中一条条件指令的触发条件是否为另一条条件指令的待执行操作,同时检测待执行操作是否为另一条条件指令的触发条件,如果是,则条件结果倒置冲突,返回真并输出冲突的条件指令;
最后,所述状态覆盖冲突首先检测两条条件指令的触发条件是否可能同时发生,如果可能,再检测待执行操作是否是同一设备的不同状态,如果是,则发生了状态覆盖冲突,返回真并输出冲突的条件指令;
所述冲突指令输出单元,输出冲突的条件指令。
优选的,在上述的一种物联网设备调度冲突检测系统中,所述第二检测模块包括:SMT公式转换单元、SMT求解器;所述SMT公式转换单元将条件指令转换成SMT公式,并输入SMT求解器;
所述SMT求解器输出所述SMT公式是否有可行解。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种物联网设备调度冲突检测方法及系统,从设备和从调度要满足的数值约束出发,通过历史数据确定物联网设备调度存在冲突规则以及基于SMT求解器的方法,进行了冲突检测,从而保障物联网不同服务间的一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明的方法流程图;
图2附图为本发明的实施例中空调自动机示意图;
图3附图为本发明的实施例中灯的自动机示意图;
图4附图为本发明的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例公开了一种物联网设备调度冲突检测方法,如图1所示,具体步骤包括:
S101获取设备模型数据,其中设备模型包括设备自动机和设备注册表;
S102根据设备模型数据,将设备调度指令转换成条件指令;
S103根据历史数据中设备调度冲突确定调度冲突规则;
S104基于调度冲突规则检测条件指令是否为冲突状态;
S105若为冲突状态,进行第一冲突消解;若为未冲突状态或冲突消解后执行二次检测;
S106二次检测将条件指令转换成SMT公式,并将SMT公式输入SMT求解器进行检测,判断是否为冲突状态;
S107若为冲突状态,进行第二冲突消解;若为未冲突状态或冲突消解后执行条件指令。
为了进一步优化上述技术方案,S101获取设备模型数据中,设备模型数据包括设备自动机与设备注册表,其中设备自动机是一个状态图,描述了设备的状态以及触发这些状态的事件。例如空调的状态机如图2、3所示,当其处于aoff状态时,表示空调处于关闭状态,如果此时收到一个aoffPulse事件,则继续关闭,如果收到coldPulse事件则变为制冷状态,而如果收到hotPulse事件则变为制热状态。
进一步,对于灯来说,有两个状态——打开状态和关闭状态,当接收到开脉冲的时候,变为打开状态,接收到关脉冲的时候则变为关闭状态;空调则有三个状态——制热、制冷和关闭,接收到制热、制冷脉冲时变为制热、制冷状态,接收到关脉冲则变为关闭状态。
更进一步,设备注册表由设备的生产商提供,主要包含了设备的种类、设备的状态、状态对应的API、作用(即对应的设备调度指令)以及该状态可以产生的效果,设备注册表的一个具体实例如表1所示,其中有让空调制冷或制热的API:coldPulsehotPulse
以灯的打开状态为例,其对应的API就是开脉冲,对应的作用就是开灯,会导致光线强度增加。
表1
设备类型 设备状态 状态对应的API 状态作用 状态效果
空调1 制热状态 制热脉冲 打开空调1制热 温度升高
空调2 制冷状态 制冷脉冲 打开空调2制冷 温度降低
灯1 打开状态 开脉冲 打开灯1 光线强度增加
灯2 关闭状态 关脉冲 打开灯2 光线强度降低
…… …… …… …… ……
为了进一步优化上述技术方案,S102设备调度指令转换成条件指令具体步骤包括:
从设备注册表中获取物联网设备的待执行操作语句;
根据待执行操作语句确定API;
通过状态自动机确定API的待触发状态语句;待触发状态语句替换待执行语句;
得到条件指令。
进一步,S102根据设备模型数据,将设备调度指令转换为“IF trigger THENstate”条件指令:
对“IF trigger THEN action”形式的设备调度冲突,如IF air.temperature>30 THEN turn on air conditioner cold,即如果温度大于30°C,则开打空调。首先从设备注册表中,根据待执行操作语句action,找到对应的API,比如根据turn on air conditioner cold,则找到coldPulse。然后根据API,在状态图中找到这个API要触发状态语句,将原来的待执行操作语句action替换为触发状态语句,即可成功替换。比如,coldPulse可以使得空调进入coldOn状态,那么就可以将这句TAP转换为IF air.temperature>30 THEN airconditioner.coldOn
为了进一步优化上述技术方案,S103中调度冲突规则包括:两条条件指令之间存在至少三种冲突;
结果状态冲突:相同触发条件,不同待执行状态;
两条条件指令IF后的条件是相同的设备状态,但THEN后的结果却是同一个实体的不同状态,导致语句冲突。例如智能家居系统的用户编写的TAP规则转换得到的语句为IF window.wclosed THEN airconditioner.hotOnIF window.wclosed THEN airconditioner.coldOn,使得窗户关闭时,空调既要处于制冷状态又要处于制热状态,这显然是冲突的。
条件结果倒置冲突:两条条件指令触发条件和待执行状态位置互换;
同时出现了形如IF a THEN bIF b THEN a的两条语句,IF和THEN的子句互换,导致a和b循环不断地触发然后立即结束,从而产生了冲突。
状态覆盖冲突:其中一条条件指令的触发条件涵盖另一条件指令的触发条件范围,但有不同的待执行状态。
两条语句中的设备相同、状态不同,于是不同的可以同时发生的条件导致后执行的状态覆盖了先执行的状态。例如一条语句要求窗户打开时灯处于关闭状态而另一条语句要求窗帘关闭时灯处于打开状态,假如窗户打开的时候窗帘关上了,那么此时根据第二条语句应灯应该是开的,于是开灯的状态覆盖了关灯的状态,但其实此时窗户仍然是打开的,根据第一条语句灯应该关闭,这就出现了状态覆盖冲突。
为了进一步优化上述技术方案,S104基于调度冲突规则检测条件指令是否为冲突状态具体步骤如下:
对于任意两条条件指令,首先通过文字对比检测触发条件是否相同;如果相同,再检测待执行状态是否是同一设备的不同状态,如果是,则结果状态冲突,返回真并输出冲突的条件指令;
其次,检测其中一条条件指令的触发条件是否为另一条条件指令的待执行操作,同时检测待执行操作是否为另一条条件指令的触发条件,如果是,则条件结果倒置冲突,返回真并输出冲突的条件指令;
最后,首先检测两条条件指令的触发条件是否可能同时发生,如果可能,再检测待执行操作是否是同一设备的不同状态,如果是,则发生了状态覆盖冲突,返回真并输出冲突的条件指令;
如果上述三步都没有发现冲突,则根据规则检测不出冲突,返回假,算法结束。
进一步,针对不同类型的冲突,本发明的实施例提供不同的冲突消解建议:
对于结果状态冲突,则提示用户向用户终端发送信息:两条语句IF相同,而结果THEN中涉及同一个实体的不同状态,只能选择一个语句。
对于条件结果倒置冲突,则提示用户向用户终端发送信息:两条语句会形成环路,只能留其中的一个,请用户做出选择。
对于状态覆盖冲突,则提示用户向用户终端发送信息:两条语句的条件可以同时发生,而结果THEN中涉及同一个实体的不同状态,只能选择一个语句。
为了进一步优化上述技术方案,S106二次检测具体步骤如下:
将条件指令转换成SMT公式,并输入SMT求解器;
输出SMT公式是否有可行解,其中,将两个条件指令的触发条件对应的SMT公式写入同一个文件中,对SMT公式进行求解;
如果结果无解,这两个触发条件不会同时发生,表示不会发生冲突;否则结果有解,这两个触发条件可能同时发生,表示可能发生冲突。
需要了解的是SMT公式包含了声明和断言;声明指对参数的初始化,用“(declare-const x type)”语句来表达,其中x是参数的名称,type为参数的类型,本发明的实施例仅涉及整数类型Int和实数类型Real;断言指对断定某个逻辑表达式为真,用“(assertlogic-expression)”,来表达,其中logic-expression是逻辑表达式,该逻辑表达式以前缀的形式给出,如“< a 3”表示“a < 3”。由一组声明和断言组成的SMT公式表示求解声明参数的值,使得所有的断言成立。
通过规则检测的语句可能会发生数值型的冲突,即两个语句的条件中包含了属性的取值范围,结果是同一设备的不同状态,那么如果这两个条件能同时发生,设备就会同时处于不同的状态,发生冲突。因此,对于两条通过规则检测的语句,如果结果是同一设备的不同状态,还要进行基于SMT检测它们的条件是否可能同时发生。首先将条件转换为SMT公式,对于两种不同的触发条件,分别对其进行转换:
属性的取值范围:对于这种trigger,只需要使用z3支持的语法对常量进行命名,然后断言其范围即可。如气温高于30摄氏度,则首先对常量气温进行命名,添加SMT声明语句“(declare-const air.temperature Real)”,表示气温是一个实数类型的常量,然后再断言它的范围,即添加SMT断言语句“(assert(> air.temperature 30))”即可,表示气温需要大于30。
设备的状态:与属性的取值范围相比,设备状态并没有明确的取值,因此需要人工给它赋值。对于trigger涉及到的每一个设备,首先在SMT公式中声明变量,由于设备的状态是离散的,因此该常量是整数类型,比如对于窗户这一设备,添加SMT语句“(declare-constwindow Int)”进行声明即可。然后,对于trigger涉及到的该设备的每一个状态,对其赋予0开始的不同整数,如窗户处于打开状态,则给打开状态赋值0,即添加SMT断言语句“(assert(= window 0))”,或者窗户处于关闭状态,则给关闭状态赋值1,即添加SMT断言语句“(assert (= window 1))”。
如果触发条件由AND关键字连接,则将每一个子条件都根据上述方法转换为SMT公式并联立即可。
详细地,将通过规则检测的条件指令转换为SMT公式;
通过规则检测的条件指令为“IF light.brightness<500 THEN bulb.bon”“IFprojector.pon THEN bulb.boff”“IF air.temperature<27 THEN AC.aoff”和“IFair.temperature>26 THEN AC.cold”,分别将其条件转换为SMT公式:
“IF light.brightness<500 THEN bulb.bon”:这条语句的条件为light.brightness<500,与其相关的SMT声明语句为“(declare-const light.brightnessReal)”,相关的SMT断言语句为“(assert (< 500 light.brightness))”。
“IF projector.pon THEN bulb.boff”: 这条语句的条件为projector.pon,与其相关的SMT声明语句为“(declare-const projector Int)”,相关的SMT断言语句为“(assert (= 0 projector))”。
“IF air.temperature<27 THEN AC.aoff”: 这条语句的条件为air.temperature<27,与其相关的SMT声明语句为“(declare-const air.temperature Real)”,相关的SMT断言语句为“(assert (< 27 air.temperature))”。
“IF air.temperature>26 THEN AC.cold”: 这条语句的条件为air.temperature>26,与其相关的SMT声明语句为“(declare-const air.temperature Real)”,相关的SMT断言语句为“(assert (> 26 air.temperature))”。
将SMT公式输入到SMT求解器Z3(微软研究院提供的开源工具)对其进行冲突检测;
这四条语句中,第一第二条、第三第四条的结果是同一设备的不同状态,因此将第一第二条语句的条件转换为SMT公式并输入Z3,再将第三第四条语句的条件转换为SMT公式并输入Z3,得到结果都为sat,表示这些条件可能同时发生,因此第一第二条可能发生冲突,第三第四条也可能发生冲突。
对SMT求解器Z3检测到的冲突提供消解方案。
第一第二条语句的条件分别为light.brightness的取值范围和projector的状态pon,因此它们的冲突是时间约束冲突,只能让用户提供优先级。用户认为“IFprojector.pon THEN bulb.boff”的优先级为0,“IF light.brightness<500 THENbulb.bon”的优先级为1,因此如果光线强度低于500并且投影仪处于打开状态,会优先执行第一条语句,让灯处于关闭状态。
第三第四条语句的条件都是air.temperature的取值范围,并且不等号分别为大于和小于,因此属于属性的数值冲突,本装置自动对其进行消解,将第三条语句修改为“IFair.temperature<26 THEN AC.aoff”,从而避免了冲突。
在本发明的另一实施例中公开了一种物联网设备调度冲突检测系统,如图4所示,包括:
数据获取模块,用户获取设备模型数据,其中包括设备自动机和设备注册表;
指令转换模块,用于将设备调度指令转换成条件指令;
调度冲突规则模块,用于根据历史数据中设备调度冲突确定调度冲突规则;
第一检测模块,用于基于调度冲突规则检测条件指令是否为冲突状态;
第二检测模块,用于SMT求解器进行检测,判断是否为冲突状态。
为了进一步优化上述技术方案,指令转换模块包括待执行操作语句识别单元、待触发状态语句确定单元、语句替换单元和条件指令输出单元;其中,待执行操作语句识别单元从设备注册表中获取物联网设备的待执行操作语句;并根据待执行操作语句确定API;
待触发状态语句确定单元通过状态自动机确定API的待触发状态语句;
语句替换单元将待触发状态语句替换待执行语句;
条件指令输出单元,输出条件指令。
为了进一步优化上述技术方案,第一检测模块包括:结果状态冲突单元、结果倒置冲突单元、状态覆盖冲突单元和冲突指令输出单元;对于任意两条条件指令,结果状态冲突单元通过文字对比检测触发条件是否相同;如果相同,再检测待执行状态是否是同一设备的不同状态,如果是,则结果状态冲突,返回真并输出冲突的条件指令;
其次,结果倒置冲突单元检测其中一条条件指令的触发条件是否为另一条条件指令的待执行操作,同时检测待执行操作是否为另一条条件指令的触发条件,如果是,则条件结果倒置冲突,返回真并输出冲突的条件指令;
最后,状态覆盖冲突首先检测两条条件指令的触发条件是否可能同时发生,如果可能,再检测待执行操作是否是同一设备的不同状态,如果是,则发生了状态覆盖冲突,返回真并输出冲突的条件指令;
冲突指令输出单元,输出冲突的条件指令。
为了进一步优化上述技术方案,第二检测模块包括:SMT公式转换单元、SMT求解器;SMT公式转换单元将条件指令转换成SMT公式,并输入SMT求解器;SMT求解器输出SMT公式是否有可行解。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种物联网设备调度冲突检测方法,其特征在于,具体步骤包括:
获取设备模型数据,其中所述设备模型包括设备自动机和设备注册表;
根据所述设备模型数据,将设备调度指令转换成条件指令;
根据历史数据中设备调度冲突确定调度冲突规则;
基于所述调度冲突规则检测所述条件指令是否为冲突状态;
若为冲突状态,进行第一冲突消解;若为未冲突状态或冲突消解后执行二次检测;
所述二次检测将条件指令转换成SMT公式,并将所述SMT公式输入SMT求解器进行检测,判断是否为冲突状态;
若为冲突状态,进行第二冲突消解;若为未冲突状态或冲突消解后执行所述条件指令。
2.根据权利要求1所述的一种物联网设备调度冲突检测方法,其特征在于,所述设备调度指令转换成条件指令具体步骤包括:
从设备注册表中获取物联网设备的待执行操作语句;
根据所述待执行操作语句确定API;
通过所述状态自动机确定所述API的待触发状态语句;所述待触发状态语句替换所述待执行语句;
得到条件指令。
3.根据权利要求1所述的一种物联网设备调度冲突检测方法,其特征在于,所述调度冲突规则包括:两条条件指令之间存在至少三种冲突;
结果状态冲突:相同触发条件,不同待执行状态;
条件结果倒置冲突:两条条件指令触发条件和待执行状态位置互换;
状态覆盖冲突:其中一条条件指令的触发条件涵盖另一条件指令的触发条件范围,但有不同的待执行状态。
4.根据权利要求3所述的一种物联网设备调度冲突检测方法,其特征在于,基于所述调度冲突规则检测所述条件指令是否为冲突状态具体步骤如下:
对于任意两条条件指令,首先通过文字对比检测触发条件是否相同;如果相同,再检测待执行状态是否是同一设备的不同状态,如果是,则结果状态冲突,返回真并输出冲突的条件指令;
其次,检测其中一条条件指令的触发条件是否为另一条条件指令的待执行操作,同时检测待执行操作是否为另一条条件指令的触发条件,如果是,则条件结果倒置冲突,返回真并输出冲突的条件指令;
最后,首先检测两条条件指令的触发条件是否可能同时发生,如果可能,再检测待执行操作是否是同一设备的不同状态,如果是,则发生了状态覆盖冲突,返回真并输出冲突的条件指令;
如果上述三步都没有发现冲突,则根据规则检测不出冲突,返回假,算法结束。
5.根据权利要求3所述的一种物联网设备调度冲突检测方法,其特征在于,所述二次检测具体步骤如下:
将条件指令转换成SMT公式,并输入SMT求解器;
输出所述SMT公式是否有可行解,其中,将两个条件指令的触发条件对应的SMT公式写入同一个文件中,对所述SMT公式进行求解;
如果结果无解,这两个触发条件不会同时发生,表示不会发生冲突;否则结果有解,这两个触发条件可能同时发生,表示可能发生冲突。
6.一种物联网设备调度冲突检测系统,其特征在于,包括:
数据获取模块,用户获取设备模型数据,其中包括设备自动机和设备注册表;
指令转换模块,用于将设备调度指令转换成条件指令;
调度冲突规则模块,用于根据历史数据中设备调度冲突确定调度冲突规则;
第一检测模块,用于基于所述调度冲突规则检测所述条件指令是否为冲突状态;
第二检测模块,用于SMT求解器进行检测,判断是否为冲突状态。
7.根据权利要求6所述的一种物联网设备调度冲突检测系统,其特征在于,所述指令转换模块包括待执行操作语句识别单元、待触发状态语句确定单元、语句替换单元和条件指令输出单元;其中,待执行操作语句识别单元从设备注册表中获取物联网设备的待执行操作语句;并根据所述待执行操作语句确定API;
所述待触发状态语句确定单元通过所述状态自动机确定所述API的待触发状态语句;
所述语句替换单元将所述待触发状态语句替换所述待执行语句;
所述条件指令输出单元,输出条件指令。
8.根据权利要求6所述的一种物联网设备调度冲突检测系统,其特征在于,所述第一检测模块包括:结果状态冲突单元、结果倒置冲突单元、状态覆盖冲突单元和冲突指令输出单元;对于任意两条条件指令,所述结果状态冲突单元通过文字对比检测触发条件是否相同;如果相同,再检测待执行状态是否是同一设备的不同状态,如果是,则结果状态冲突,返回真并输出冲突的条件指令;
其次,所述结果倒置冲突单元检测其中一条条件指令的触发条件是否为另一条条件指令的待执行操作,同时检测待执行操作是否为另一条条件指令的触发条件,如果是,则条件结果倒置冲突,返回真并输出冲突的条件指令;
最后,所述状态覆盖冲突首先检测两条条件指令的触发条件是否可能同时发生,如果可能,再检测待执行操作是否是同一设备的不同状态,如果是,则发生了状态覆盖冲突,返回真并输出冲突的条件指令;
所述冲突指令输出单元,输出冲突的条件指令。
9.根据权利要求6所述的一种物联网设备调度冲突检测系统 ,其特征在于,所述第二检测模块包括:SMT公式转换单元、SMT求解器;所述SMT公式转换单元将条件指令转换成SMT公式,并输入SMT求解器;
所述SMT求解器输出所述SMT公式是否有可行解。
CN202110291182.2A 2021-03-18 2021-03-18 物联网设备调度冲突检测方法及系统 Active CN113064666B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110291182.2A CN113064666B (zh) 2021-03-18 2021-03-18 物联网设备调度冲突检测方法及系统
US17/697,338 US20220300287A1 (en) 2021-03-18 2022-03-17 CONFLICT DETECTION METHOD AND SYSTEM FOR INTERNET OF THINGS (IoT) DEVICE SCHEDULING

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110291182.2A CN113064666B (zh) 2021-03-18 2021-03-18 物联网设备调度冲突检测方法及系统

Publications (2)

Publication Number Publication Date
CN113064666A CN113064666A (zh) 2021-07-02
CN113064666B true CN113064666B (zh) 2022-03-29

Family

ID=76562102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110291182.2A Active CN113064666B (zh) 2021-03-18 2021-03-18 物联网设备调度冲突检测方法及系统

Country Status (2)

Country Link
US (1) US20220300287A1 (zh)
CN (1) CN113064666B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114114950B (zh) * 2022-01-20 2022-04-12 广州优刻谷科技有限公司 一种基于语义分析的智能家居异常检测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859158A (zh) * 2005-08-05 2006-11-08 华为技术有限公司 命令行冲突检测及业务配置实现方法
CN102035890A (zh) * 2010-12-08 2011-04-27 中国科学院声学研究所 一种基于面向物联网应用的Web服务并发控制方法及系统
CN107808669A (zh) * 2017-09-30 2018-03-16 深圳市艾特智能科技有限公司 语音控制方法、智能家居系统、存储介质和计算机设备
CN110597075A (zh) * 2019-09-09 2019-12-20 珠海格力电器股份有限公司 一种检测控制冲突的方法、装置、电子设备及存储介质
CN112180757A (zh) * 2020-11-03 2021-01-05 哈尔滨工程大学 一种智能家居系统及其策略管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007020735A1 (ja) * 2005-08-18 2007-02-22 Matsushita Electric Industrial Co., Ltd. 競合解決装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859158A (zh) * 2005-08-05 2006-11-08 华为技术有限公司 命令行冲突检测及业务配置实现方法
CN102035890A (zh) * 2010-12-08 2011-04-27 中国科学院声学研究所 一种基于面向物联网应用的Web服务并发控制方法及系统
CN107808669A (zh) * 2017-09-30 2018-03-16 深圳市艾特智能科技有限公司 语音控制方法、智能家居系统、存储介质和计算机设备
CN110597075A (zh) * 2019-09-09 2019-12-20 珠海格力电器股份有限公司 一种检测控制冲突的方法、装置、电子设备及存储介质
CN112180757A (zh) * 2020-11-03 2021-01-05 哈尔滨工程大学 一种智能家居系统及其策略管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"SMT求解技术的发展及最新应用研究综述";王翀 等;《计算机研究与发展》;20170715;全文 *

Also Published As

Publication number Publication date
US20220300287A1 (en) 2022-09-22
CN113064666A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
JP2018116749A (ja) プロセス制御情報を表示する方法及び装置、機械がアクセス可能な媒体、及びデバイス記述ファイル内にスクリプト拡張機能を作成する方法
CN113064666B (zh) 物联网设备调度冲突检测方法及系统
Soliman et al. Verification and validation of safety applications based on PLCopen safety function blocks
Maoz et al. Symbolic repairs for GR (1) specifications
Chaki et al. A conflict detection framework for iot services in multi-resident smart homes
US20220131718A1 (en) System and method for controlling devices
Tomazzoli et al. Non-monotonic reasoning rules for energy efficiency
Adiego et al. Bringing automated model checking to PLC program development—a CERN case study—
Noura et al. An automated cyclic planning framework based on plan-do-check-act for web of things composition
Le Guilly et al. User constraints for reliable user-defined smart home scenarios
WO2021057053A1 (zh) 一种智能家居物联网系统受攻击安全验证的方法和装置
Han et al. A rule-based ontology reasoning system for context-aware building energy management
CN113654080A (zh) 燃气锅炉中燃烧器的开关机状态确定方法和装置
Preuveneers et al. Consistency in Context-Aware Behavior: a Model Checking Approach.
Leelaprute et al. Detecting feature interactions in home appliance networks
Ulewicz et al. Proving equivalence between control software variants for Programmable Logic Controllers
Ahmadon et al. Ontology-Supported Verification Method for Implementation of IoT Service Design with Petri Net
Leelaprute et al. Describing and verifying integrated services of home network systems
CN113010158B (zh) 纯状态的触发动作编程范式到事件驱动系统的转换方法
US20140343731A1 (en) Common automation system controller
EP3633958A1 (en) Controlling behavior of an internet of things (iot) automation system by identifying policy violations cross-reference to related applications and priority
Rasch et al. Automatic description of context-altering services through observational learning
NL2031648A (en) CONFLICT DETECTION METHOD AND SYSTEM FOR INTERNET OF THINGS (IoT) DEVICE SCHEDULING
US20220046339A1 (en) Data collection device, data collection method, and program
CN113051052B (zh) 物联网系统按需设备调度规划方法与系统

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