Регистрация AE в CSE с помощью ACP
Я пытаюсь реализовать стандарт oneM2M. Я посмотрел руководство по разработке приложений по адресу http://www.onem2m.org/application-developer-guide/application-registration
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 ответ
У вас есть в основном два варианта.
Во-первых, вы можете просто не указывать acpi в своем запросе. В этом случае CSE автоматически назначает один (ресурс ACP по умолчанию) новому AE. Затем вы получите acpi для этого назначения в ответе на запрос на создание.
Но, возможно, это не то, что вам нужно, потому что вы можете получить назначенный ACP, который не будет отражать фактически необходимые вам разрешения.
Второй метод заключается в том, что вы сами создаете ACP для AE. Это делается очень похоже на создание ресурса AE, только с помощью структуры ACP. CSE отвечает за проверку того, правильно ли вы указали все и в пределах допустимого диапазона разрешений. В ответ вы получите идентификатор ресурса (ri) для нового ресурса ACP, который вы затем назначите атрибуту acpi при создании ресурса AE.
При втором методе рекомендуется сначала искать ресурс ACP, поскольку он может уже существовать (либо созданный AE, как описано выше во время предыдущего запуска вашего приложения, либо даже предопределенный, например, администратор CSE), так что вы можете просто получить его, а не создавать.
Вы должны использовать структурированное имя вместо ri для доступа к известному ресурсу, например, к заранее заданному ACP. Например, вы пытаетесь получить доступ к ресурсу в CSE со структурированным именем /cse-id/cse-name/myACP
вместо идентификатора ресурса /cse-id/acp-12345
, Этот метод требует, чтобы вы создали структурированное имя, которое немного длиннее, но имеет то преимущество, что оно отражает структуру ресурсов и делает ресурсы доступными по пути через дерево ресурсов, в то время как идентификатор ресурса очень короткий, но не отражать структуру ресурса.