3

OneM2M 将设备管理分为两种不同的方法。

1-服务层上的设备管理

2-使用外部管理技术的设备管理

我想了解如何使用每种方法进行固件更新。但是,我只找到非常基本的示例,例如获取内存资源对象作为设备管理的示例。但是使用 <mgmtCmd> 和 <execInstance> 的用例是什么?有什么具体的例子可以分享吗?

我知道节点是实际的硬件设备,管理对象是代表管理功能和实体的资源。但我不明白 <mgmtCmd> 和 <mgmtObj> 之间的相关性。

假设我有一个设备(AE & Node)。它有一个固件信息,我将其作为 <mgmtObj> 保存在节点本身上。它还具有更新固件的 <mgmtCmd>。(我假设 MgmtCmd 是由 AE 创建的。我也不确定谁应该创建 <mgmtCmd>?我猜是相关的 AE。)

我应该如何通过选择上面描述的每种方法来运行 <mgmtCmd> ?我应该使用 TR-069 或 OMA-DM 或 LWM2M DM 之类的外部管理服务吗?或者,oneM2M 服务层上的设备管理是否足以做到这一点?

OneM2M 说 <execInstance> 资源是 <mgmtCmd> 的一个实例。如果我更新 <gmtCmd> 的execEnable属性,那么与该 <mgmtCmd> 相关的应该创建一个 <execInstance> 作为子资源。然后应该对该 <execInstance. 我对那部分也有一些困惑。更新 <mgmtCmd> 的 <execInstance> 属性是什么意思?我应该怎么做?如果我更新一次,如果我多次运行相同的命令,如何使用相同的值更新相同的属性。

如你所见,我真的很困惑。您能否简要解释一下并举一个明显的示例如何在 OneM2M 上进行设备管理(例如固件更新)?

4

1 回答 1

3

我同意,oneM2M 的管理抽象部分可能很难理解。我想最重要的点可以在 TS-0001 的图“6.2.4.1.1-1:设备管理架构”和该章的随附文本中看到:

  • 要管理的设备是一个节点(ASN、ADN 或 MN)。
  • 设备管理功能在 CSE 中实现。
  • 设备管理的“业务”部分(例如哪些设备应该获得更新)是触发例如更新的 AE。此 AE 还可能具有设备管理系统的角色,因此还可以在设备的启动阶段为该设备创建所有必要的 <node>、<mgmtObj> 专业化等资源。
  • 设备管理功能可以通过一种 M2M 方式实现,或利用底层管理协议,例如 TR-0069、OMA DM 等。与这些协议的绑定和映射在单独的规范中定义(例如 TS-0005 或 TS- 0006)。
  • 也可以管理非 oneM2M 设备,但为此在连接节点上需要一个管理代理,该管理代理充当管理代理来执行(本地)管理以及将这些设备映射到 oneM2M <node> 的.

对于第二部分(AE 如何执行管理命令):如前所述,<node> 资源和所有可用的管理功能(作为 <mgmtObj> 专业化)是在设备发现阶段的启动阶段由以下人员创建的管理 AE。

要触发管理命令(例如启动固件更新),请执行以下操作:

  • AE 更新相应的<mgmtCmd>,但仅更新execEnable属性。
  • 然后,CSE 在内部为该 <mgmtCmd> 创建一个新的 <execInstance> 资源,并返回(!)更新后的 <mgmtCmd>。实际上,资源中的execEnable属性并没有真正改变,它只会触发 <execInstance> 的创建。
  • 返回的 <execInstance> 包含有关管理资源的所有必要信息,并充当 AE 实际管理的“代理”。

为什么这么复杂?远程管理不是一个直接的过程。设备可能很忙甚至关闭,操作可能需要一些时间等。为了将(可能是时间和资源消耗的)责任和工作从 CSE 转移到 AE,<execInstance> 资源有助于解耦这个过程从 CSE 的实际管理部分。在 <execInstance> 资源中可以看到很多程序状态信息、能力和约束。另一个优点是多个 AE 可以以托管和控制的方式访问同一个 <mgmtCmd>。

我希望这回答了你的问题。

于 2019-04-10T21:27:05.910 回答