什么使传感器成为 AE 或容器?
What makes a sensor an AE or a Container?
我们正在尝试实施 onem2m 规范,但我们有一些误解 什么使传感器成为 AE 或容器?
例如,我有一个ardunio板,我连接了10个简单的led。然后我对两个选项感到困惑。 第一个是 我有一个 AE (Ardunio) 和每个 LED 的 10 个容器 (LED)。 另一个是 我有一个 AE (Ardunio),它是另外 10 个 AE (leds) 的父级,这些 AE 有自己的容器。
那么什么使资源成为 AE 或容器?我应该寻找什么来做出这个决定?
当您查看oneM2M设备的一般架构时,也许oneM2M资源结构更容易理解。您的 Arduino 很可能没有托管 CSE,因此它可能是连接到远程 CSE 的 Application Dedicated Node (ADN)。
Application 是此处的关键字:您的 Arduino 托管一个应用程序,例如,读取和处理一些传感器数据。它实现了该设备的功能逻辑。因此,在 oneM2M 术语中,该应用程序是一个 应用程序实体 (AE)。在 oneM2M 中,AE 具有某些属性,例如应用程序 ID 等。它还拥有连接到远程 CSE 和访问该远程 CSE 上的资源的访问权限。
AE 也是该 AE 管理的实际数据和数据结构的根。此结构可以从 Containers 构建。为每个传感器及其数据配备一个容器是一种常见的方法,例如 温度容器 、 气压容器 等。它是如果您想更多地构建数据,也可以在容器中包含容器。
实际的传感器数据在这些容器中进行管理。这些数据实体称为 ContentInstances。您通常只将 ContentInstances 添加到容器中,但绝不会单独删除或更新它们。通过这种方式,您可以获得数据值的一些小历史记录。这个行为,例如,这个历史应该得到多长时间,是一个容器的 属性 并且可以单独设置。 Container 提供了两个特殊的数据点,latest (la) 和 oldest (ol),可以方便地访问最新或最旧的存储值分别是一个Container。
请注意,一台设备也可能承载多个 AE。 AE是一个抽象概念。您的 Arduino 应用程序实际上可能实现了两个 AE:一个用于存储传感器数据,另一个用于从 CSE 读取数据,例如在 Arduino 上设置操作参数。
另请注意,如果您想表示实际的硬件设备(节点是 oneM2M 中连接设备的术语,如 "N" 在上面解释的 "ADN" 中)。在这里,您可以创建一个代表设备的子结构,获取有关固件、电池状态、网络信息等的信息,以及有关设备上托管的 AE 的信息。节点作为 AE,位于 CSE 的根部。
希望这对您构建应用程序的资源树有所帮助。
更新
下图显示了此资源树。
CSEBase ─┬─ AE ─┬─ Container ─┬─ ContentInstance ◀═══ oldest
│ │ │
│ │ ├─ ContentInstance
│ │ │
│ │ ├── ...
│ │ │
│ │ └─ ContentInstance ◀═══ latest
│ │
│ └─ Container ─┬─ Container ─┬─ ContentInstance
│ │ │
│ │ └─ ...
│ │
│ └─ Container ─┬─ ContentInstance
│ │
│ └─ ...
│
├─ AE ─── ...
│
└─ Node ─── ...
我们正在尝试实施 onem2m 规范,但我们有一些误解 什么使传感器成为 AE 或容器?
例如,我有一个ardunio板,我连接了10个简单的led。然后我对两个选项感到困惑。 第一个是 我有一个 AE (Ardunio) 和每个 LED 的 10 个容器 (LED)。 另一个是 我有一个 AE (Ardunio),它是另外 10 个 AE (leds) 的父级,这些 AE 有自己的容器。
那么什么使资源成为 AE 或容器?我应该寻找什么来做出这个决定?
当您查看oneM2M设备的一般架构时,也许oneM2M资源结构更容易理解。您的 Arduino 很可能没有托管 CSE,因此它可能是连接到远程 CSE 的 Application Dedicated Node (ADN)。
Application 是此处的关键字:您的 Arduino 托管一个应用程序,例如,读取和处理一些传感器数据。它实现了该设备的功能逻辑。因此,在 oneM2M 术语中,该应用程序是一个 应用程序实体 (AE)。在 oneM2M 中,AE 具有某些属性,例如应用程序 ID 等。它还拥有连接到远程 CSE 和访问该远程 CSE 上的资源的访问权限。
AE 也是该 AE 管理的实际数据和数据结构的根。此结构可以从 Containers 构建。为每个传感器及其数据配备一个容器是一种常见的方法,例如 温度容器 、 气压容器 等。它是如果您想更多地构建数据,也可以在容器中包含容器。
实际的传感器数据在这些容器中进行管理。这些数据实体称为 ContentInstances。您通常只将 ContentInstances 添加到容器中,但绝不会单独删除或更新它们。通过这种方式,您可以获得数据值的一些小历史记录。这个行为,例如,这个历史应该得到多长时间,是一个容器的 属性 并且可以单独设置。 Container 提供了两个特殊的数据点,latest (la) 和 oldest (ol),可以方便地访问最新或最旧的存储值分别是一个Container。
请注意,一台设备也可能承载多个 AE。 AE是一个抽象概念。您的 Arduino 应用程序实际上可能实现了两个 AE:一个用于存储传感器数据,另一个用于从 CSE 读取数据,例如在 Arduino 上设置操作参数。
另请注意,如果您想表示实际的硬件设备(节点是 oneM2M 中连接设备的术语,如 "N" 在上面解释的 "ADN" 中)。在这里,您可以创建一个代表设备的子结构,获取有关固件、电池状态、网络信息等的信息,以及有关设备上托管的 AE 的信息。节点作为 AE,位于 CSE 的根部。
希望这对您构建应用程序的资源树有所帮助。
更新
下图显示了此资源树。
CSEBase ─┬─ AE ─┬─ Container ─┬─ ContentInstance ◀═══ oldest
│ │ │
│ │ ├─ ContentInstance
│ │ │
│ │ ├── ...
│ │ │
│ │ └─ ContentInstance ◀═══ latest
│ │
│ └─ Container ─┬─ Container ─┬─ ContentInstance
│ │ │
│ │ └─ ...
│ │
│ └─ Container ─┬─ ContentInstance
│ │
│ └─ ...
│
├─ AE ─── ...
│
└─ Node ─── ...