ما المقصود ببروتوكول MQTT؟

MQTT هو بروتوكول مراسلة قائم على المعايير، أو مجموعة من القواعد، تُستخدم للاتصال بين آلة وأخرى. عادةً ما يتعين على أجهزة الاستشعار الذكية والأجهزة القابلة للارتداء وأجهزة إنترنت الأشياء (IoT) الأخرى إرسال البيانات واستلامها عبر شبكة محدودة الموارد بعرض نطاق ترددي محدود. تستخدم أجهزة إنترنت الأشياء (IoT) هذه بروتوكول MQTT لنقل البيانات نظرًا له سهل التنفيذ ويمكنه توصيل بيانات إنترنت الأشياء (IoT) بكفاءة. يدعم بروتوكول MQTT المراسلة بين الأجهزة إلى السحابة، ومن السحابة إلى الجهاز.

ما أهمية بروتوكول MQTT؟

أصبح بروتوكول MQTT معيارًا لنقل بيانات إنترنت الأشياء (IoT) لأنه يقدّم المزايا التالية:

خفّة الوزن والفعالية

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

قابلية التوسع

يتطلب تنفيذ MQTT أقل عدد من التعليمات البرمجية التي تستهلك قدرًا قليلاً جدًا من الطاقة في العمليات. يحتوي البروتوكول أيضًا على ميزات مضمّنة لدعم الاتصال بعدد كبير من أجهزة إنترنت الأشياء (IoT). وبالتالي، يمكنك تنفيذ بروتوكول MQTT للاتصال بالملايين من هذه الأجهزة.

الموثوقية

تتصل العديد من أجهزة إنترنت الأشياء (IoT) عبر شبكات خلوية غير موثوقة ذات عرض نطاق ترددي منخفض وزمن انتقال عالٍ. يحتوي بروتوكول MQTT على ميزات مضمّنة تقلل الوقت الذي يستغرقه جهاز إنترنت الأشياء (IoT) لإعادة الاتصال بالسحابة. كما تحدد ثلاثة مستويات مختلفة لجودة الخدمة من أجل ضمان الموثوقية لحالات استخدام إنترنت الأشياء (IoT) - مرة واحدة على الأكثر (0)، ومرة واحدة على الأقل (1)، ومرة واحدة بالضبط (2).

الأمان

يسهل بروتوكول MQTT على المطورين تشفير الرسائل ومصادقة الأجهزة والمستخدمين باستخدام بروتوكولات المصادقة الحديثة، مثل OAuth، وTLS1.3، والشهادات المُدارة بواسطة العميل، والمزيد.

الدعم الجيد

تتمتع العديد من اللغات، مثل Python، بدعم واسع النطاق لتنفيذ بروتوكول MQTT. وبالتالي، يمكن للمطورين تنفيذه بسرعة بأقل قدر من التعليمات البرمجية في أي نوع من التطبيقات.

ما هو تاريخ بروتوكول MQTT؟

تم اختراع بروتوكول MQTT في عام 1999 لاستخدامه في صناعة النفط والغاز. احتاج المهندسون إلى بروتوكول يتطلب الحد الأدنى من عرض النطاق الترددي واستهلاك أقل ما يمكن من طاقة البطارية لمراقبة خطوط أنابيب النفط عبر الأقمار الصناعية. في البداية، كان البروتوكول يُعرف باسم Message Queuing Telemetry Transport بسبب سلسلة MQ لمنتج IBM التي دعمت مرحلته الأولية أولاً. في عام 2010، أصدرت شركة IBM الإصدار 3.1 من MQTT كبروتوكول مجاني ومفتوح يمكن لأي شخص تنفيذه، ثمّ تم تقديمه في عام 2013 إلى هيئة مواصفات منظمة النهوض بمعايير المعلومات الهيكلية (OASIS) بهدف صيانته. في عام 2019، أصدرت منظمة OASIS النسخة الخامسة المطورة من MQTT. لم يعد الآن MQTT اختصارًا، ولكنه يعتبر الاسم الرسمي للبروتوكول. 

ما هو المبدأ وراء بروتوكول MQTT؟

يعمل بروتوكول MQTT على مبادئ نموذج النشر/الاشتراك. في اتصالات الشبكة التقليدية، يكون التواصل مباشرًا بين العملاء والخوادم. يطلب العملاء موارد أو بيانات من الخادم، ثم يعالجها الخادم ويرسل استجابة. ومع ذلك، يستخدم بروتوكول MQTT نمط النشر/الاشتراك لفصل مرسل الرسالة (الناشر) عن مستلِم الرسالة (المشترك). بدلاً من ذلك، يتولى مكوّن ثالث، يُسمى "وسيط الرسائل"، الاتصال بين الناشرين والمشتركين. تتمثل مهمة الوسيط في فلترة جميع الرسائل الواردة من الناشرين وتوزيعها بشكل صحيح على المشتركين. يفصل الوسيط الناشرين والمشتركين على النحو التالي:

فصل المواقع الجغرافية

الناشر والمشترك لا يعلمان الموقع الجغرافي الذي تقع فيه شبكة الآخر، ولا يتبادلان المعلومات، مثل عناوين IP أو أرقام المنافذ.

فصل الوقت

الناشر والمشترك لا يعملان أو لديهما اتصال بالشبكة في الوقت نفسه.

فصل التزامن

يمكن لكل من الناشرين والمشتركين إرسال أو استلام الرسائل بدون مقاطعة الآخر. على سبيل المثال، لا داعي لأن ينتظر المشترك الناشر لإرسال رسالة.

ما هي مكونات MQTT؟

ينفذ MQTT نموذج النشر/الاشتراك من خلال تعريف العملاء والوسطاء على النحو التالي:

عميل MQTT

عميل MQTT هو أي جهاز، مثل خادم وصولاً إلى أداة تحكّم صغيرة، يشغّل مكتبة MQTT. إذا كان العميل يرسل الرسائل، فإنه يعمل كناشر. أما إن كان يتلقى الرسائل، فإنه يعمل كمتلقي. بشكل أساسي، يمكن استخدام تسمية "جهاز عميل MQTT" للإشارة إلى أي جهاز يجري اتصالاً باستخدام MQTT عبر شبكة.

وسيط MQTT

وسيط MQTT هو النظام الخلفي الذي ينسّق الرسائل بين العملاء المختلفين. تشمل مسؤوليات الوسيط استلام الرسائل وفلترتها وتحديد العملاء المشتركين في كل رسالة، وإرسال الرسائل إليهم. كما أنه مسؤول عن مهام أخرى، مثل ما يلي:

  • تفويض عملاء MQTT ومصادقتهم
  • تمرير الرسائل إلى الأنظمة الأخرى لإجراء تحليلات إضافية
  • التعامل مع الرسائل الفائتة وجلسات العميل

اتصال MQTT

يبدأ العملاء والوسطاء في التواصل باستخدام اتصال MQTT. يبدأ العملاء الاتصال عن طريق إرسال رسالة CONNECT إلى وسيط MQTT. يؤكد الوسيط أنه تم إنشاء اتصال من خلال الرد برسالة CONNACK. يتطلب كل من عميل MQTT والوسيط مكدس TCP/IP للاتصال. لا يتواصل العملاء أبدًا مع بعضهم البعض، فتكون اتصالاتهم مع الوسيط فقط.

كيف يعمل MQTT؟

في ما يلي نظرة عامة على طريقة عمل MQTT. 

  1. ينشئ عميل MQTT اتصالاً مع وسيط MQTT.
  2. بمجرد الاتصال، يمكن للعميل إما نشر الرسائل أو الاشتراك في رسائل محددة أو اتخاذ الإجراءين كليهما.
  3. عندما يتلقى وسيط MQTT رسالة، فإنه يعيد توجيهها إلى المشتركين المهتمين.

لنذكر التفاصيل كي نسمح لك بتكوين فكرة أوضح.

موضوع MQTT

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

منزلنا/الطابق الأرضي/غرفة المعيشة/الضوء

منزلنا/الطابق الأول/المطبخ/الحرارة

نشر MQTT

ينشر عملاء MQTT الرسائل التي تحتوي على الموضوع والبيانات بتنسيق بايت. يحدد العميل تنسيق البيانات، مثل البيانات النصية أو البيانات الثنائية أو ملفات بتنسيق XML أو ملفات JSON. على سبيل المثال، قد ينشر مصباح في نظام المنزل الذكي الرسالة تشغيلللموضوع غرفة المعيشة/الضوء.

اشتراك MQTT

يرسل عملاء MQTT رسالة SUBSCRIBE إلى وسيط MQTT لتلقي رسائل حول المواضيع التي تهمهم. تحتوي هذه الرسالة على معرّف فريد وقائمة بالاشتراكات. على سبيل المثال، يريد تطبيق المنزل الذكي على هاتفك عرض عدد المصابيح المضاءة في منزلك. سيتم الاشتراك في الموضوع ضوء وزيادة العداد لجميع رسائل التشغيل

ما هو MQTT عبر WSS؟

MQTT عبر WebSockets (WSS) هو تنفيذ لبروتوكول MQTT يسمح بتلقي البيانات مباشرةً في متصفح الويب. يحدد بروتوكول MQTT عميل JavaScript لإتاحة توافق WSS مع المتصفحات. في هذه الحالة، يعمل البروتوكول كالمعتاد ولكنه يضيف عناوينًا إضافية إلى رسائل MQTT لدعم بروتوكول WSS أيضًا. يمكنك التفكير في الأمر على أنه حمولة رسالة MQTT ملفوفة في مغلّف WSS.

هل MQTT آمن؟

يستخدم اتصال MQTT بروتوكول SSL لحماية البيانات الحساسة التي ترسلها أجهزة إنترنت الأشياء (IoT). يمكنك تنفيذ الهوية والمصادقة والتفويض بين العملاء والوسيط باستخدام شهادات SSL و/أو كلمات المرور عادةً ما يصادق وسيط MQTT العملاء باستخدام كلمات المرور الخاصة بهم، بالإضافة إلى معرفات العميل الفريدة التي يخصصها لكل عميل. في معظم عمليات التنفيذ، يصادق العميل الخادم باستخدام الشهادات أو عمليات بحث في أنظمة DNS. يمكنك أيضًا تنفيذ بروتوكولات التشفير باستخدام MQTT. 

هل يعتمد بروتوكول MQTT نهج RESTful؟

لا يعتمد بروتوكول MQTT نهج RESTful. نقل الحالة التمثيلية (REST) عبارة عن نهج تصميم لاتصالات الشبكة التي تستخدم نمط الطلب والاستجابة لإقامة اتصال بين مُرسلي الرسائل والمستلمين. في المقابل، يستخدم بروتوكول MQTT نموذج الاتصال المتمثل في النشر/الاشتراك في طبقة التطبيق ويتطلب اتصال TCP دائم لإرسال الرسائل بطريقة الدفع. ومع ذلك، يضيف الإصدار 5 من بروتوكول MQTT طريقة الطلب/الاستجابة الجديدة التي تعمل بطريقة مشابهة لنهج REST، بحيث يمكن للناشر إرفاق موضوع استجابة خاص، الذي يعالجه المستلم وينشئ استجابة مناسبة.

كيف تدعم AWS تنفيذ MQTT؟

AWS IoT Core هي خدمة مُدارة بالكامل تتيح لك توصيل ملايين من أجهزة إنترنت الأشياء (IoT)، وإرسال تريليونات من الرسائل إلى خدمات AWS. يمكنك:

  • يمكنك توصيل أساطيل أجهزتك وإدارتها وتوسعتها بسهولة وموثوقية بدون توفير خوادم أو إدارتها.
  • اختر بروتوكول الاتصال المفضل لك، بما في ذلك MQTT، وHTTPS، وMQTT عبر WSS، وLoRaWAN.
  • يمكنك تأمين اتصالات الأجهزة والبيانات من خلال المصادقة المتبادلة والتشفير التام بين الطرفين.
  • يمكنك فلترة بيانات الأجهزة وتحويلها والتعامل معها سريعًا بناءً على قواعد الأعمال التي تحدّدها.

ابدأ اليوم في استخدام MQTT على AWS من خلال إنشاء حساب مجاني.

الخطوات التالية لبروتوكول MQTT في AWS

التحقق من الموارد الإضافية المتعلقة بالمنتج
تعرف على المزيد حول خدمات إنترنت الأشياء 
سجل الاشتراك للحصول على حساب مجاني

تمتع بالوصول الفوري إلى الطبقة المجانية من AWS. 

تسجيل الاشتراك 
بدء الإنشاء في وحدة التحكم

ابدأ الإنشاء باستخدام AWS في وحدة إدارة تحكم AWS.

تسجيل الدخول