Eclipse Kura物联网网关软件介绍(一)——概述

本文是对Eclipse Kura物联网网关软件进行介绍的系列文章的第一篇。
本文主要从总体上介绍Kura。
作者:与子同袍
首发:物联网前沿技术观察

1.物联网系统三大组件

对于任何一个物联网系统,有三个重要的组件:

  1. 设备:网关连接的末端物联网节点;
  2. 网关:连接多个设备,并与物联网云平台双向通信;
  3. 物联网云平台:连接分布式的大量网关和设备,并可基于其开发物联网应用程序。

对于这三个组件,目前许多物联网公司都是自己投入资源,自己从头开发。但是实际上,这里面会有很多问题:

  1. 开发时间短,不够稳定可靠。
  2. 重复造轮子。
  3. 不同厂家的不统一,集成工作量大。

因此,Eclipse基金会就设计了如下的三个技术框架。

这三个物联网技术框架在设计时,就考虑到了下面几个关键点:

  • 松耦合- 这三个框架应该能够相互独立。供应商A的IoT网关要可以和供应商B的IoT云平台通信,供应商A的IoT网关同时也要可以和供应商C的设备进行通信。
  • 模块化 – 每个技术框架应该允许不同供应商添加功能特性。
  • 平台独立 – 每个技术框架应该与宿主机的软硬件环境及云平台基础设施独立。设备技术框架可以部署到多种硬件,IoT云平台可以在不同的PAAS云上运行。
  • 基于开放标准 – 为保证互操作性,不同技术框架之间的通信采用开放标准。
  • 明确定义的API – 每个技术框架都应该定义好API,以便与已有应用和其他IoT解决方案集成。

2.网关软件的技术挑战

这三个框架中,物联网网关是连接现场设备和物联网云平台的桥梁。

物联网网关软件开发时,都会遇到许多技术问题:

3.Kura网关软件解决之道

Eclipse Kura是一个Eclipse物联网项目中的一个子项目,它实现了上述网关软件技术框架。

Kura提供了一个网关软件的开发框架,将网关应用开发人员与硬件和网络通讯的复杂性进行抽象和隔离。它提供了各种API,让用户可以开发和部署自己的IoT网关软件。从而提高了开发效率和可重用性。

Kura解决了网关开发中常见的这些问题:

  • 支持多种联网方式:Wi-Fi/2G/4G/有线
  • 支持各种协议的设备
  • 连接到不同协议的云平台
  • 提供管理配置界面
  • 支持远程配置、远程升级
  • 安全性
  • 自定义业务逻辑

Kura API提供对底层硬件的轻松访问,包括串口,GPS,看门狗,USB,GPIO,I2C等。它还提供Web管理界面,以简化本地和远程的配置管理。

4.总体结构

Kura基于Java开发,通过底层的OSGi框架提供模块化的服务。

它提供了物联网网关所需的各种服务:

  • I/O服务:串口读写、自定义扩展USB访问和事件、蓝牙访问、GPS定位信息读取、同步系统时钟的时钟服务、读写GPIO / PWM / I2C / SPI的服务。
  • 数据服务:存储和转发网关采集并发布到远程服务器的遥测数据;消息发布默认使用Eclipse Paho这一MQTT客户端。
  • 云服务:提供易于使用的API层,用于物联网应用程序与远程服务器通信。除了简单的发布/订阅方式外,Cloud Service API还简化了更复杂的交互流程的实现。
  • 配置服务:利用OSGi规范ConfigurationAdmin和MetaType提供快照服务,以导入/导出容器中所有已注册服务的配置。
  • 远程管理:允许远程管理Kura中安装的IoT应用程序,包括其部署,升级和配置管理。远程管理服务依赖于配置服务和Cloud Service。
  • 联网管理:提供API并配置网关中可用的网络接口,如以太网,Wi-Fi和移动运营商网络。
  • 看门狗服务:将关键组件注册到看门狗服务,在检测到问题时强制通过硬件看门狗进行系统复位。
  • Web管理界面:提供在Kura容器内运行的基于Web的管理控制台来管理网关。
  • 驱动和资产:引入统一模型以简化与连接到网关的设备的通信。驱动程序封装了设备数据采集的通信协议及其配置参数。
  • Wires数据流可视化编辑:提供模块化和可视化的数据流编程工具,通过简单地从面板中选择组件并将它们连接在一起来定义边缘层的数据采集和处理流水线。这样,用户可以配置资产,定期从其渠道获取数据,将其存储在网关中,使用强大的SQL查询过滤或聚合它们,并将结果发送到云。

5.运行环境

目前运行Kura的唯一两个硬性要求是:

  • Linux操作系统
  • Java SE 8

由于Kura基于Java运行,因此网关存储空间最好不少于256MB。

内存要求则根据框架内运行的应用程序类型以及发送和接收的消息数量/频率而异。

Kura默认的OSGi容器为Eclipse Equinox。

6.为何使用OSGi?

Kura为何基于OSGi开发,选择OSGi开发有哪些好处呢?

  • 降低复杂性 – 使用OSGi技术开发意味着开发Bundle。Bundle之间通过定义良好的服务进行通信。这不仅减少了错误的数量,而且还使Bundle更容易开发。
  • 可重用 – OSGi组件模型使得在应用程序中使用第三方组件变得非常容易。
  • 动态。OSGi组件模型是动态模型。可以安装、启动、停止、更新和卸载软件包,而无需关闭整个系统。
  • 轻松部署 – OSGi技术不仅仅是组件的标准。它还指定了如何安装和管理组件。许多Bundle包使用此API来提供管理代理。
  • 自适应 – OSGi服务注册表是一个动态注册表,Bundle包可以注册,获取和监听服务。这种动态服务模型允许Bundle包找出系统上可用的功能并调整它们可以提供的功能。这使代码更灵活,更灵活。
  • 版本控制 – OSGi技术解决了JAR地狱问题。
  • 简单 – OSGi API非常简单。核心API只有一个包,少于30个类/接口。这个核心API足以编写捆绑包,安装它们,启动,停止,更新和卸载它们。
  • 小巧 – OSGi第4版框架可以在大约300KB的JAR文件中实现,开销很小。因此,OSGi可以在嵌入式设备上运行。它只要求运行一个最小的Java VM。
  • 【笨办法学物联网】之一: 物联网工程专业四年里应该学习哪些实用技能傍身?
  • 【笨办法学物联网】之二: 物联网工程专业到底培养的是什么人才?物联网全栈工程师
  • 【笨办法学物联网】之三:物联网工程专业10步学习法
  • 【笨办法学物联网】之四:99个物联网动手实践项目
  • 【笨办法学物联网】之五:软硬件学习环境准备

更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察
申请加入物联网技术研讨大佬微信群,请加微信号:iot1999

发表评论

邮箱地址不会被公开。 必填项已用*标注