我们正在尝试实施onem2m规范,但我们有一些误解是什么使传感器成为AE或Container?
例如,我有一个ardunio板,我连接了10个简单的led。然后,我对两个选择感到困惑。 第一个是:我每个LED有一个AE(Ardunio)和10个容器(LED)。 另一个是我有一个AE(Ardunio),它是另外10个AE(指示灯)的父级,这些AE具有自己的容器。
那是什么使资源成为AE或Container?我应该做出什么决定?
答案 0 :(得分:4)
当您查看oneM2M设备的一般体系结构时,也许oneM2M资源结构更容易理解。您的Arduino最有可能没有托管CSE,因此它可能是连接到远程CSE的应用专用节点(ADN)。
Application 是此处的关键字:Arduino托管一个应用程序,例如,该应用程序读取和处理一些传感器数据。它实现了该设备的功能逻辑。因此,以oneM2M术语表示的该应用程序是 Application Entity (AE)。在oneM2M中,AE具有某些属性,例如应用程序ID等。它还拥有要连接到远程CSE的访问权限以及访问该远程CSE上的资源的权限。
AE还是该AE管理的实际数据和数据结构的根。可以从容器构建此结构。通常,为每个传感器及其数据使用一个容器,例如温度容器,气压容器等。也可以在内部放置容器如果您想更多地构建数据结构,则为容器。
在这些容器中管理实际的传感器数据。这些数据实体称为 ContentInstances 。通常,您仅将ContentInstances添加到容器中,而从不单独删除或更新它们。这样一来,您可以获得数据值的少量历史记录。该行为(例如,此历史记录应保留的时间)是Container的属性,可以单独设置。容器提供两个特殊的数据点,分别是 latest (la)和 oldest (ol),可方便地分别访问容器中最新或最旧的存储值。 / p>
请注意,一台设备可能托管多个自动曝光。 AE是一个抽象概念。您的Arduino应用程序可能实际上实现了两种AE:一种用于存储传感器数据,另一种用于从CSE读取数据,例如在Arduino上设置操作参数。
还请注意,如果要表示实际的硬件设备,则有一个 Node 资源(node是oneM2M中已连接设备的术语,如“ ADN”中的“ N” ”)。在这里,您可以创建代表设备的子结构,获取有关固件,电池状态,网络信息等的信息,以及有关设备上托管的AE的信息。节点作为AE位于CSE的根部。
我希望这可以帮助您为应用程序构建资源树。
更新
以下图形显示了该资源树。
CSEBase ─┬─ AE ─┬─ Container ─┬─ ContentInstance ◀═══ oldest
│ │ │
│ │ ├─ ContentInstance
│ │ │
│ │ ├── ...
│ │ │
│ │ └─ ContentInstance ◀═══ latest
│ │
│ └─ Container ─┬─ Container ─┬─ ContentInstance
│ │ │
│ │ └─ ...
│ │
│ └─ Container ─┬─ ContentInstance
│ │
│ └─ ...
│
├─ AE ─── ...
│
└─ Node ─── ...