onem2m - 控制 oneM2M 中的灯组
问题描述
如果 IN-AE 使用 ADN-AE1 和 ADN-AE2 创建一组灯光,只使用一个请求来控制它们会怎样。该图显示,它使用一个请求来控制它们,但是当我单击请求示例时,它会一一创建 <contentInstances>。是否有任何示例可以仅通过一个请求来控制一组资源,或者这不在 oneM2M 的范围内?
多灯控制的调用流程如下图所示,顺序如下:
当用户在她/他的智能手机上更新一组灯光状态时,IN-AE 会创建一个新的 contentInstance,以托管在 MN-CSE 上的一组 Light ADN-AE 容器资源为目标。此处显示的请求
对于每个成功创建的 contentInstances,MN-CSE 都会向相应的 Light ADN-AE 发送通知。
---------------------- --------- 已编辑 ------------------ -------------
解决方案
<group> 资源捆绑并管理许多资源(相同或混合资源类型),在您的示例中,两个 <container> 在 ADN-AE1 和 ADN-AE2 下。
除了它的其他属性之外,<group> 还有一个称为 <fanOutPoint> 的虚拟资源。这个虚拟资源在内部将它接收到的对 <group> 的所有合适资源的每个请求相乘,无论是 CREATE、READ、UPDATE 还是 DELETE。
在该示例中,<container> 在它们被组织成一个组之前就存在,并且可以独立访问和控制。<group> 资源现在将它们捆绑在一起,并使它们作为单个实体可用于应用程序。当此 <group> 收到对 <contentInstance> 的 CREATE 请求时,该组会自动为其所有资源创建一个新的 <contentInstance> 资源。但是,对于 ADN-AE,<contentInstance> 的创建位置和创建方式并不重要。
有趣的是,这将 IN-AE 应用程序与基础设施的实际部署和编排分离。想象一下,一个 <group> 捆绑了一个家中的所有灯。这个 <group> 由 home manager AE 管理。现在,另一个 AE,用于在居民离开时管理家庭,不需要了解家庭中的实际设备。它只需要向 <group> 资源发送一个请求即可关闭所有灯。
更新
检查 oneM2M 的“TS-0001 - 功能架构”,<group> 的“9.6.13 - 资源类型组”部分和 <fanOutPoint> 的“9.6.14 - 资源类型 fanOutPoint”部分,以了解此行为的规范。
推荐阅读
- if-statement - 如果我的列有文本和数字,如何给出真假条件
- node.js - 尝试使用 npm start
- c++ - 以更易于访问的格式存储超像素以进行计算
- excel - 我试图找到一个空格并在 VBA 中插入一个字符串
- android - 如何使用 Job Scheduler 进行每周更新
- docker - 我有一个 Python 项目,当我更新并提交代码并尝试重建项目时,代码没有改变
- python - 使用数组作为 ruby 哈希中的键来提高性能
- python - 如何使用 scipy.optimize.fsolve 避免运行时错误
- python - 如何在任何输入python中找到最长顺序序列的集合
- javascript - 如何在 JavaScript 中按值对对象进行排序?