国外物联网平台(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 :用户管理服务

最新文章

  1. StartCom 申请 SSL 证书及 Nginx HTTPS 支持配置全攻略
  2. 转: Redis基础总结
  3. Android常见控件— — —Button
  4. Git命令行初体验
  5. Winform(C#.NET)自动更新组件的使用及部分功能实现(一点改进功能)
  6. 自定义View(5)Paint常用的一些绘制滤镜,特效等介绍
  7. j2ee的13个标准
  8. MyEclipse 8.5 Axis2 插件完整jar包
  9. Linux下查看文件夹或目录大小
  10. vdsm的SSL证书验证过程
  11. Elasticsearch与Solr
  12. 【Android】用Cubism 2制作自己的Live2D——android sdk样本的下载与Android studio编译!
  13. 关于ORACLE数据库名以及数据实例名等几个重要概念
  14. Netty(一) SpringBoot 整合长连接心跳机制
  15. An owner of this repository has limited the ability to open a pull request to users that are collaborators on this repository.
  16. JavaSE| 流程控制
  17. Android学习笔记————利用JDBC连接服务器数据库
  18. log4net配置使用
  19. 多个SpringMVC项目配置统一管理(来自于springCloud的统一配置思路)
  20. Kafka学习之路 (四)Kafka的安装

热门文章

  1. org.apache.hadoop.security.AccessControlException: Permissiondenied: user=liuyingping, access=WRITE,inode="/user/root/output":root:supergroup:drwxr-xr-x
  2. python开发mysql:表关系&单表简单查询
  3. .Net 框架实现AOP(动态代理实现AOP,本文为翻译)
  4. Python实现SSH传输文件(sftp)
  5. 第十五章 MySQL日志(待续)
  6. Android 4学习(8):用户界面 - Fragment
  7. linux下的定时或计时操作(gettimeofday等的用法,秒,微妙,纳秒(转载)
  8. Checker Challenge跳棋的挑战(n皇后问题)
  9. SonarQube在CentOS上的安装
  10. Linux主机名的设置