提起 Eclipse,读者首先想到的可能是广泛使用的集成开发环境,但是 Eclipse 基金会不仅有这个 IDE,它还有超过 250 个的开源项目,其目标在于促进业界参与者将标准与实现结合起来。最近,Eclipse 为了推进物联网领域的标准化,添加了多个新的项目。
据负责 Eclipse 营销和生态系统的副总裁 Ian Skerrett介绍,目前大多数的物联网项目都是基于专有的解决方案,Eclipse 希望通过一个开放的M2M(machine-to-machine)协议以及相关的工具推进开放的物联网,关于M2M、Eclipse 以及物联网,可以参见该文档的介绍。目前,IBM、Sierra Wireless、Eurotech 和Axeda 已经在Eclipse 基金会下参与规范的制定和实现。不过,Eclipse 希望能够有更多的公司参与进来。
为了推进这个愿景的实现,Eclipse 基金会新增了多个开源项目,具体来讲包括 Ponte 、 Eclipse SCADA 、 Concierge 以及 Kura 。目前这些项目大多还处于提议阶段,但基金会希望这些新项目能够结合一些已有的项目形成开放的社区。
随着物联网技术的推进会有越来越多的设备进行互联,设备之间如何进行交互成为了很大的挑战。这些互联的设备,通常称之为机器(Machine),可以分为传感器和传动器(sensor 和 actuator)。传感器会响应现实世界中的事件,而传动器会响应虚拟的事件。不管怎样,在物联网项目中,事件处理都是核心的特性。如今,互联的机器之间有多种称之为 M2M 的协议,但是机器和人的需求是不一样的,很难定义出同时满足两者的协议和最佳实践。 Ponte 项目就是应这种需求产生的,其涵盖的范围可以分为三个方面:
- 通过 REST 定义简单 API 来暴露机器的需求,基于相同的 API 支持多种协议(MQTT、CoAP);
- 提供多种数据格式,如 JSON、XML、Msgpack 以及 Bysant 并提供各种方式之间进行自动转换的方式,最终会定义出通用的传感器和传动器数据展现;
- 定义并构建用户驱动的安全解决方案以支持所有设备之间的交互。
为了监控和管理大规模的工业项目,基金会创立了 Eclipse SCADA 项目。SCADA(supervisory control and data acquisition)是一类工业控制系统(ICS,industrial control system )的统称。Eclispe SCADA 的目标在于将不同的设备以通用的通信系统进行连接并且以图形化的形式将数据展现给操作的用户。Eclipse SCADA 会基于 openSCADA 的代码进行开发。Eclispe SCADA 的范围包括:
- 通信系统;
- 内部的通信总线
- 用来实现驱动模块 / 设备适配器的框架
- 内置的一组驱动模块 / 设备适配器
- 监控系统,用来评估收集到的数据并存储生成的事件;
- 一种数据存储格式,用来存储收集到的数据;
- 创建参考实现;
- 图形化的用户界面,展现监控系统中的告警以及事件等信息。
针对小型的嵌入式设备, Concierge 提供了 OSGi 核心规范的实现。不管是面向终端用户的设备如智能手机以及平板,还是传统的 M2M 应用,如传感平台和家用自动化网关,部署在上面的软件都需要进行有效的管理。在这方面,OSGi 是很重要的技术,它可以提供很多的帮助,最初的 OSGi 也是应用于嵌入式的领域,但是现在 OSGi 的实现更加关注于有充足资源的环境,包含的功能非常多,很难嵌入到系统之中。正是基于这样的现状,Eclipse 发起了 Concierge 项目,它是一个轻量级的 OSGi 实现,针对嵌入式的设备进行了优化,同时兼容于最新的 OSGi 核心规范,也就是目前的 R5 版本。它与 Equinox 的定位有所差别,但是未来会考虑两个项目之间的协作。
Kura 是针对 M2M 服务网关(service gateway)的应用框架,它基于 OSGi 的技术来实现。目前来讲,大多数的网关都是私有的解决方案,这样软件系统的开发和集成难度很大,并且软件重用性很低,Kura 致力于抽象出这种复杂性,进而为 Java 开发人员提供一种更加便利的方式来进行开发。Kura 的范围包括:
- 为运行在服务网关中的 M2M 应用提供基于 OSGi 的容器。Kura 的 API 和服务涵盖了 M2M 应用常见的需求。这些扩展包括但不限于:I/O 访问、数据服务、watchdog、网络配置以及远程管理等等。
- Kura 包含了已有的 javax.* API,如 javax.comm、javax.usb 以及 javax.bluetooth,这样当需要这些功能时,只需选择一个符合 Eclipse 许可的开源实现并将其打包为 OSGi bundle 就可以了。
- 设计了一个构建环境,这个环境隔离了原生的代码组件。
- 提供开发环境,允许开发人员在 Eclipse IDE 中以模拟环境运行 M2M 应用。
因为基于 OSGi 技术实现,因此 Kura 可以很容易地为 M2M 应用集成所需的常见服务。目前,这个项目的参与者包括 IBM、Hitachi 以及 openHAB 等。
借助于 Arduino 和 Raspberry Pi 所引发的浪潮,有越来越多的开源开发人员开始关注于硬件项目,这会是推进物联网发展的机遇,Skerrett 希望这也能推动基金会在这方面的发展。
感兴趣的读者可以访问各个项目的官方站点以了解更多信息。
评论