摘要综述:智能家居是物联网的一个重要的应用领域。但是,对于开发人员来说,智能家居应用场景的不同增加了理解这些场景的难度。对于开发人员来说,解决智能设备的编程接口的异构性和代码对于底层系统的耦合性都是重要的工作。此外,业务需求的复杂性和可变性也给应用逻辑的发展带来了不小的挑战。
在这篇论文中,展示了一个的方法,这是基于智能家居应用发展的运行时知识图谱。首先,定义了一个描述智能家居场景的概念模型。其次,智能设备的可管理性被抽象成运行时的知识图谱,这种知识图谱可以自动与相应的系统进行连接。最后,提出一种自动生成智能家居应用的方法。这种方法可以减少至少大约85%代码,并且一个真实的应用场景演示了可行性、有效性和对于智能家居应用发展这种新方法的好处。
1. 介 绍
数以万亿计的物联网 (IoT) 设备,例如智能可穿戴设备、智能机器人和其他智能应用,连接到网络中并产生大量数据。智能家居已成为物联网的重要领域。但智能家居应用开发难度大且复杂,这给智能家居应用以及智能家居的推广带来很大阻碍。从系统实现来看,这些应用通过智能家居设备的接口和分析、处理和反馈特定的智能设备和居住情况的信息,可以获得大量数据。在当前的智能家居应用的开发中,要想使用这些可编程的设备,就必须很清楚支持这些设备的操作系统,因此需要开发的人会处理操作系统的底层问题。这不仅分散了开发人员对应用程序逻辑的注意力,但也需要一个熟悉这些应用的底层操作系统的人。因此,开发人员面临许多挑战。首先,智能家居应用的开发是为各种场景。设备的多样性使智能家居服务越来越多元化,同时智能家居场景更加复杂多样。这场景的多样性给开发人员了解场景带来了更多的挑战。其次,智能家居应用被用来开发异构设备。设备数据的类型是不一致的,设备之间的通信是不方便的。处理编程接口的异构性以及代码和底层系统的耦合性对开发人员来说,也是一个重要的挑战。第三是智能家居应用用于来开发各种需求。业务需求的复杂性和可变性对应用逻辑的开发提出了很大的挑战。大多数的开发人员面对这些挑战,但是很难克服这些问题。因此,这有必要提供一种满足以上的这些问题的方法。MDE(model driven engineering, 模型驱动工程)是一种以建模和模型转换为主要途径的软件开发方法。MDE 旨在解决软件开发,通过提高抽象级别和自动生成应用程序工件。运行时的模型已广泛应用于不同的系统来支持数据操作、自我修复 和动态适应。
在这篇论文中,我们提出了一个基于智能家居应用开发的运行时的知识图谱。首先,提出描述智能家居场景的概念模型。第二,智能设备的可管理能力被抽象成运行时的知识图谱,这种图谱自动地与相应的系统相互连接。最后,提出一种自动生成智能家居的方法。这个方法只需要提供一个当前的智能家居场景的描述,配置需求文件,定义一组元模型和映射规则,从而极大地减少了手头上编码的工作量。通过在运行的知识图谱上执行程序,所有自动生成的应用逻辑都可以被执行。当需求发生变化时,开发者仅仅需要管理配置文件就可以快速实现场景的开发。开发人员不需要关注设备和数据,仅仅需要关注需求。
2.相关工作
在智能家居应用的开发上,建模的方法被很多研究者所广泛使用。在软件工程领域,尤其对于这种被发明用于智能家居的工具和元数据而言,建模语言的选择是传统且严格的。有团队开发并提出一个智能家居系统来提高生活质量。他们应用一个简单的模型来表示住户的活动,和电器的操作,还有其他的开发者用各种方法验证了使用知识图谱给智能家居构建模型的可行性。然而,他们的工作并没有关注设备和使用者的需求之间的关系,也没有提供开发应用程序的方法。
在我们之前的工作中,我们提出了一个基于物联网应用开发的方法的运行模型。开发者仅仅需要构建传感器设备的运行模型和满足个性化的应用场景的定制模型。以下的段落将关注我们以往的在模型驱动工程领域上的工作。对于给定的元模型和一组给定的管理接口,SM@RT可以自动生成代码,这是为了将模型映射到有足够的运行性能的接口。如果用户改变元模型,SM@RT可以重新生成映射代码。更多的细节可以在之前的(支持运行时软件架构:基于双向转换的方法)这篇论文中找到,另外,对于不完整的形式化建模语言的情况而言,我们之前的工作提供元对象设施 (MOF)的 元模型支持向上兼容的扩展机制并自动生成用于模型集成的模型转换。但是,也很难从头开始来构建运行时的模型来满足智能家居应用的开发需求。本文中的方法建立在我们之前的工作上。
三、 方法概述
在本节中,我们将概述我们的方法。我们首先提出一个例子,它说明了智能家居发展中遇到的挑战场景。 然后我们简单介绍一个运行时基于知识图谱的智能家居应用开发。
A. 示例

图一.示例
图1中的房子共有三个房间,每个房间有一些智能设备。其中,有一些智能种植的相关设备,如智能温度、控制装置、智能水阀、智能灯和智能窗帘。由这些智能设备提供植物生长的适宜的温度、湿度和光照强度。根据之前的智能家居场景开发方法,开发人员开发物联网系统是基于不同地理位置和不同的智能设备。一方面,应用场景可能包括需要协作的不同类型的设备管理。开发人员必须熟悉由智能设备提供的 API。另一方面,开发者需要自下而上地开发每个场景。开发人员必须编写许多不同的程序来管理类似的场景。除了编程困难、需求变化和设备变化可能会导致应用程序被重新开发。简单来说,就是可复用性比较差。以智能种植应用开发的场景为例,开发者面临以下三种应用程序的挑战:首先,对智能种植场景的需求是复杂的。开发人员需要考虑种植在 A 区的叶绿素的生长需要和B区种植的龟背竹。此外,不同的设备,需要考虑光照强度、土壤湿度等不同。开发人员并不容易查明所有参与智能种植场景应用的对象。其次,复杂的智能设备很多。开发人员需要熟悉智能设备的编程接口,例如智能水阀、智能灯、智能窗帘。应用程序开发是在低级别完成的,非常接近操作系统,需要开发者关注底层系统问题。底层 API 可以是非常复杂的,收集的数据量可能很大。最后,智能种植应用的业务逻辑是复杂多变的。当设备的位置发生变化时,应用程序也会发生变化或当植物类型发生变化时,开发者需要重新开发应用场景。这种不确定性造成大量不必要和重复地开发应用程序。
我们的方法使智能家居场景应用开发更简单、更高效。我们使用模型驱动的开发方法。图 2 展示了基于智能家居应用开发的运行时知识图谱的概览。首先,概念化设备层并自上而下抽象出智能家居场景中的对象。其次,构建智能设备的运行时的知识图谱来提供统一化的管理。第三,根据用户的需求,自动生成逻辑建模程序,并应用于运行时知识图谱,最后实现智能家居场景应用的开发。在我们的方法中,开发人员通过配置需求文件来开发智能家居场景应用,从而大大减少手动编码工作。

图二基于智能家居应用开发的知识图谱概览

图三智能家居应用场景概念模型
四、对于智能家居应用我们的方法
本节介绍基于智能家居应用程序开发方法的运行时知识图谱。智能家居概念模型是以构建智能的运行时知识图谱家庭场景为基础的。运行知识图谱的构建有利于智能家居场景应用的代码自动生成。
A. 智能家居概念模型的定义
图 3 显示了智能家居场景的概念模型。图2抽象出复杂的智能家居应用场景,这将有助于开发人员更好地理解和开发智能家居场景应用。