# إم كيو تي تي

برتوكول MQTT هو بروتوكول خفيف بنموذج النشر-الاشتراك يستخدم في نقل الرسائل بين الأجهزة. يعمل البرتوكول على معمارية تي سي بي/آي بي، وقد يعمل أيضًا على أي شبكة تقدم اتصالًا مرتبًا ثنائي الاتجاه بلا خسارة في البيانات. البرتوكول مصمم للاتصالات بين أماكن بعيدة حيث تكون هناك حاجة لكود قليل ويتوفر عرض نطاق محدود للشبكة. بروتوكول MQTT هو معيار مفتوح وفقًا لمنظمة OASIS وتوصية من أيزو (ISO/IEC 20922).

## التاريخ

وضع كل من أندي ستانفورد-كلارك (آي بي إم) وأرلن نبر (الذي كان يعمل في يوروتك آي إن سي) أول إصدارة من البروتوكول في 1999. واستخدم في تطبيقات مراقبة أنابيب النفط ضمن نظام سكادا. كان الهدف هو الحصول على بروتوكول يستخدم النطاق العرضي بكفاءة ويكون خفيف الوزن ولا يستهلك الكثير من الطاقة، لأن الأجهزة كانت متصلة عبر وصلة أقمار اصطناعية، والتي كانت باهظة الثمن في ذلك الوقت.
في 2013، قدمت آي بي إم الإصدارة 3.1 من إم كيو تي تي لهيئة المعايير في منظمة تقدم معايير المعلومات المهيكلة OASIS مع ميثاق يسمح بتغييرات طفيفة على المعيار. يوجد إصدار فرعي من البرتوكول باسم MQTT-SN مخصص للأجهزة المضمنة في شبكة لا تقوم على تي سي بي/آي بي، مثل زيجبي. بعد أن نُقلت مهمة صيانة المعيار من آي بي إم مع الإصدارة 3.1.1 بإدخال تعديلات طفيفة، أطلق MQTT بصفة معيار OASIS في 29 أكتوبر 2014. وصدرت في 7 مارس 2019 ترقية للإصدارة 5 مع بعض المزايا الجديدة.
الحرفان MQ في اسم البروتوكول يعودان لسلسلة منتجات آي بي إم إم كيو IBM MQ. إلا أن البروتوكول يقدم تراسلًا بنموذج النشر-الاشتراك (من دون ميزة الأرتال Queue، وإن كان هذا مسمى البروتوكول) وصُمم خصيصًا للأجهزة ذات الموارد المحدودة والنطاق العرضي المنخفض ضمن شبكات مثل شبكات الاتصال الهاتفي ووصلات الأقمار الاصطناعية.
في المعيار الذي قدمته آي بي إم تحت الإصدار 3.1، كان الاسم الرسمي للبروتوكول هو MQ Telemetry Protocol (MQTP)، لكن الاختصار MQTT كان مستخدمًا بكثافة في نص المعيار. وفي كل الوثائق التي أصدرتها منظمة OASIS، يشار إلى البروتوكول باسم MQTT بصفة حصرية.

## نظرة عامة

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

## وسيط إم كيو تي تي

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