اقرأ في هذا المقال
- ما هو بروتوكول MQTT
- أساسيات بروتوكول MQTT
- أنواع رسائل بروتوكول MQTT
- حقول رسائل بروتوكول MQTT
- ميزات بروتوكول MQTT
- موضوعات بروتوكول MQTT
تم اختراع وتطوير “MQTT” من قبل شركة “IBM” في أواخر التسعينيات، وكان تطبيقه الأصلي هو ربط أجهزة الاستشعار على خطوط أنابيب النفط بالأقمار الصناعية، كما أنّه بروتوكول مراسلة يدعم الاتصال غير المتزامن بين الأطراف، ويعمل بروتوكول المراسلة غير المتزامن على إلغاء ارتباط مرسل الرسالة والمتلقي في كل من المكان والزمان وبالتالي فهو قابل للتطوير في بيئات الشبكة غير الموثوق بها.
ما هو بروتوكول MQTT
بروتوكول “MQTT”: هو بروتكول نقل القياس عن بعد لخدمة أي وضع الرسائل في قائمة انتظار، كما إنّه بروتوكول نقل رسائل خفيف الوزن للغاية وقابل للنشر وهذا البروتوكول مفيد للاتصال بالموقع البعيد، حيث يكون النطاق الترددي ممتازاً وهذه الميزات تجعله مفيداً في مواقف متعددة بما في ذلك بيئة مستقرة مثل آلة الاتصال بآلة والإنترنت.
تم إنشاء بروتوكول “MQTT” لجمع البيانات من الكثير من الأجهزة ثم إرسال تلك البيانات إلى البنيات الأساسية لتكنولوجيا المعلومات، حيث إنّه خفيف الوزن ومثالي للمراقبة عن بُعد ولا سيما في اتصالات “M2M” التي تتطلب حجم رمز صغير أو نطاق ترددي محدود للشبكة.
- “MQTT” هي اختصار لـ “MQ Telemetry Transport”.
- “M2M” هي اختصار لـ “Machine-to-machine”.
- “IBM” هي اختصار لـ ” International Business Machines”.
أساسيات بروتوكول MQTT
يُعد “MQTT” بإنّه معيار اتصال لأجهزة إنترنت الأشياء، وهذا البروتوكول هو معيار مفتوح ممّا يعني أنّه يمكن لأي شخص الوصول إليه وتنفيذه في تطبيق متصل بالشبكة، ونظام “MQTT” ليس حزمة برامج ولكن يمكن استخدامه من قبل مطوري البرامج الجديدة كمعيار لإرسال الرسائل إلى أجهزة إنترنت الأشياء واستقبال الردود مرة أخرى، وهذا يفتح إمكانية كتابة أنظمة تعليمات تحكم جديدة وأيضاً إنشاء أدوات مراقبة أجهزة إنترنت الأشياء.
تم إنشاء نظام “MQTT” لأول مرة في عام 1999م لذلك فهو موجود منذ أكثر من عقدين، وتمت كتابته كمعيار للتواصل مع معدات خطوط أنابيب النفط، وكنظام اتصالات صناعية تمت كتابة “MQTT” في إطار عمل التحكم الإشرافي واكتساب البيانات “SCADA”، كما تم تصميم بنية “SCADA” للتواصل مع معدات أرض المتجر في المصانع وأجهزة الاستشعار وأجهزة التحكم في التحكم في العملية.
كانت الأنظمة الصناعية في طليعة إنترنت الأشياء، وهذه هي الآلات والأجهزة التي تحتوي على أجهزة كمبيوتر دون أن يكون الكمبيوتر هو “الشيء”، وأصبحت الرقائق المدمجة الآن جزءاً لا يتجزأ من أشياء أكبر يستخدمها المستهلكون مثل السيارات، وإنّها جزء من مكونات الأشياء الأكبر لذلك هناك أشياء أكبر تتكون من مجموعة من الأشياء الصغيرة المحوسبة.
تزيل الأجهزة “الذكية” الحاجة إلى إرفاق واجهة لفترات قصيرة من الصيانة عن طريق توصيل تلك الأنظمة المضمنة بشبكة ممّا يسمح بالتحكم عن بعد، ومنذ ظهور “MQTT” لأول مرة أصبحت الإنترنت وسيلة اتصال أرخص بكثير ومتاحة على نطاق واسع.
تعني الفائدة التي يجلبها الإنترنت إلى التطبيقات الصناعية أنّ مكاتب التصميم عن بُعد وأقسام الإدارة يمكنها الاتصال مباشرة بأجهزة المتجر من مكان بعيد، ويمكن الآن تحديث الأنظمة المضمنة في المنتجات الاستهلاكية وإدارتها بكميات كبيرة بواسطة المنتج، ويمكن مراقبة الأجهزة الذكية في جميع أنحاء العالم وتحديثها تلقائيًا من مكتب مركزي واحد.
يؤدي الجمع بين الأنظمة المضمنة والإنترنت إلى خفض تكاليف الإنتاج وتمكين المنتجين من تقديم ضمانات أداء أقوى وأطول ممّا يؤدي إلى تحسين الموثوقية والمبيعات، ويتطلب الافتراض بأنّه يمكن الاتصال بملايين الأجهزة معيار اتصال وكانت “MQTT” بالفعل في متناول اليد لتقديم تلك الخدمة.
يُعتبر النقل عن بُعد لخدمة “وضع الرسائل في قائمة انتظار” تسمية خاطئة إلى حد ما ولا يحدد البروتوكول طريقة لنقل الاتصالات ولا يقوم بتنفيذ قائمة الانتظار، ويفترض النظام أنّ إدارة التوصيل تتم بواسطة “TCP / IP“، و”MQTT” هو تطبيق يتم نقله عبر الإنترنت على اتصالات تم إنشاؤها بالفعل بواسطة أنظمة أخرى.
وجميع المشاركين في جلسة “MQTT” هم عملاء ويتم الاتصال بهم بواسطة وسيط الرسائل، لذلك لا يتم الاتصال بأجهزة إنترنت الأشياء مباشرة، حيث يقوم الجهاز بإرسال الرسائل إلى وسيط الرسائل وحيث يتم إعادة توجيهها إلى الأجهزة التي اشتركت في تدفق الرسائل هذا، كما يمكن أيضاً تخزين الرسائل في وسيط الرسائل.
- “SCADA” هي اختصار لـ “Supervisory control and data acquisition”.
- “TCP / IP” هي اختصار لـ “Transmission Control Protocol/Internet Protocol”.
أنواع رسائل بروتوكول MQTT
يحدد المعيار ثلاثة أنواع من الرسائل، وهي:
- الاتصال.
- قطع الاتصال.
- النشر.
يتم إرسال نوع رسالة “Connect” من قبل العميل إلى الوسيط ونوع رسالة “Disconnect” هو تأكيد “نهاية الجلسة” الذي يرسله الوسيط إلى عميل متصل، كما يبدأ نوع رسالة النشر مع العميل ويرسل البيانات إلى وسيط الرسائل، حيث يتم أيضاً إرسال بنية الرسالة هذه بواسطة الوسيط إلى العملاء عند إعادة توجيه المعلومات، ورسالة النشر هي الوسيلة الرئيسية لنقل المعلومات.
حقول رسائل بروتوكول MQTT
الهيكل الرئيسي لمعيار “MQTT” هو نشر الرسالة، والحقول الموجودة في رسالة النشر هي:
- معرّف فريد لكل رسالة “Packet ID”.
- سلسلة هرمية “Topic Name”.
- تصنيف “QoS“.
- صواب أم خطأ “Reta in Flag”.
- الحمولة القيمة التي يتم إخطارها.
- صواب أم خطأ “Dup Flag”.
ملاحظة:“QoS” هي اختصار لـ “Quality of Service”.
ميزات بروتوكول MQTT
- إنّه بروتوكول من آلة إلى آلة، أي أنّه يدعم الاتصال بين الأجهزة.
- تم إنشاؤه كبروتوكول رسائل بسيط وخفيف الوزن يسهل نظام النشر أو الاشتراك لتبادل البيانات بين المستخدم والخادم.
- لا يحتاج كل من المستخدم والخادم إلى إنشاء اتصال في نفس الوقت.
- يسمح للمستخدمين بالاشتراك في مجموعة محدودة من الموضوعات لتلقي المعلومات التي يبحثون عنها.
- يمكنه توزيع المعلومات بشكل أكثر كفاءة.
- يتم استخدامه لزيادة قابلية التوسع.
- يمكن أن تقلل من استهلاك عرض النطاق الترددي للشبكة بشكل كبير.
- يمكنه تقليل معدلات التحديث إلى ثوانٍ.
- إنّه مناسب جداً للاستشعار والتحكم عن بُعد.
- يمكنه زيادة عرض النطاق الترددي المتاح.
- يتم استخدامه للوزن الخفيف للغاية.
- إنّه آمن للغاية مع أمان قائم على طلب الإذن.
- يتم استخدامه في صناعة النفط والغاز وأمازون وفيسبوك وغيرها من الشركات المهمة.
- يمكن أن يوفر وقت التطوير.
- يتم استخدامه لنشر أو اشتراك بروتوكول يجمع المزيد من البيانات بنطاق ترددي أقل مقارنة ببروتوكولات الاقتراع.
موضوعات بروتوكول MQTT
يمكن رؤية حقل “Topic Name” في رسالة النشر على أنّه “سلسلة محادثات”، كما إنّه مرساة نظام المراسلة بأكمله لأنّه الموضوع الذي يربط بين المرسلين والمستلمين، والتطبيقات التي تريد تلقي معلومات من جهاز بعيد “تشترك” في موضوع ما، حيث تعمل آلية إعادة توجيه رسائل نشر “MQTT” بنفس الطريقة التي يتم بها تنفيذ الإرسال المتعدد على أجهزة التوجيه.
بدلاً من أن يكون فئة من البيانات يشير الموضوع إلى مصدر الرسالة مثل جهاز الاستشعار، ومثال على الموضوع سيكون “Building1 / Lobby / Sensor5″، ومن المعتاد أن تتضمن الموضوعات تسلسلاً هرمياً بحيث يمكن للتطبيق الذي يتلقى البيانات من خلال “MQTT” تجميع الإحصائيات وتجميع البيانات بسهولة.