Skip to content

技术文档:架构

概述

以下两幅图概括介绍了 Proficloud 和我们的云连接器 SDK 的架构,并重点关注它们对应的用户视角。

Proficloud

Proficloud聚焦客户的最终用户。他们使用智能服务(例如,EMMA),以及直接或间接使用核心服务(例如,用户管理或账单服务)。

在这些服务下面,我们可以找到特别负责连接设备和云的Proficloud核心物联网平台的技术基础,那就是可扩展型Kubernetes集群。所有服务都在该集群上运行,并且该集群用于扩展针对连接完成的用户和设备的Proficloud。AWS是我们的云提供商。

Proficloud Architecture with a focus on the cloud side of Proficloud.io

云连接工具SDK

我们云连接工具SDK的用户是设备固件开发商。这些设备将被连接到Proficloud或“any Cloud”

对于这些设备,我们通过SDK的API提供了许多功能,例如,发送时间序列数据或健康状况相关信息,以及以远程方式进行固件更新。

在使用Proficloud时,通过SDK提供所有这些功能。 但您还可以选择其他几家云提供商,例如AWS、MS Azure或西门子Mindsphere。 在这种情况下,我们提供将您的物联网数据传输到个别云提供商的功能,例如,将数据传输到AWS的物联网核心服务。 这就是我们所说的“any Cloud”。

Proficloud Architecture

技术文件: 固件更新

更新过程适用于任何类型的更新(例如:固件更新、配置更新或应用程序更新)。 在由Proficloud的更新服务控制的不同阶段进行更新。 向UI透明地报告每个步骤。

阶段

更新请求命令

在第1阶段,会询问设备固件是否允许和可以从云端使用给定的元数据(更新类型、更新版本和更新规模等)进行更新。 设备固件检查设备上的可用空间、升级或降级规定和状态(例如,在PLC上运行状态),并响应“允许”或“不允许”。

下载请求

应下载请求,将通过临时签名的HTTP端点进行实际下载(通过TLS服务器认证)。 如果下载成功,设备响应成功消息。

下载检查请求

下载成功后,将通过设备专用工具检查下载完成的图片。 例如,使用PLCnext实施工具检查sha256校验和,以及用于固件更新的Rauc束的签名。 将向Proficloud报告检查结果。

安装请求

最后一个请求涉及实际安装更新内容。 只有在确认安装成功后(可能需要自动重启),设备会响应成功安装更新内容。

安全

为尽可能安全地设计更新过程,每个命令都有几个安全特征:

  • 命令包含触发日期和到期日期: 时间是非常重要的安全因素。 如果设备的系统时间错误,则TLS证书无法得到正确验证。 除此之外,触发日期和到期日期能够防止攻击者比应该的时间更晚发送捕获完成命令。
  • 已签署的命令:从Proficroud发送的每个命令都由与单个组织账户相关的CA签名(https://tools.ietf.org/html/rfc7515)。在手动将公共CA证书传送到设备中后,设备能够验证收到的命令是由Proficloud的指定账户发送的。
  • 受到TLS保护的连接: 通过客户证书认证,对Proficloud和设备之间的整个MQTT通信作了TLS保护。
Every step is transparently reported to the Proficloud and is visible for the user.

技术文件: 设备认证

Proficloud的MQTT端点受到TLS的保护,需要获得基于客户证书的认证。 此外,每台设备都有特定令牌,用于验证平台内的数据包。

证书和令牌注册和更新

每台设备在通过HTTPS进行连接前,请求获得其证书的状态,作出的响应有3种情况:

  1. Proficloud账户未申报/注册该设备→设备按循环次序再次尝试请求
  2. 账户申报/注册设备,但之前未作连接:设备首次请求获得证书、私钥和令牌。 成功转让后,通过调用Proficloud.io确认交易。 证书、私钥和令牌只能获取一次,直到新证书即将到期时再次获得。
  3. 设备已经连接,但证书将在至少2周内到期或已经到期:设备请求获得新证书和私钥, 成功转让后,通过调用Proficloud确认交易。初始配给过程只能进行一次。
Every device requests the state of his certificate before connect over HTTP.

技术文件: 连接方式

将设备连接到Proficloud的多种方法

有多种方法可以将设备、计算机或其他任何装置连接到Proficloud。
Proficloud以MQTT和REST接口的形式,提供了几种安全的API和协议。
为了不让固件开发商独自应对API、协议和安全措施的不断变化,我们开发了抽象这些内容的各类解决方案,并为您提供了一种更易于使用的方式来连接到Proficloud。

Ways to connect to the Proficloud
Ways to connect to the Proficloud.io

云连接工具——软件开发包

我们开发了一个云连接工具——软件开发包(SDK)。该工具带有易于使用的C++ API,使固件开发商无需处理技术细节,而是专注于Proficloud.io提供的功能。
SDK将与Proficloud.io和任何云进行所有的安全通信。
它还将规定需要如何格式化发送到云的数据、设备的加载过程,或者在何处以及如何获得远程更新所需的固件图像等方面。

云连接工具服务

在某些情况下,需要一个更加模块化的、独立于编程语言的解决方案。它不仅仅管理安全通信和云API的抽象方面。
需要这样一种解决方案:易于使用,提供自行完成整个固件更新过程等其他功能,且可被轻松集成到固件构建过程中。

这就是为什么我们引入了基于云连接工具SDK的云连接工具服务。它使用MQTT作为模块化系统设计的进程间通信机制,提供固件更新用RAUC更新程序等其他进程,同时拥有便于集成到目标系统的Yocto层。

PLCnext云连接工具用组件

如果计划构建新的可编程逻辑控制器(PLC),或者已经使用菲尼克斯电气的PLCnext平台,那么我们有好消息:
SDK已被集成到“PLCnext技术”中,可以开包即用,非常容易。

物联网网关

最后,也可能是,有一台设备不能自行建立安全的互联网连接,或者大量类似的设备不希望每台设备都单独连接到互联网。
那么可以使用互联网网关。除使用PLCnext控制器作为网关或重新将SDK集成到Node Red 等选项外,现在还有一些网关选项在开发当中。
可以通过网关选项将数据发送到云端。 它的缺点是,目前无法针对网关后方的设备使用固件更新等更复杂的功能。

总而言之,有很多选择可以将任何所需设备连接到Proficloud.io,或其他获得支持的云提供商。
通过云连接工具SDK,来直接将设备连接到云端。
在已经使用成熟的Linux操作系统来利用SDK以外的能力时,就使用云连接工具服务。
有基于PLCnext的系统吗? 查看已经注册的云连接工具用组件。
对于所有其他情况,采用符合您需求的物联网网关解决方案。

技术文档:设备

Proficloud.io中的设备是直连式硬件设备、网关或软件设备的数字孪生。可以通过它的UUID进行识别(https://tools.ietf.org/html/rfc4122)。每台Proficloud设备的最小功能集为支持设备-管理-服务(DMS)。这意味着设备提供设备类型和固件版本等元数据,以及交通灯等健康状况。

目前,此页面和导航条目仅对管理员可见, 不是登录 PxC_Internal 同事的事件。

技术文件: 概念

在本节中,您将找到越来越多关于Proficloud的基本概念的文章。

架构

在本节中,您将找到关于Proficloud的架构和我们侧重于相应用户视角的云连接工具SDK的信息。

设备

在本节中,您将找到关于Proficloud中的设备,以及固件远程更新的不同阶段的信息。

组织和权限

在本节中,您将找到关于Proficloud中组织和权限概念的信息。


免费注册

从这里登录