فهم وقت تشغيل Azure IoT Edge وبنيته

ينطبق على:yes icon IoT Edge 1.1 إصدارات أخرى:IoT Edge 1.2

ينطبق على:yes icon IoT Edge 1.2 إصدارات أخرى:IoT Edge 1.1

وقت تشغيل IoT Edge عبارة عن مجموعة من البرامج التي تحول الجهاز إلى جهاز IoT Edge. بشكل جماعي، تمكن مكونات وقت تشغيل IoT Edge أجهزة IoT Edge من تلقي التعليمات البرمجية للتشغيل على الحافة وإيصال النتائج.

وقت التشغيل الخاص بـ IoT Edge مسؤول عن الوظائف التالية على أجهزة مزودة بـ IoT Edge:

  • تثبيت وتحديث أحمال العمل على الجهاز.

  • المحافظة على قياس أمان الخاص بـAzure IoT Edge في الجهاز.

  • تأكد من تشغيل وحدات IoT Edge دائما.

  • تقارير الوحدة النمطية الخاصة بالصحة إلى السحابة للرصد عن بعد.

  • إدارة الاتصالات بين أجهزة انتقال البيانات من الخادم وأجهزة مزودة بـ IoT Edge.

  • إدارة الاتصال بين الوحدات النمطية على جهاز IoT Edge.

  • إدارة الاتصال بين جهاز IoT Edge والسحابة.

  • إدارة الاتصال بين أجهزة مزودة بـ IoT Edge.

Runtime communicates insights and module health to IoT Hub

تقع مسؤوليات وقت تشغيل IoT Edge في فئتين: الاتصالات وإدارة الوحدات. يتم تنفيذ هذين الدورين بواسطة مكونين يشكلان جزءا من وقت تشغيل IoT Edge. يقوم وكيل IoT Edge بنشر الوحدات النمطية ومراقبتها ، بينما يكون مركز IoT Edge مسؤولا عن الاتصال.

كل من وكيل IoT Edge ومركز IoT Edge هما وحدتان نمطيتان ، تماما مثل أي وحدة نمطية أخرى تعمل على جهاز IoT Edge. يشار إليها أحيانا باسم وحدات وقت التشغيل.

العامل الخاص بـ IoT Edge

يعد وكيل IoT Edge أحد وحدتين نمطيتين تشكلان وقت تشغيل Azure IoT Edge. وهي مسؤولة عن إنشاء الوحدات النمطية، وضمان استمرار تشغيلها، والإبلاغ عن حالة الوحدات النمطية مرة أخرى إلى المركز الخاص بـ IoT. تتم كتابة بيانات التكوين هذه كخاصية من الوحدة النمطية المزدوجة كعامل IoT Edge.

يبدأ خفي أمان IoT Edge عامل IoT Edge عند بدء تشغيل الجهاز. يقوم العامل باسترداد الوحدة النمطية الخاصة به من مركز IoT وتفحص بيان التوزيع. بيان التوزيع هو ملف JSON الذي يقوم بأعلان الوحدات النمطية التي تحتاج إلى بدء تشغيل.

يحتوي كل عنصر في بيان النشر على معلومات محددة حول وحدة نمطية ويتم استخدامه بواسطة وكيل IoT Edge للتحكم في دورة حياة الوحدة النمطية. لمزيد من المعلومات حول جميع الخصائص التي يستخدمها عامل IoT Edge للتحكم في الوحدات النمطية، اقرأ عن خصائص توائم وحدة IoT Edge ووحدة موزع IoT Edge.

يرسل عامل IoT Edge استجابة وقت التشغيل إلى مركز IoT. فيما يلي قائمة بالردود الممكنة:

  • 200 – حسناً
  • 400 - تكوين التوزيع تالف أو غير صالح.
  • 417 - الجهاز ليس لديه مجموعة تكوين التوزيع.
  • 412- إصدار المخطط في تكوين التوزيع غير صالح.
  • 406 - جهاز مزود بـIoT Edge غير متصل أو لا يرسل تقارير الحالة.
  • 500 - حدث خطأ في وقت تشغيل IoT Edge.

لمزيد من المعلومات حول إنشاء بيانات النشر، راجع التعرف على كيفية نشر الوحدات النمطية وإنشاء مسارات في IoT Edge.

الأمان

يلعب وكيل IoT Edge دورا حاسما في أمان جهاز IoT Edge. على سبيل المثال ، يقوم بتنفيذ إجراءات مثل التحقق من صورة الوحدة النمطية قبل البدء فيها.

لمزيد من المعلومات حول إطار عمل أمان Azure IoT Edge، اقرأ حول مدير أمان IoT Edge.

مركز IoT Edge

محور IoT Edge هو الوحدة النمطية الأخرى التي تشكل وقت تشغيل Azure IoT Edge. وهو يعمل كوكيل محلي ل IoT Hub من خلال الكشف عن نفس نقاط نهاية البروتوكول مثل IoT Hub. هذا الاتساق يعني أنه يمكن للعملاء الاتصال بوقت تشغيل IoT Edge تماما كما يفعلون مع IoT Hub.

مركز IoT Edge ليس إصدارا كاملا من IoT Hub يعمل محليا. يقوم مركز IoT Edge بتفويض بعض المهام بصمت إلى IoT Hub. على سبيل المثال، يقوم IoT Edge hub تلقائيا بتنزيل معلومات التخويل من IoT Hub عند اتصاله الأول لتمكين الجهاز من الاتصال. بعد إنشاء الاتصال الأول، يتم تخزين معلومات التفويض مؤقتا محليا بواسطة مركز IoT Edge. يتم تفويض الاتصالات المستقبلية من هذا الجهاز دون الحاجة إلى تنزيل معلومات التفويض من السحابة مرة أخرى.

الاتصالات السحابية

لتقليل عرض النطاق الترددي الذي يستخدمه حل IoT Edge الخاص بك، يعمل موزع IoT Edge على تحسين عدد الاتصالات الفعلية التي يتم إجراؤها على السحابة. يأخذ مركز IoT Edge الاتصالات المنطقية من الوحدات النمطية أو الأجهزة النهائية ويجمعها لاتصال مادي واحد بالسحابة. تعد التفاصيل الخاصة بهذه العملية شفافة لبقية الحل. يعتقد العملاء أن لديهم اتصال خاص بهم بالسحابة على الرغم من أنهم جميعا يتم إرسالهم عبر نفس الاتصال. يمكن لمركز IoT Edge إما استخدام AMQP أو بروتوكول MQTT للتواصل في المنبع مع السحابة ، بشكل مستقل عن البروتوكولات التي تستخدمها أجهزة المصب. ومع ذلك ، فإن مركز IoT Edge يدعم حاليا فقط الجمع بين الاتصالات المنطقية في اتصال مادي واحد باستخدام AMQP كبروتوكول المنبع وقدراته على الإرسال المتعدد. AMQP هو بروتوكول المنبع الافتراضي.

IoT Edge hub is a gateway between physical devices and IoT Hub

يمكن أن يحدد مركز IoT Edge ما إذا كان متصلا بـIoT Hub. إذا تم فقدان الاتصال، يقوم مركز IoT Edge بحفظ الرسائل أو التحديثات المزدوجة محليا. بمجرد إعادة التأسيس الخاص بالاتصال، فإنه يقوم بمزامنة كافة البيانات. يتم تحديد الموقع المستخدم لذاكرة التخزين المؤقت المؤقتة هذه بواسطة خاصية توأم الوحدة النمطية لمحور IoT Edge. حجم ذاكرة التخزين المؤقت ليست نقطة ارتكاز وسينمو طالما أن الجهاز لديه سعة تخزين. لمزيد من المعلومات، راجع إمكانات عدم الاتصال.

الوحدة النمطية الخاصة بالاتصال

يسهل مركز IoT Edge الاتصال بين الوحدات. استخدام مركز IoT Edge كوسيط رسائل يحافظ على وحدات نمطية مستقلة عن بعضها البعض. كل ما تحتاجه الوحدات هو فقط تحديد المدخلات التي تقوم عليها لقبول الرسائل والمخرجات التي تقوم عليها لكتابة الرسائل. يمكن لمطور الحل أن يقوم بجمع هذه المدخلات والمخرجات معا بحيث تقوم الوحدات النمطية بمعالجة البيانات بالترتيب المحدد لذلك الحل.

IoT Edge Hub facilitates module-to-module communication

لإرسال البيانات إلى مركز IoT Edge، الوحدة نمطية باستدعاء الأسلوب SendEventAsync. تحدد الوسيطة الأولى عملية الإخراج الذي سيتم إرسال الرسالة عليه. يرسل الرمز الزائف التالي رسالة على output1:

ModuleClient client = await ModuleClient.CreateFromEnvironmentAsync(transportSettings);
await client.OpenAsync();
await client.SendEventAsync("output1", message);

لاستلام الرسالة، قم بتسجيل رد اتصال يعالج الرسائل الواردة على إدخال معين. يقوم الرمز الزائف التالي بتسجيل الدالة messageProcessor لاستخدامها في معالجة كافة الرسائل المستلمة على input1:

await client.SetInputMessageHandlerAsync("input1", messageProcessor, userContext);

لمزيد من المعلومات حول فئة ModuleClient وطرق الاتصال الخاصة بها، راجع مرجع واجهة برمجة التطبيقات للغة SDK المفضلة لديك: C # أو C أو Python أو Java أو Node.js.

يكون مطور الحل مسؤولا عن تحديد القواعد التي تحدد كيفية تمرير مركز IoT Edge للرسائل بين الوحدات النمطية. يتم تعريف قواعد التحويل في السحابة ودفعها لأسفل إلى مركز IoT Edge في وحدة النمطية المزدوجة الخاصة بها. يتم استخدام نفس بناء الجملة لمسارات مركز IoT لتعريف التوجيهات بين الوحدات النمطية في Azure IoT Edge. لمزيد من المعلومات، راجع تعرف على كيفية نشر الوحدات النمطية وإنشاء مسارات في IoT Edge.

Routes between modules go through IoT Edge hub

التواصل المحلي

يسهل مركز IoT Edge الاتصال المحلي. فهو يتيح الاتصالات من جهاز إلى وحدة، ومن وحدة إلى وحدة، ومن جهاز إلى جهاز من خلال التوسط في الرسائل للحفاظ على الأجهزة والوحدات المستقلة عن بعضها البعض.

ملاحظة

ميزة وسيط MQTT في المعاينة العامة مع IoT Edge الإصدار 1.2. يجب تمكينه صراحة.

يدعم مركز IoT Edge آليتين للوساطة:

  1. ميزات توجيه الرسائل التي يدعمها IoT Hub و
  2. وسيط MQTT للأغراض العامة يلبي معيار MQTT v3.1.1

استخدام التوجيه

تستفيد آلية الوساطة الأولى من نفس ميزات التوجيه مثل IoT Hub لتحديد كيفية تمرير الرسائل بين الأجهزة أو الوحدات النمطية. تحدد الأجهزة أو الوحدات النمطية الأولى المدخلات التي يقبلون عليها الرسائل والمخرجات التي يكتبون الرسائل إليها. ثم يمكن لمطور الحلول توجيه الرسائل بين مصدر، مثل المخرجات، ووجهة، مثل المدخلات، باستخدام فلاتر محتملة.

Routes between modules go through IoT Edge hub

يمكن استخدام التوجيه بواسطة الأجهزة أو الوحدات النمطية التي تم إنشاؤها باستخدام مجموعات تطوير البرامج (SDK) الخاصة بأجهزة Azure IoT إما عبر AMQP أو بروتوكول MQTT. يتم دعم جميع بدائيات IoT Hub للمراسلة ، مثل القياس عن بعد والأساليب المباشرة و C2D والتوائم ، ولكن الاتصال عبر الموضوعات المحددة من قبل المستخدم غير مدعوم.

لمزيد من المعلومات حول المسارات، راجع تعرف على كيفية نشر الوحدات النمطية وإنشاء مسارات في IoT Edge

استخدام وسيط MQTT

تعتمد آلية السمسرة الثانية على وسيط MQTT قياسي. MQTT هو بروتوكول نقل رسائل خفيف الوزن يضمن الأداء الأمثل على الأجهزة المحدودة الموارد وهو معيار شائع للنشر والاشتراك. تشترك الأجهزة أو الوحدات النمطية في الموضوعات لتلقي الرسائل التي تنشرها الأجهزة أو الوحدات النمطية الأخرى. يقوم IoT Edge hub بتنفيذ وسيط MQTT الخاص به والذي يتبع مواصفات الإصدار 3.1.1 من MQTT.

يتيح وسيط MQTT نمطين إضافيين للاتصال مقارنة بالتوجيه: البث المحلي والاتصالات من نقطة إلى نقطة. يكون البث المحلي مفيدا عندما يحتاج جهاز أو وحدة نمطية واحدة إلى تنبيه العديد من الأجهزة أو الوحدات النمطية الأخرى محليا. يتيح الاتصال من نقطة إلى نقطة جهازين من أجهزة IoT Edge أو جهازين من أجهزة إنترنت الأشياء الاتصال محليا دون الذهاب والإياب إلى السحابة.

Publish and subscribe locally with IoT Edge hub

يمكن استخدام وسيط MQTT بواسطة الأجهزة أو الوحدات النمطية التي تم إنشاؤها إما باستخدام مجموعات تطوير البرامج الخاصة بأجهزة Azure IoT التي تتصل عبر بروتوكول MQTT أو أي عملاء MQTT للأغراض العامة. باستثناء C2D ، يتم دعم جميع بدائيات IoT Hub للرسائل ، مثل القياس عن بعد والأساليب المباشرة والتوائم. يتم دعم الموضوعات الخاصة ل IoT Hub التي يستخدمها بدائيو IoT Hub وكذلك الموضوعات التي يحددها المستخدم. يمكن أن يكون هذا الموضوع موضوعا خاصا ب IoT Hub أو موضوعا محددا من قبل المستخدم.

على عكس آلية التوجيه ، فإن ترتيب الرسائل هو أفضل جهد فقط وغير مضمون ولا يدعم الوسيط تصفية الرسائل. ومع ذلك ، فإن عدم وجود هذه الميزات يمكن وسيط MQTT من أن يكون أسرع من التوجيه.

لمزيد من المعلومات حول وسيط MQTT، راجع النشر والاشتراك مع IoT Edge

مقارنة بين آليات السمسرة

فيما يلي الميزات المتاحة مع كل آلية من آليات السمسرة:

الميزات التوجيه وسيط MQTT
القياس عن بعد D2C
القياس عن بعد المحلي
طرق مباشرة
التوام
C2D للأجهزة
Ordering
التصفية
المواضيع التي يحددها المستخدم
من جهاز إلى جهاز
البث المحلي
الأداء

الاتصال بمركز IoT Edge

يقبل مركز IoT Edge الاتصالات من عملاء الأجهزة أو الوحدات النمطية، إما عبر بروتوكول MQTT أو بروتوكول AMQP.

ملاحظة

يدعم مركز IoT Edge العملاء ممن يتصلون باستخدام MQTT أو AMQP. لا يدعم عملاء استخدام HTTP.

عندما يتصل عميل بمركز IoT Edge، يحدث ما يلي:

  1. إذا تم استخدام أمان طبقة النقل (TLS) (مستحسن)، إنشاء قناة TLS لإنشاء اتصال مشفر بين العميل ومركز IoT Edge.
  2. يتم إرسال معلومات المصادقة من العميل إلى مركز IoT Edge لتحديد هويته.
  3. يقوم مركز IoT Edge بتخويل الاتصال أو رفضه استنادا إلى سياسة التفويض الخاصة به.

الاتصالات الآمنة (TLS)

بشكل افتراضي، يقبل مركز IoT Edge فقط الاتصالات المؤمنة باستخدام أمان طبقة النقل (TLS)، على سبيل المثال الاتصالات المشفرة التي لا يمكن لجهة خارجية فك تشفيرها.

إذا اتصل عميل بالمنفذ 8883 (MQTTS) أو 5671 (AMQPS) بمركز IoT Edge، فيجب إنشاء قناة TLS. أثناء مصافحة TLS ، يرسل مركز IoT Edge سلسلة الشهادات الخاصة به التي يحتاج العميل إلى التحقق من صحتها. للتحقق من صحة سلسلة الشهادات، يجب تثبيت الشهادة الجذر لمركز IoT Edge كشهادة موثوق بها على العميل. إذا لم يتم الوثوق بالشهادة الجذر، رفض مكتبة العميل بواسطة مركز IoT Edge مع وجود خطأ في التحقق من الشهادة.

يتم وصف الخطوات التي يجب اتباعها لتثبيت شهادة الجذر هذه للوسيط على عملاء الجهاز في البوابة الشفافة وفي إعداد وثائق الجهاز النهائي . يمكن للوحدات النمطية استخدام نفس شهادة الجذر مثل مركز IoT Edge من خلال الاستفادة من واجهة برمجة تطبيقات IoT Edge الخفي.

المصادقة

يقبل IoT Edge Hub فقط الاتصالات من الأجهزة أو الوحدات النمطية التي لها هوية IoT Hub ، على سبيل المثال التي تم تسجيلها في IoT Hub ولديها إحدى طرق مصادقة العميل الثلاثة التي يدعمها IoT hub لتوفير إثبات هويتها: مصادقة المفاتيح المتماثلة ، مصادقة X.509 الموقعة ذاتيا ، المصادقة الموقعة X.509CA. يمكن التحقق من هويات IoT Hub هذه محليا بواسطة مركز IoT Edge بحيث لا يزال من الممكن إجراء الاتصالات أثناء عدم الاتصال.

ملاحظات:

  • تدعم وحدات IoT Edge حاليا مصادقة المفاتيح المتماثلة فقط.
  • لا يتم قبول عملاء MQTT الذين لديهم اسم مستخدم وكلمات مرور محلية فقط من قبل وسيط MQTT لمركز IoT Edge ، ويجب عليهم استخدام هويات IoT Hub.

التخويل

بمجرد المصادقة، يحتوي مركز IoT Edge على طريقتين لتفويض اتصالات العميل:

  • من خلال التحقق من أن العميل ينتمي إلى مجموعة العملاء الموثوق بهم المحددة في IoT Hub. يتم تحديد مجموعة العملاء الموثوق بهم عن طريق إعداد علاقات الوالدين / الطفل أو الجهاز / الوحدة النمطية في IoT Hub. عندما يتم إنشاء وحدة نمطية في IoT Edge، يتم إنشاء علاقة ثقة تلقائيا بين هذه الوحدة وجهاز IoT Edge الخاص بها. وهذا هو نموذج التفويض الوحيد الذي تدعمه آلية السمسرة في التوجيه.

  • من خلال إعداد سياسة تفويض. سياسة التخويل هذه عبارة عن مستند يسرد جميع هويات العملاء المصرح لهم التي يمكنها الوصول إلى الموارد الموجودة على مركز IoT Edge. هذا هو نموذج التفويض الأساسي المستخدم من قبل وسيط MQTT لمركز IoT Edge ، على الرغم من أن العلاقات بين الوالدين / الطفل والجهاز / الوحدة النمطية يمكن فهمها أيضا من قبل وسيط MQTT لموضوعات IoT Hub.

التكوين عن بعد

يتم التحكم في محور IoT Edge بالكامل بواسطة السحابة. يحصل على تكوينه من IoT Hub عبر توأم الوحدة النمطية الخاص به. وهو يتضمن:

  • تكوين المسارات
  • سياسات التفويض
  • تكوين جسر MQTT

بالإضافة إلى ذلك ، يمكن إجراء العديد من التكوين عن طريق إعداد متغيرات البيئة على محور IoT Edge.

القياس عن بعد لجودة وقت التشغيل

يجمع IoT Edge القياس عن بعد المجهول من وقت تشغيل المضيف ووحدات النظام لتحسين جودة المنتج. تسمى هذه المعلومات القياس عن بعد لجودة وقت التشغيل. يتم إرسال القياس عن بعد الذي تم جمعه بشكل دوري كرسائل من الجهاز إلى السحابة إلى IoT Hub من وكيل IoT Edge. لا تظهر هذه الرسائل في القياس عن بعد العادي للعميل ولا تستهلك أي حصة من الرسائل.

يقوم وكيل IoT Edge والموزع بإنشاء مقاييس يمكنك جمعها لفهم أداء الجهاز. يتم جمع مجموعة فرعية من هذه المقاييس بواسطة IoT Edge Agent كجزء من القياس عن بعد لجودة وقت التشغيل. يتم تصنيف المقاييس التي تم جمعها للقياس عن بعد لجودة وقت التشغيل باستخدام العلامة ms_telemetry. للحصول على معلومات حول جميع المقاييس المتاحة، راجع الوصول إلى المقاييس المضمنة.

تتم إزالة أي معلومات تعريف شخصية أو مؤسسية، مثل أسماء الأجهزة والوحدات، قبل تحميلها لضمان الطبيعة المجهولة للقياس عن بعد لجودة وقت التشغيل.

يقوم وكيل IoT Edge بجمع القياس عن بعد كل ساعة ويرسل رسالة واحدة إلى IoT Hub كل 24 ساعة.

إذا كنت ترغب في إلغاء الاشتراك في إرسال القياس عن بعد لوقت التشغيل من أجهزتك، فهناك طريقتان للقيام بذلك:

  • SendRuntimeQualityTelemetry تعيين متغير البيئة إلى falseل edgeAgent، أو
  • ألغ تحديد الخيار في مدخل Azure أثناء النشر.

الخطوات التالية