Azure IoT Hub โต้ตอบกับอุปกรณ์สมองกลฝังตัว / IoT อย่างไร


13

ฉันกำลังทำงานบนแพลตฟอร์ม Azure IoT และฉันเข้าใจว่าอุปกรณ์ส่งข้อมูลไปยังฮับ IoT ได้อย่างไร (ถ้าฉันไม่ผิดมันเป็นเพียงบริการเว็บหรืออะไรทำนองนั้น)

แต่ฉันสงสัยว่าฮับ IoT ส่งข้อมูล / คำสั่ง / อินพุตไปยังอุปกรณ์อย่างไรเนื่องจากเราไม่ได้ทำงานบนฮับ IoT สำหรับการสื่อสารของอุปกรณ์ (เราไม่มีความต้องการใด ๆ ในการส่งข้อมูลไปยังอุปกรณ์) ฮับ ​​IoT สามารถโต้ตอบกับอุปกรณ์โดยตรงได้หรือไม่ (การใช้รหัสอุปกรณ์ที่ไม่ซ้ำกันหรือใช้เอกลักษณ์เฉพาะเช่น IP, ที่อยู่ Mac และอื่น ๆ )

ที่ไหนสักแห่งฉันได้อ่านว่าอุปกรณ์ต่าง ๆ ร้องขอไปยังฮับ IoT หากฮับ IoT มีอินพุตสำหรับพวกเขาและจากนั้นฮับ IoT จะส่งข้อมูล / คำสั่ง / อินพุตไปยังอุปกรณ์ตามการตอบกลับ มันเป็นเรื่องจริงเหรอ? ถ้าไม่เช่นนั้นโปรดอธิบาย

คำตอบ:


14

รูปแบบที่อุปกรณ์เชื่อมต่อ IoT Hub ใช้คือจะไม่ยอมรับการเชื่อมต่อขาเข้า อุปกรณ์ IoT Hub ไม่เคยทำหน้าที่เป็น 'เซิร์ฟเวอร์' และนี่เป็นส่วนสำคัญของรูปแบบความปลอดภัยใน Azure IoT รูปแบบที่ชัดเจนเกี่ยวกับเรื่องนี้ถูกห่อหุ้มในคลีเมน Vasters' 'บริการช่วยการสื่อสาร'

ดังนั้นอุปกรณ์มักจะ 'ทำการสำรวจ' บริการภายนอกเพื่อส่งข้อมูลหรือรับคำสั่ง API ทำให้ดูเหมือนว่าข้อมูลกำลังถูกส่งไปยังอุปกรณ์ แต่เป็นอุปกรณ์ที่ทำการเชื่อมต่อขาออกเสมอ

ศูนย์กลาง IoT ทำได้สองวิธี:

  1. /devices/{deviceId}/messages/deviceboundโดยการส่งข้อมูลไปยังอุปกรณ์ปลายทาง นี่คือจุดสิ้นสุดการส่งข้อความ AMQP ซึ่งคล้ายกับการสมัครสมาชิกคิวหรือหัวข้อ อุปกรณ์เมื่ออ่านคำสั่งจำเป็นต้องตอบรับหากจำเป็นซึ่งเป็นส่วนหนึ่งของโปรโตคอล AMQP พื้นฐาน ใช้งานได้กับ MQTT และ https เป็นทางเลือกที่ถูกต้อง API จะสรุปทั้งหมดนี้ให้คุณ มีแนวคิดเพิ่มเติมเช่น 'เมธอดโดยตรง' ซึ่งเป็น wrapper API ที่อยู่รอบ ๆ โปรโตคอลข้อความพื้นฐานเดียวกัน
  2. โดยการใช้อุปกรณ์ฝั่งเซิร์ฟเวอร์คู่ซึ่งเป็นวิธีการเก็บคุณสมบัติในทางตรรกะระหว่างอุปกรณ์และเซิร์ฟเวอร์ คุณตั้งค่าคุณสมบัติบนอุปกรณ์คู่และเมื่ออุปกรณ์ซิงค์คุณสมบัตินั้นจะซิงค์กับอุปกรณ์ นี่คือข้อความน้อยกว่าและสร้างขึ้นบนโปรโตคอลการจัดการอุปกรณ์ LWM2M

จำนวนมาก 'การสำรวจ' การเชื่อมต่อการแบ่งปันการเชื่อมต่อการรับ ฯลฯ ควรได้รับการดูแลเป็นส่วนหนึ่งของโปรโตคอล AMQP (หรือ MQTT) ซึ่งจะรวมอยู่ใน IoT Hub SDK ดังนั้นข้างต้นจะง่ายขึ้นมาก แต่เพื่อย้ำอีกครั้ง IoT Hub ไม่สามารถทำได้และจะไม่ลองส่งข้อมูลไปยังที่อยู่ IP / พอร์ตบนอุปกรณ์ของคุณ


ขอบคุณ @Simon ตอนนี้ฉันชัดเจนเกี่ยวกับเรื่องนี้อุปกรณ์รับผิดชอบในการโทร IoT ฮับสำหรับการส่งหรือรับข้อมูลเท่านั้น คุณพูดถึง "Azure IoT" ในคำตอบของคุณดังนั้นเพียงแค่ต้องการยืนยันว่าแอปพลิเคชันคำตอบของคุณบนแพลตฟอร์ม IoT ทั้งหมดหรือไม่ หรือ Azure IoT เท่านั้น
Shri

@ShrikantBhusalwad คำตอบไม่สามารถใช้ได้กับทุกแพลตฟอร์มเพราะหลายคนยังไม่ได้รับการพัฒนา นี่เป็นรูปแบบทั่วไปซึ่งดีสำหรับการรักษาความปลอดภัย แต่รุ่นอื่น ๆ อาจได้รับการพิสูจน์ - โดยเฉพาะในสภาพแวดล้อมใหม่
Sean Houlihane

2
ฉันไม่คุ้นเคยกับทุกแพลตฟอร์ม แต่แพลตฟอร์มคลาวด์ส่วนใหญ่จะคล้ายกัน AWS ใช้ MQTT ซึ่งส่วนใหญ่เหมือนกัน ตามที่ @sean ตั้งข้อสังเกตมันไม่สามารถใช้ได้กับทุกแพลตฟอร์ม แต่มีเพียงไม่กี่แพลตฟอร์มคลาวด์ที่จะทำการรักษาความปลอดภัยที่เสี่ยงภัยอยู่เบื้องหน้า วิธีการที่ใช้อุปกรณ์รุ่นเซิร์ฟเวอร์จะเป็นมรดกหรือมีความเข้มงวดด้านความปลอดภัยมากขึ้น (เมื่อรูปแบบขอบหรือตาข่ายพัฒนาขึ้น) Azure IoT มีสถาปัตยกรรมรองรับฟิลด์และเกตเวย์ของคลาวด์เพื่อแก้ไขปัญหาเกี่ยวกับอุปกรณ์ดั้งเดิมหรืออุปกรณ์ที่มีขอบ
Simon Munro

กฎ MQTT Hub ของ Azure IoT นั้นมีการสะกดที่docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support
การสนับสนุนทางการเงิน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.