一个真正的智能家庭需要满足自我意识、自我管理与自我学习。智能家居里的居住者应该是人类家庭互动的一部分,而不是所有连接设备的管理员。自我意识意味着家庭可以自动感知居住者的身份和家庭数据;自我管理可以自动安排一切,免除人为的操作;自我学习是指根据历史数据对居住人的个人行为进行简述,然后为家庭实现个性化的配置。智能家居是一个面向数据的环境,这意味着智能家居中的服务应该与设备所收集的数据直接交互,而不是与资源,或者换句话说,特定设备交互。
家庭操作系统的缺乏使得管理设备、数据和服务变得非常困难。这是由于现在大多数系统以筒仓为基础工作,不能与其他系统连接或通信,如图1所示。为了解决这个问题,使用边缘计算,提出了EdgeOs,这是万维网下的家庭操作系统。通过边缘计算,家庭中的设备和服务可以连接到中央EdgeOs。这个范例更有效、更容易地管理设备和服务。
将边缘计算应用于智能家居,提出了EdgeOs,一个用于万能互联网的智能家庭操作系统,如图2所示。EdgeOs是连接家用设备和云、家庭住户和开发者的桥梁。对于云,EdgeOs可以代表设备的上游/下游数据和计算请求。对于家庭居住者来说,EdgeOs提供了人类和家庭之间的合作。对于服务从业者来说,EdgeOs能够通过提供统一的编程接口来降低开发的复杂性。对于智能家庭,EdgeOs是管理数据、设备和服务的大脑,同时保证数据的安全性和隐私性。
EdgeOs的设计如图4所示,包括七个组件:通信适配器、事件集线器、数据库、自学习引擎、应用程序编程接口、服务注册表以及名称管理,它们跨越其他组件。为了将设备集成到EdgeOs,通信适配器通过嵌入式驱动程序访问设备。这些驱动程序负责向设备发送命令并从中收集状态数据(原始数据)。在设备和事件集线器之间,通信适配器映射到逻辑视图中的通信层。它封装来自各种设备的不同通信方法,同时为上层调用提供统一的接口。这样,开发人员和用户在操作系统时不需要处理多种通信方式。此外,它只向上提供抽象数据,在一定程度上降低了隐私风险。事件集线器作为体系结构的核心,在逻辑视图中映射到两层:数据管理层和自管理层。事件集线器负责捕获系统事件并将指令发送到较低级别。这些指令是基于与自学习引擎通信而开发的机器学习的智能命令。它收集来自服务的请求并将它们发送到通信适配器,然后,从通信适配器收集抽象数据并将它们发送到上层。数据库是数据管理层中的另一个组件。作为一个面向数据的系统,EdgeOs每天生成大量的数据,其中包含与用户偏好和设置相关的有价值的信息。事件集线器在数据库中存储数据。存储在数据库中的数据由属于自管理层的自学习引擎使用。自学习引擎创建学习模型。这种被称为自学习模型的学习模型作为事件集线器的输入来提供决策能力。为了提供更好的用户体验,开发了自学习引擎来分析用户行为,为用户生成个人模型,并帮助改进系统。应用编程接口(API)和服务注册表位于系统的上层,并被用于第三方服务。鼓励开发人员使用EdgeOs API与事件集线器通信,并用系统注册他们的服务。所有层的要求,名称管理有助于系统保持设备的组织。当新的设备注册到系统时,名称管理使用以下规则为其分配一个名称:位置(WHO)、角色(WHO)和数据描述(什么)。此规则遵守所有层。
边缘计算的编程挑战:EdgeOs 编程接口是一个灵活的接口,通过该接口,设备和服务可以相互通信。这个接口将使开发人员的任务变得容易得多,因为它将多个接口简化为一个接口。在这个接口中,EdgeOs 将管理所有设备的数据收集。收集的数据将存储在表中(图5)。然后,用户可以利用统一接口获取数据并从EdgeOs 发送命令。
自我管理:
1.设备注册:新设备的加入可以通过用户自定义进行配置或者EdgeOs 根据现有的轮廓简介自动配置
2.设备维护:EdgeOs 负责所有的设备,包括监测他们的健康状况,并及时向乘客发出警告通知。健康状况的某一属性判断值是心跳,观测心跳的频率。
3.设备更换
4.冲突调节:使用一个具有多个服务运行的设备,EdgeOs 可以为用户提供设置每个服务优先级的选项。在发生冲突的情况下,优先级较高的服务优先。
自管理层将协助创建一个用户配置文件(EdgeOs)将利用它来建立与新设备相关联的新服务。通过将自管理层引入EdgeOSH,用户不需要重新配置设备和相关服务。EdgeOs 将能够使添加或替换过程快速和平稳。
数据管理:
1.数据质量:判断属性为准确、完整、接近或接近实时,历史模式和参考数据。在智能家居中,由于周期性的用户行为,数据很容易陷入某种模式。为了更好地为家庭应用和设备提供服务,可以利用当前的数据挖掘和机器学习算法来训练EdgeOs 中的数据质量检测模型,如图6所示。该模型可以从历史数据记录中自动检测异常数据模式,并进一步分析异常模式的原因,这可能是用户行为改变、设备故障、通信接口或来自外部的攻击。
2.数据抽象:在EdgeOs 上运行的服务应该与设备隔离,这意味着原始数据应该从家庭设备中抽象出来,并且只有抽象的数据应该被呈现给服务。但是数据抽象存在困难:数据的格式各异,数据抽象等级难以决定,数据未必可靠