国外物联网平台(5):Exosite Murano

国外物联网平台(5)
——Exosite Murano

马智

 

定位

Murano是一个基于云的IoT软件平台,提供安全、可扩展的基础设施,支持端到端的生态系统,帮助客户安全、可扩展地开发、部署和管理应用、服务以及联网产品。

 

功能

  • Murano平台简化了整个IoT技术栈,可视为集成在一起的多个云软件层。
  • Murano提供IoT基础设施、开发环境和功能集成,包括设备连接、产品管理、数据路由、服务集成(如data store/告警/第三方分析平台)、应用开放API、用户认证/角色/权限和应用托管。
  • Murano允许与第三方软件集成,开发者只需要关注用户应用和设备应用。
  • Murano能够使开发者快速创建整个IoT系统,同时保持灵活性,允许添加新功能和自定义功能。

 

架构

 

产品层

Murano中的产品层表示联网设备的类型,它提供工具和接口,以便管理产品定义,允许开发者使用通用API进行设备部署、业务开通、数据路由定义、现场升级和配置。开发者可使用已集成的仪表盘原型快速创建设备并验证设备行为。

 

产品层功能

  • 设备管理:管理设备状态、部署固件及升级、版本控制。
  • 设备连接&安全:使用TLS标准协议创建加密连接通道,开发者可快速连接设备并进行数据通信。
  • 设备开通:安全、可扩展的开通接口满足OEM厂商在设备生产状态和运行状态下的灵活开通需求。
  • 开放访问:兼容大多数嵌入式硬件配置。
  • 仪表盘工具:快速创建、配置和部署仪表盘,以便可视化设备数据。
  • 嵌入式SDK:ExositeReady™ 嵌入式SDK能够向大多数Wi-Fi和以太网嵌入式平台进行移植。
  • 网关引擎:Exosite的网关引擎框架功能包括自动开通、设备管理、现场固件升级,以加速网关设计。
  • 开发资源:具备C、 C++ 、 Python 、 Java 、 .NET 、 Node 、 Go等语言的开源库。
  • 数据模型:基于设备元数据、数据源、设备分组、访问策略、流程环节、事件和告警,能够灵活地开发、维护和升级复杂的数据模型。

 

解决方案层

  • Murano中的解决方案层表示应用逻辑、用户接口、应用API。利用设备数据,在数据路由、服务集成、自定义API、用户认证/角色/权限和应用托管的基础上,提供开发和部署应用及服务的工具,使开发者创建解决方案模板,包括整个部署到最终用户的应用功能,以及产品的自定义API。

 

解决方案层功能

  • 角色&权限管理:已集成的用户服务提供权限模型,包括认证、管理和角色定义等。
  • 自定义API:可自定义web-service API,根据设备数据,定义每个解决方案的上下文环境、应用逻辑和设备/用户访问。
  • 应用托管:静态应用文件托管使整个应用托管在Exosite上,Exosite提供技术支持和7*24监控。
  • 服务数据路由和事件逻辑:使用事件逻辑系统设置门限,调度服务通过短信、电子邮件或者HTTP发生告警。
  • 应用程序库:丰富的应用程序库便于设计、配置和部署原生应用。
  • 数据存储:带有时间戳的Key-Value存储,所有数据在不同服务器上存有副本。
  • 分析引擎:提供实时数据流处理和自动处理,易于解析原始数据包及格式转换。
  • 融合方案:利用Exosite的合作伙伴方案,或者自定义cloud-cloud连接,集成其它云服务。
  • IoT超市:访问大量的已集成的合作伙伴方案,加速IoT部署,所有的服务插件由Exosite托管。

 

业务层

  • Murano将联网产品和方案完全转型为数据驱动业务。使用企业级的功能特性,Murano无缝集成业务系统,释放IoT的真正价值,加速企业转型。

 

业务层功能

  • 管理控制台:易于使用的管理工具,设定数据层面的方案配置。
  • 系统使用报表:分析、优化和理解资源使用模型,提供实施方案监控。
  • 方案模板:垂直应用模板用于产品定义、数据路由、用户角色定义和应用内容,加速上市。
  • 业务软件集成:使用第三方软件,如:Salesforce、Twilio和其它CRM软件,业务报表、分析工具和基于云的调度和数据服务。
  • 方案监控:提供端到端的跨方案业务洞察,整体性能的深度可视。
  • 数据发现:使用数据浏览、可视化和导出工具,获得业务知识和运营洞察。
  • 访问控制:决定谁能够查看和访问不同账户层次的信息,快速和安全地创建层级结构和展示选项。
  • 安全管理:管理SSL证书和DNS,集成监控服务到Murano中,平滑和安全地进行IT运维。
  • 标准化工具:集成源码控制工具,重用公共组件。

 

安全-多重防护

  • 集成领先的安全框架,在所有敏感接口上采用银行级的SSL加密方式
  • API端点使用socket层安全协议(SSL/TLS),防止数据窃取、篡改、伪造。
  • 用户界面和Web应用使用HTTPS加密通信,保护数据交换的隐私和完整性。

 

安全-数据存储

  • 多层次安全模型保证数据存取安全策略的执行
  • 限制数据服务器的物理访问,现场监控物理设施,提供多重身份认证和安全日志
  • 用户数据访问受到严格控制,每次请求必须通过认证,访问与用户数据进行隔离。

 

安全-用户认证

  • 用户认证严格控制平台访问,权限分层易于多维度信息访问授权,基于用户权限级别生成API临时秘钥。
  • 安全存储敏感用户信息、密码和令牌。

 

安全-设备认证

  • 禁止没有授权情况下平台和终端的任何数据交换。
  • 所有设备使用私钥与平台进行数据交换。
  • 配置时为防止欺骗,现场设备在受控的时间窗口内,使用加密的API通信(DTLS和TLS),与平台建立认证。
  • 一旦设备通过认证,建立其拥有权和权限层级。

 

设备SDK

为减少开发时间,ExositeReady™ 嵌入式SDK提供商业级终端软件快速安全地连接硬件设备。

 

设备SDK功能

  • 设备移植:ExositeReady SDK提供将现有配置向新硬件平台的移植。
  • 示例程序:浏览Demo查看移植方法。
  • 支持的硬件平台: ExositeReady认证的硬件包括开发指南、示例程序和二进制编码文件。
  • 集成API:提供易于集成的应用级API。
  • 库级API: ExositeReady认证的硬件预置连接Exosite云平台的功能。
  • 安全连接: ExositeReady认证的硬件采用了最新的安全标准。
  • 开源:ExositeReady SDK是开源软件,基于Apache 2.0许可完全免费。
  • 代码可移植性:使用C99编写,ExositeReady SDK可使用在任何嵌入式平台上。

 

设备网关引擎

ExositeReady™ 网关引擎是一个软件包,便于快速安全地在终端节点、网关和Murano平台之间通信。

 

设备网关引擎功能

  • 应用托管:开发和监控自定义网关应用、版本控制、重启和失败定义、调试日志存取。
  • OTA升级:使用安全可靠的OTA引擎,远程安装和升级网关固件和应用。
  • 网关数据采集:监控重要的网关信息,如硬盘使用率、文件系统元数据、移动网络数据流量使用,易于调试和预测潜在问题。
  • 消息队列:使用灵活的存储-转发式的HTTP服务,避免断电或不可靠连接引起的数据丢失。
  • 过程和日志管理:通过开源的流程管理工具和监控系统,记录重启过程和日志文件。
  • API库:使用安全和已验证的API库,加速开发Python应用。
  • 模块化传感器接口:利用内置的传感器驱动,或添加和扩展I/O接口,满足实际需求。
  • 可插拔式服务接口:使用内置的云模块,将设备数据路由至Murano平台,易于集成其它现场业务管理系统。

 

设备HTTP API

  • 设备固件和应用必须使用此API开通业务,以及与平台进行交互。

时间序列数据类API:

  • Write:向一组资源写入数据
  • Read:从一组资源读取最新数据
  • Hybrid Write/Read:先写入一组资源,然后读取一组资源
  • Long-Polling:当有资源更新时,及时发出通知

设备开通类API:

  • Activate:激活设备并获取设备CIK
  • List Available Content:获取设备内容文件列表
  • Get Content Info:获取设备内容文件的元数据
  • Download Content:下载设备内容文件

工具类API:

  • Timestamp:获取当前unix格式时间戳

 

Murano脚本

  • Murano平台是一个事件驱动型系统,使用脚本路由数据,并执行应用逻辑和规则。
  • Murano脚本:
    • 具有丰富的功能,用于存取设备数据至时间序列数据库、执行设备任务、处理方案应用API请求等操作。
    • 可访问所有Murano服务。
    • 使用Lua语言编写,运行在LuaJIT虚拟机。
    • 可使用管理控制台或者命令行接口添加至解决方案。

 

Murano脚本相关概念

  • 服务调用:Service Call
  • 脚本执行和事件处理:Script Execution & Event Handlers
  • API端点脚本:API Endpoint Scripts
  • Websocket脚本:Websocket Scripts
  • 脚本模块:Modules
  • 脚本环境:Script Environment

 

Murano服务

Murano服务可被脚本访问,由2种不同的组件构成:操作和事件。

  • 操作Operations:可在脚本中调用的方法 
  • 事件Events:可触发脚本执行

 

Murano服务列表

通信类:

  • Device:设备网关服务
  • Email:Email服务
  • Twilio:Twilio服务(短信和电话)
  • Webservice :网关服务自定义API
  • Websocket : WebSocket网关服务

 

核心类:

  • Tsdb:时间序列存储服务
  • Keystore :键值存储服务

其它类:

  • Config :方案配置服务
  • Timer :计时服务API
  • User :用户管理服务
posted @ 2017-01-26 20:51  ibrahim  阅读(2881)  评论(0编辑  收藏  举报