همه روزه افراد زیادی در مورد IOT ها صحبت میکنند. کنترل کنندههای کم هزینه که با بردهای Raspberry Pi و Arduino ساخته میشوند نیز میتوانند دادههایی مانند اطلاعات یک سنسور را اندازهگیری کنند و از طریق اینترنت به نقطه و یا تجهیزی دیگر ارسال کنند. در واقع این بردها هم میتوانند تشکیل دهنده یک IOT باشند. هدف ما در این مقاله معرفی پروتکل MQTT و قابلیتهای آن برای انتقال داده بین دستگاهها و سیستمهای مختلف است که در ابتدا میتوان به این نکته اشاره کرد که این پروتکل، بسیار سبک و کم حجم است.
اصطلاح "اینترنت اشیاه" و یا IOT برای اولین برا توسط کوین اشتون در سال 2009 برای اتصال دستگاههای فیزیکی به اینترنت استفاده شد. ایده اول بسیار ساده بود و قالب آن به این نکته اشاره داشت که دستگاههای فیزیکی میتوانند دادهها را بین یکدیگر و یا توسط دیگران کنترل کنند. نمونهای از این دستگاهها مانند یخچال، ماشین، یک ساختمان و یا اساسا هر دستگاه الکترونیکی دیگری میتواند باشد. یک از رایجترین موارد استفاده از IOT ها جمعآوری، انتقال، تثبیت و نمایش اطالعات سنسورها و یا حسگرها است. این جمعآوری و نمایش میتواند بر پایه یک داشبورد وب مقادیر جمع شده را نمایش دهد و یا در برابر تخطی مقادیر از سطح آستانه، هشداری را تولید کند. سناریوهای برنامه تقریبا نامحدود هستند. تصور کنید ساعت زنگدار شما میداند که قطار برای 15 دقیقه تاخیر دارد و خود را با آن تطبیق دهد و دستگاه قهوه ساز شما قبل 15 دقیقه دیرتر بطور خودکار روشن شود و یک فنجان قهوه قبل از خروج از منزل و یا محل کار به شما بدهد. آیا به نظر شما آینده این طور است؟
خیر، همه چیز امروز نیز از طریق دستگاههای IOT امکانپذیر است. حتی مثال سادهای که توضیح داده شد. اریکسون پیشبینی میکند ت سال 2020 پنجاه میلیارد دستگاه از طریق اینترنت به همدیگر متصل خواهند شد. و این ارتباط بین تعداد زیادی دستگاه و تجهیز IOT بر بستر IPv6 و پروتکلهای ارتباطی سبک و کمحجم مانند MQTT پیادهسازی خواهد شد.
پروتکل MQTT در سال 1999 توسط اندی استنفورد کلارک از شرکت IBM و آرن نیپر از شرکت Eurotech برای نظارت بر خطوط لولهای در سطح صحرا کیلوکترها طول داشت توسعه داده شد. هدف از توسعه و پیادهسازی این پروتکل این بود که یک پروتکل داشته باشیم که پهنای باندش کارآمد باشد و از قدرت باتری کمتر استفاده کند، زیرا ارتباط این دستگاهها در بستر ماهوارهای انجام میگرفت و زماب بسیار مهم بود.
پروتکل MQTT از یک معماری انتشار/اشتراک در مقایسه با HTTP که با پارادایم درخواست/پاسخ استفاده میکند. در واقع انتشار/ اشتراک محور این معماری است و باعث ارسال و دریافت پیام به کلاینتها خواهد شد. نقطه ارتباط مرکزی، که همان کارگزار MQTT است، مسئولیت اعزام همه پیامها بین فرستندگان و گیرندگان قانونی است. هر مشتری که یک پیام را به کارگزار ارسال میکند، شامل یک موضوع در پیام می شود. پایگاهداده موضوعی و اطلاعات مسیریابی در اختیار کارگزار MQTT است. هر مشتری که میخواهد پیامهای دریافت شده را به یک موضوع خاص مشترک کند، و کارگزار تمام پیامها را با موضوع مطابق به مشتری ارائه میدهد. بنابراین کلاینتها مجبور نیستند از وضعیت یکدیگر مطلع باشند. در واقع آنها تنها در مورد موضوع ارتباط برقرار میکنند. این معماری راهکارهای بسیار مقیاس پذیر را بدون وابستگی بین تولیدکنندگان دادهها و مصرفکنندگان دادهها فراهم میکند.
تفاوت پروتکل HTTP در این است که کلاینتها تنها وقتی که نیاز است اطلاعات را دریافت خواهند کرد. در واقع هر کلاینت MQTT یک اتصال TCP دائمی به کارگزار MQTT دارد. البته در صورتی که اتصال بین کلاینتها و کارگزار MQTT از بین برود، کارگذار دادهها را ذخیره میکند و هنگامی که به اینترنت متصل شد پیامها را به کلاینتها ارسال میکند.همانطور که قبلا گفته شد، در مفهوم مرکزی MQTT پیامهای ارسالی حاوی موضع هستند. موضوع یک رشته ساده است که میتواند سطوح سلسله مراتبی بیشتری داشته باشد. یک موضوع نمونه برای ارسال دادهها میتواند دمای اتاق نشیمن و یا خانه باشد. در واقع با نسبت دادن دما با شناسهای مشخص به عنوان موضوع میتوان این اشتراک را بین دستگاههای اندازهگیری دما ایجاد کرد و البته در صورت نیاز میتواند به صورت درختی نیز سلسله مراتبی از موضوعات را در پیام ایجاد کرد. در ابتدای سال 2012 بنیادی شکل گرفت که هدف آن اجرای پروتکلهای IOT با زبانهای مرجع مانند C، C++، C#، Python و Java بود که این بنیاد منشا بسیاری از پروژههای انجام شده در IBM و Eurotech است.
کد: 50015276
زمان انتشار: چهارشنبه 9 خرداد 1397 01:14 ب.ظ
تعداد نمایش: 401
ما را در شبکه های اجتماعی دنبال کنید