Мы пытаемся внедрить стандарт oneM2M, и у нас есть вопрос, касающийся процесса связи между Remote CSE и IN-CSE.Я написал то, что я понял из документации шаг за шагом ниже.Некоторые проблемы для нас не так ясны, поэтому перед выполнением какой-либо реализации я должен убедиться, что все предельно ясно.
Я собираюсь задать вопрос, прежде чем рассказать все, что мы понимаем, из документации.Тогда я собираюсь написать шаг за шагом, какое решение мы думаем.Вопрос в том, что запрос, отправленный IN-AE, предназначен для MN-CSE, которому IN-CSE следует перенаправить запрос в MN-CSE, или он должен обработать его сам.
Прежде чем что-либоиначе у нас есть две абсолютно отдельные CSE.Один из них - IN-CSE, другой - MN-CSE, как показано ниже.
IN-CSE имеет дерево ресурсов
/in-cse61
/in-cse61/csr-34
/in-cse61/ae-1234
MN-У CSE есть дерево ресурсов
/mn-cse34
/mn-cse34/csr-61
/mn-cse34/ae-123456
/mn-cse34/cnt-1
/mn-cse34/cin-01
/mn-cse34/cin-02
/mn-cse34/cin-03
/mn-cse34/cnt-2
На данный момент мы пропустили любую проблему безопасности.Допустим, IN-AE хочет установить связь с MN-CSE, как мы уже говорили выше.
1- IN-AE должен отправить запрос на обнаружение или получение в IN-CSE со словами:Мне все дочерние ресурсы Remote CSE.
2- Какая точная разница между отправкой обнаружения или отправкой запроса на получение?Мы думали, что запрос на обнаружение возвращает только URI ресурса, но запрос на получение возвращает целые данные точного ресурса.Является ли этот подход правильным?
3- После получения всех remoteCSE, теперь я знаю идентификаторы remoteCSE.Затем я могу отправить запрос на обнаружение в MN-CSE, чтобы получить в нем AE.Мы думаем, два варианта:
а.~ / in-cse61 / csr-34? fu = 1 & rty = 2
b.~ / mn-cse34? fu = 1 & rty = 2
Опция a: Если IN-AE только хочет сделать запрос на обнаружение для дерева ресурсов IN-CSE, IN-CSEследует позаботиться об этом, не перенаправляя его в MN-CSE.Поскольку IN-CSE уже знает, что / in-cse61 / csr-34 является своего рода допустимым RemoteCSE для него, но путь запроса начинается с ~ / in-cse61, то он должен обрабатываться IN-CSE.
Вариант b: Если IN-AE хочет сделать запрос на обнаружение для дерева ресурсов MN-CSE, тогда IN-CSE может понять, что это связано с RemoteCSE, просмотрев часть / mn-cse34 пути запроса, потому чтоон не начинается с resourceid IN-CSE.
Таким образом, IN-AE (например, смартфон) каким-то образом должен решить, какой CSE должен обрабатывать запрос?Есть ли что-то, что мы считаем неправильным?
--------------------- РЕДАКТИРОВАНИЕ --------------------------------------
Я проверил архитектуру приложенияРуководство разработчика TR-0025 http://www.onem2m.org/application-developer-guide/architecture
Согласно этому примеру, смартфон (IN-AE) может управлять Light # 1 (ADN-AE-1) через IN-CSE.
ПослеПроцессы регистрации и создания начального ресурса завершены, система готова обнаруживать и затем управлять индикаторами.
GET /~/mn-cse/home_gateway?fu=1&rty=3&drt=2 HTTP/1.1
Host: in.provider.com:8080
Хотя CSE-ID среднего узла и имя CSEBase среднего узла используется в URL-адресе HTTP-запроса, хост адресуетсяв IN-CSE.Это означает, что запрос на обнаружение, отправленный из IN-AE, сначала обрабатывается IN-CSE, а затем перенаправляет его в mn-cse.Однако вы сказали мне обратное, сказав: « Поиск или обнаружение обычно ограничиваются только ресурсами хост-CSE и не передаются на удаленные CSE автоматически. ».
На TR-0025 данный пример показан как общий сценарий.А также в TR-0034, фактически он обрабатывает запрос, как вы видите на диаграмме.