Azure IoT Hub tương tác với các thiết bị nhúng / IoT như thế nào?


13

Tôi đang làm việc trên nền tảng Azure IoT và tôi hiểu cách các thiết bị gửi dữ liệu đến trung tâm IoT (nếu tôi không sai, đó chỉ là cuộc gọi dịch vụ web hoặc một cái gì đó tương tự).

Nhưng tôi tự hỏi làm thế nào trung tâm IoT gửi Dữ liệu / Lệnh / Đầu vào cho các thiết bị, bởi vì chúng tôi không làm việc trên trung tâm IoT để liên lạc với Thiết bị (chúng tôi không có bất kỳ yêu cầu nào để đẩy dữ liệu đến thiết bị). Trung tâm IoT có thể tương tác trực tiếp với các thiết bị không? (Sử dụng Id duy nhất của thiết bị hoặc sử dụng bất kỳ danh tính duy nhất nào như IP, địa chỉ Mac, v.v.).

Ở đâu đó tôi đã đọc rằng các thiết bị tiếp tục yêu cầu trung tâm IoT nếu trung tâm IoT có bất kỳ đầu vào nào cho chúng và trung tâm IoT sau đó gửi Dữ liệu / Lệnh / Đầu vào cho các thiết bị để phản hồi. Điều đó có đúng không? Nếu không, xin vui lòng giải thích.

Câu trả lời:


14

Mô hình mà các thiết bị được kết nối IoT Hub sử dụng là chúng sẽ không bao giờ chấp nhận các kết nối đến. Các thiết bị IoT Hub không bao giờ hoạt động như một 'máy chủ' và đây là một phần quan trọng của mô hình bảo mật trong Azure IoT. Mô hình dứt khoát về điều này được gói gọn trong 'Truyền thông hỗ trợ dịch vụ' của Clemens Vasters .

Do đó, các thiết bị luôn 'bỏ phiếu' một dịch vụ bên ngoài để gửi dữ liệu hoặc nhận lệnh. Các API làm cho nó trông giống như dữ liệu đang được gửi đến một thiết bị, nhưng nó luôn là thiết bị tạo kết nối đi.

Trung tâm IoT thực hiện điều này theo hai cách:

  1. Bằng cách gửi dữ liệu đến điểm cuối của thiết bị /devices/{deviceId}/messages/devicebound. Đây là điểm cuối nhắn tin AMQP, tương tự như đăng ký hàng đợi hoặc chủ đề. Thiết bị, khi đọc lệnh, cần xác nhận đã nhận nếu cần, là một phần của giao thức AMQP cơ bản. Điều này hoạt động tương tự với MQTT và https là một dự phòng hợp lệ. API kết thúc tất cả những điều này cho bạn. Có các khái niệm bổ sung, chẳng hạn như 'phương thức trực tiếp', là một trình bao bọc API xung quanh về cơ bản cùng một giao thức thông báo cơ bản
  2. Bằng cách sử dụng song sinh thiết bị phía máy chủ, đây là cách để giữ các thuộc tính đồng bộ giữa thiết bị và máy chủ. Bạn đặt một thuộc tính trên thiết bị sinh đôi và khi thiết bị đồng bộ hóa thuộc tính đó sẽ được đồng bộ hóa với thiết bị. Điều này ít dựa trên thông điệp và được xây dựng dựa trên giao thức quản lý thiết bị LWM2M.

Rất nhiều 'bỏ phiếu', kết nối, chia sẻ kết nối, biên lai, v.v. nên được coi là một phần của giao thức AMQP (hoặc MQTT), lần lượt được gói trong SDK Hub của IoT. Vì vậy, cách trên rất đơn giản, nhưng để nhắc lại, IoT Hub không thể và sẽ không (bao giờ) thử và gửi dữ liệu đến địa chỉ IP / cổng trên thiết bị của bạn.


Cảm ơn @Simon, Bây giờ tôi đã rõ về điều đó, các thiết bị chỉ chịu trách nhiệm gọi cho trung tâm IoT để gửi hoặc nhận dữ liệu. Bạn đã đề cập đến "Azure IoT" trong câu trả lời của mình, vì vậy bạn chỉ muốn xác nhận rằng, ứng dụng trả lời của bạn trên tất cả các nền tảng IoT? hoặc chỉ dành cho Azure IoT.
Shri

@ShrikantBhusalwad Câu trả lời không thể áp dụng cho tất cả các nền tảng, vì nhiều nền tảng chưa được phát triển. Đây là một mô hình phổ biến , nó tốt cho bảo mật, nhưng các mô hình khác có thể hợp lý - đặc biệt là trong một môi trường mới.
Sean Houlihane

2
Tôi không quen thuộc với tất cả các nền tảng, nhưng hầu hết các nền tảng đám mây sẽ tương tự nhau. AWS sử dụng MQTT, phần lớn giống nhau. Như @sean quan sát, nó không thể áp dụng cho tất cả các nền tảng, nhưng rất ít nền tảng đám mây sẽ thực hiện các hoạt động bảo mật rủi ro ở phía trước. Các phương thức sử dụng các mô hình thiết bị như máy chủ sẽ là di sản hoặc có tính bảo mật cao hơn nhiều (khi các mẫu cạnh hoặc lưới phát triển). Kiến trúc Azure IoT hỗ trợ kiến ​​trúc trường và cổng đám mây để giải quyết các vấn đề với các thiết bị dựa trên di sản hoặc cạnh
Simon Munro

Các quy tắc MQTT của Azure IoT Hub được đánh vần tại docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt- support
Hỗ trợ Gambit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.