使用ACP将AE注册到CSE

时间:2018-03-28 07:50:34

标签: onem2m

我正在尝试实施oneM2M标准。我查看了http://www.onem2m.org/application-developer-guide/application-registration

上的应用程序开发人员指南

enter image description here

ADN-AE-1向MN-CSE发送注册请求但请求有效负载包含ACPI,我不明白ADN-AE-1如何知道ACPI?

POST /home_gateway?rcn=0 HTTP/1.1
Host: mn.provider.com:8080
X-M2M-Origin: C
Content-Type: application/vnd.onem2m-res+json; ty=2
X-M2M-RI: mncse-92345

{ "m2m:ae": {
    "rn": "light_ae1",
    "api": "A01.com.company.lightApp01",
    "rr": "true",
    "poa": ["http://192.168.0.10:9090"],
    "acpi": ["/mn-cse/acp-805496226"]
  }
}

1 个答案:

答案 0 :(得分:2)

你基本上有两种选择。

首先,您可以在请求中省略 acpi 。在这种情况下,CSE自动为新AE分配一个(默认ACP资源)。然后,您将在创建请求的答案中获取该分配的 acpi

但这可能不是你想要的,因为你最终可能会得到一个不能反映你所需的实际权限的分配ACP。

第二种方法是您自己为AE创建ACP。这与使用ACP结构创建AE资源非常相似。 CSE负责检查您是否在允许的权限范围内正确指定了所有内容。在答案中,您将获得新ACP资源的资源标识符( ri ),然后在创建AE资源时将其分配给 acpi 属性。

使用第二种方法,最好首先查找ACP资源,因为它可能已经存在(如上所述,在上一次运行应用程序期间由AE创建,或者甚至是预先定义的,例如,CSE管理员),所以你可以检索它而不是创建它。

您应该使用结构化名称而不是 ri 来访问已知资源,例如:预定义的ACP。例如,您将尝试使用结构化名称/cse-id/cse-name/myACP而不是资源标识符/cse-id/acp-12345来访问CSE上的资源。此方法要求您构造结构化名称,该名称稍长一些,但其优点是它反映了资源结构并使资源可通过资源树访问资源,而资源标识符非常短,但不是反映资源结构。