مقایسه OPC-UA و MQTT
مقایسه OPC-UA و MQTT

مقایسه OPC-UA و MQTT

[ez-toc]

مقدمه:

در دنیای دیجیتال‌سازی صنعت و اینترنت اشیاء صنعتی (IIoT)، انتخاب پروتکل مناسب برای تبادل داده، نقش کلیدی در کارایی و پایداری سیستم ایفا می‌کند. دو پروتکل محبوب OPC-UA و MQTT هر یک مزایا و معماری خاص خود را دارند. در این مقاله به مقایسه کامل این دو پروتکل در زمینه‌های کلیدی مانند معماری، امنیت، سهولت پیاده‌سازی، مقیاس‌پذیری و قابلیت اطمینان می‌پردازیم.

در مقایسه OPC-UA و MQTT هر دو پروتکل  برای بکارگیری در IIoT و کاربردهای صنعتی مانند سامانه ‎های اسکادا متداول بوده و هر کدام ویژگی‎های خاص خود را دارند. در اینچا مقایسه ای بین این دو پروتکل ارائه مي‎گردد. اگرچه OPC-UA یکی از متداول­ترین پروتکل‎های ارتباطی محیط‎های صنعتی است. با این حال، اجرای کامل مشخصات گسترده آن بسیار پیچیده است.

از آنجا که OPC-UA بر اساس معماری کلاینت-سروری بنا شده، هنگامی که بسیاری از برنامه‌ها و دستگاه‌های ناهمگون از تولیدکنندگان مختلف باید به شبکه متصل شوند، پیاده سازی معماری OPC-UA بسیار چالش برانگیز می­شود.

با توجه به اهمیت رو به افزایش قابلیت همکاری در IIoT پروتکل MQTT بخاطر ماهیت چابکی و سادگی اش، یک جایگزین مناسب برای OPC‑UA محسوب می­شود. استفاده از MQTT موجب تغییرات اساسی در معماری مي‎شود. الگوی Pub/Sub MQTT سربار کانفیگ مولفه‎ها را کاهش داده و به پهنای باند کمتری برای مخابره نیاز دارد.

خلاصه:

🟢 تعریف کلی و تفاوت در معماری

  • توضیح مدل کلاینت-سرور در OPC-UA

  • معرفی مدل Pub/Sub در MQTT

  • کاربرد هر مدل در کنترل فرایند یا داده‌های هم‌زمان

🟢 مزایای کلیدی OPC-UA

  • ساختار شی‌گرا و مدل اطلاعاتی غنی

  • پشتیبانی از RPC برای کنترل از راه دور

  • مناسب برای اسکادا، تجهیزات قدیمی و شبکه‌های LAN

  • سازگاری با استانداردهای صنعتی و قابلیت تعامل با تجهیزات متنوع

🟢 مزایای کلیدی MQTT

  • سبک، سریع و چابک با حداقل سربار

  • مناسب برای شبکه‌های ناپایدار و پهنای باند کم

  • قابلیت QoS، LWT و مدیریت نشست

  • سهولت پیاده‌سازی و استقلال داده و موضوعات

  • ایده‌آل برای ارتباطات ابری و کاربردهای IoT

🟢 امنیت در هر دو پروتکل

  • استفاده مشترک از TCP و TLS

  • تفاوت در پیاده‌سازی امنیت در کارگزار MQTT و ساختار OPC-UA

🟢 تحلیل هزینه و مقیاس‌پذیری

  • هزینه کمتر MQTT در شبکه‌های گسترده با بیش از 100 گره

  • مقیاس‌پذیری و اقتصادی بودن MQTT در پروژه‌های IoT کشوری

🟢 جدول مقایسه شاخص‌ها

شاخص پروتکل MQTT پروتکل OPC-UA
مدل معماری Pub/Sub Client-Server
سبکی و چابکی ✅ دارد ❌ ندارد
استقلال داده ✅ دارد ❌ ندارد
QoS و LWT ✅ دارد ❌ ندارد
مدیریت نشست ✅ دارد ❌ ندارد
سهولت پیاده‌سازی ✅ دارد ❌ ندارد
سربار کم زیاد
تنوع ویژگی‌ها کمتر بیشتر
RPC (فرخوانی عملکرد از راه دور) ✅ دارد ✅ دارد
مناسب برای شبکه‌های ناپایدار ✅ دارد ❌ ندارد
مناسب برای IoT و ابر ✅ دارد ❌ ندارد
امنیت ✅ دارد ✅ دارد
یکپارچه‌سازی با سیستم‌های دیگر ✅ دارد ✅ دارد
اقتصادی بودن بستر ✅ دارد ❌ ندارد
مقیاس‌پذیری ✅ دارد ❌ ندارد

 

مبنای مقایسه و معیارها

مبنای یک مقایسه مطلوب در ابتدا تعیین شاخص‌ها و معیارها است. لذا در ادامه شاخص‌ها بطور اجمالی مرور شده و سپس یک مقایسه جامع‌تر بین این دو پروتکل ارائه مي‎شود. هر دو پروتکل شباهت‌هایی مانند امنیت سایبری داخلی و اتکای آنها به سایر فناوری‎های شبکه مانند TCP دارند و در عین حال هرکدام مزایای خاص خود را نیز دارا می‌باشند که هر یک برای کاربرد خاصی مناسب‌تر می‌سازد. بهرحال مقایسه این دو پروتکل فارغ از نوع کاربرد کار آسانی نیست و در واقع سوال پیش رو این است که کدام یک برای کدام کاربرد بهتر عمل مي‎كند.

لذا برای تصمیم آگاهانه‌تر هنگام برنامه‌ریزی در هر پروژه لازم است اشراف خوبی به ویژگی‌ها و مزایای هر کدام از این دو پروتکل داشت و در این راستا لازم است که معیارهای مقایسه مشخص باشند.

برخی از این معیارها عبارتند از :

  • نوع معماری
  • سهولت اجرا و پیاده سازی (خصوصاً سمت مشتری)
  • مقیاس پذیری
  • مدل و ساختار اطلاعات
  • قابلیت اطمینان
  • رعایت نکات امنیتی
  • سازگاری بیشتر با کاربرد مورد نظر IoT
  • سازگاری با فرایند دیجیتالی کردن صنعت
  • سهولت یکپارچه سازی
  • ارائه سرویس کیفیت خدمات
  • سهولت مدیریت داده
  • نرخ ارسال داده یا توان عملکردی
  • تنوع ویژگی‎ها

 

مهم ترین وجه تمایز دو پروتکل در معماری آنها مي‎باشد. معماری انتشار-اشتراک MQTT به طور قابل توجهی با معماری مبتنی بر کلاینت-سروری OPC0-UA متفاوت است. هنگامی که هدف کارایی بالا با حداقل پهنای باند است، مدل Pub/Sub کارآمدتر از پروتکل‎های مبتنی بر توافق مانند مدل کلاینت-سروری می‌باشد.

مدل کلاینت-سروری برای کار با داده‌های فرکانس پایین (10 میلی ثانیه و بالاتر) به عنوان مثال کنترل نظارتی عالی است. مدل Pub/Sub برای کار با داده‌های با فرکانس بالا (محدوده ۱ تا ۱۰ میلی‌ثانیه) به‌عنوان مثال پخش جریانی داده‌های هم‌زمان عالی است.

در ادامه ابتدا مروری بر مزایای پروتکل OPC-UA انجام شده است و سپس به مزایای پروتکل MQTT نسبت به OPC-UA پرداخته مي‎شود.

یکی از جذابیت‎های اصلی OPC-UA نسبت به MQTT غنای آن از نظر تنوع ویژگی‎ها مي‎باشد. برای مثال، مدل شی‌گرای OPC-UA به سرورها اجازه می‌دهد تا داده‌ها، اطلاعات، فرآیندها و سیستم‌ها را به‌عنوان اشیاء مدل‌سازی کرده و آنها را به روش‌هایی به مشتریان ارائه کنند. یکی دیگر از ویژگی‎های منحصر به فرد OPC‑UA، توانایی انجام فراخوانی رویه از راه دور RPCs است که به یک ماشین اجازه مي‎دهد یک رویه، عملکرد یا متد را در ماشین دیگری فراخوانی کند. این ویژگی برای سیستم‎های توزیع شده بسیار مفید است.

به عنوان مثال، یک PLC می‌تواند یک RPC را به یک PLC پایین‌دستی دیگری ارسال کند تا بتواند بدون نیاز به چند بار توافق بین کنترل‌کننده‌ها، پیکربندی تجهیزات را برای نوع محصول بعدی که خط تولید مي‎كند آغاز کند. اساساً OPC UA امکان اجرای خدمات پیچیده تری را در شبکه مهیا مي‎سازد. آخرین نکته برجسته درباره OPC-UA توانمندی آن در کنترل بلادرنگ مي‎باشد.

کاربرد اصلی OPC UA برای کنترل فرآیند حلقه بسته در یک شبکه محلی LAN است. اگر ما نیاز است که ماشین آلات و تجهیزات خود را در همان محل کارخانه قرار دهیم تا در زمان واقعی با یکدیگر ارتباط برقرار کنند، OPC­UA نخستین گزینه ای است که باید در نظر بگیریم. یک نتیجه گیری مي‎تواند این باشد که این پروتکل برای ادغام با یک سیستم اسکادا مناسب تر است. OPC UA نه تنها سابقه اثبات شده ای برای موارد استفاده اسکادا دارد، بلکه ویژگی‎ها و معماری آن دلایل قوی برای ترجیح آن برای اسکادا هستند.

دلیل خوب دیگری برای استفاده از OPC-UA این است که ما بعضاً نیاز به یکپارچه سازی تجهیزات قدیمی داریم. تجهیزات صنعتی نسبت به بسیاری از دستگاه‎های IT طول عمر بیشتری دارند و OPC-UA به عنوان اولین پروتکل ارتباطی صنعتی، با در نظر گرفتن این واقعیت طراحی شده، فلذا با این تجهیزات قدیمی هم سازگار مي‎باشد.

از آنجا که هدف OPC-UA یکسان سازی نحوه تعامل با سازندگان مختلف دستگاه‎های صنعتی است، این پروتکل راه حلی کامل برای محیط‎های صنعتی است که از ارتباط دستگاه‎ها تا قابلیت همکاری آنها را پوشش مي‎دهد. در این محیط‎ها افزایش مصرف پهنای باند در برابر تمام مزایایی که OPC UA برای ما به ارمغان می آورد چندان حیاتی و بحرانی نیست.

از نظر امنیت، از آنجا که هر دو پروتکل OPC-UA و MQTT از پروتکل انتقال داده مشترک TCP استفاده مي‎كنند، بخشی از نیازمندی‎های امنیتی آنها توسط این پروتکل تامین مي‎شود. به عنوان مثال OPC-UA پروتکل‎های امنیتی WS و SSL مبتنی بر TCP را پشتیبانی مي‎كند. از سوی دیگر از مکانیزم رمزنگاری XML پروتکل انقال داده http/SOAP هم بهره می برد.

در مقابل بخشی از امنیت MQTT متکی به امنیت کارگزار مي‎باشد. در هر 2 پروتکل، بخش عمده ای از امنیت در لایه TLS تامین مي‎گردد، به همین دلیل نیز قابلیت‎های گواهی PKI و یا احراز هویت‌های مبتنی بر توکن‎های Websocket برای هر 2 پروتکل MQTT و OPC-UA وجود دارد. مراجع [18] تا [21] به استفاده از این تمهیدات امنیتی در MQTT می‌پردازند.

حال جهت تکمیل مقایسه به پروتکل رقیب MQTT پرداخته مي‎شود. مزیت واقعی MQTT چالاک و چابک بودن آن نسبت به OPC-UA مي‎باشد. بسته‌های ارسال شده از طریق MQTT به طور قابل توجه‌ای کوچکتر هستند و به تبع آن نیاز به سربار کمتری دارند، نکته ای که موجب مي‎شود این پروتکل برای شبکه‎های محدودشده با پهنای باند محدود، انتخاب بهتری باشد.

MQTT همچنین برای دستگاه‌هایی با منابع کم، شبکه‎های با پهنای باند محدود و تأخیر بالا یا در برنامه‌های کاربردی که به انعطاف پذیری این پروتکل نیاز دارند ایده‌آل است. این عوامل دلایل اصلی این هستند که چرا MQTT به عنوان پیش فرض دستگاه‎های IoT مورد چنین استقبال گسترده ای قرار گرفته  است. سهولت اجرا نیز یکی دیگر از مزایای اصلی MQTT محسوب مي‎شود. OPC-UA یک پروتکل سنگین و پیچیده مي‎باشد که یکپارچه سازی در آن همیشه آسان نیست. بر خلاف OPC UA، امکان پیاده سازی MQTT بسیار آسان است و نیازی به تعریف ساختارهای ثابت یا انواع داده نیست.

MQTT برای تضمین انتقال کامل پیام‎ها با اتصال پایدار از TCP به عنوان پروتکل انتقال استفاده مي‎كند. از آنجایی که MQTT عمدتاً برای شبکه‎های ناپایدار طراحی شده است، سه سطح کیفیت خدمات (QoS) 0، 1 و 2 مشخص شده است. این مفهوم تضامین تحویل پیام‎های MQTT یک تفاوت برجسته دیگری نسبت به OPC-UA محسوب مي‎گردد.

در واقع MQTT برای شبکه‎هایی با قابل اعتماد کم مناسب تر مي‎باشد. MQTT شامل ویژگی‎های مفیدی مانند کیفیت خدمات و آخرین وضعیت تائید و ارسال (LWT) است، که به ترتیب مشخص می‌کنند که یک دستگاه چگونه باید دریافت پیامش را تأیید کند و اگر به هر دلیلی به طور نامطلوب از شبکه جدا شود، چه پیامی باید ارسال ‎كند. ترکیب این مزایا با چابکی ذاتی MQTT از این پروتکل برای عملياتي مانند مدیریت دارایی از راه دور یک گزینه قابل قبول مي‎سازد.

استفاده از  قابلیت‎های بکارگیری نشست نیز اجازه مي‎دهد تا داده‎ها حتی بیشتر از مدت زمان اتصال مشتری برای مشتریان MQTT باقی بمانند. برای مثال ثبت نام، پیام‌های آفلاین یا اطلاعات اضافی ذخیره‌شده برای یک مشتری آفلاین در کارگزار، بلافاصله پس از اتصال مجدد مشتری، در دسترس می‌مانند. یکی دیگر از تفاوت‎های اساسی دو پروتکل به حوزه استقلال داده مربوط مي‎شود. پروتکل MQTT با توجه به نوع داده محدودیتی در سطح مشخصات اعمال نمي‎كند. در نتیجه، پروتکل MQTT می‎تواند برای انتقال انواع مختلف داده‎ها استفاده شود.

این استقلال حتی می­تواند در مورد عناوين  هم صدق کند. فراتر از الزامات قراردادی، عناوین MQTT محدود نیستند. در این پروتکل عناوين پویا هستند و لازم نیست از قبل مشخص یا ایجاد شوند. فقط عنوان هایی وجود دارند که یک مشتری MQTT برای مصرف پیام‎های دریافتی با آن موضوع مشتر subscribe شده باشد. اگر پیامی در مورد موضوعی منتشر شود که هیچ مشتری MQTT برای آن subscribe نشده است، کارگزار در نهایت پیام را رد مي‎كند.

اصل ذخیره سازی و نگهداری پیام‎ها در MQTT برای محیط‎های تولید نیز بسیار مفید است. این ویژگی اجازه مي‎دهد تا یک پیام خاص در موضوعات مختلف ذخیره شود. پیام ذخیره و نگهداری شده تضمین مي‎كند که هر مشتری که در موضوع مشترک شود بتواند بلافاصله پیام ذخیره شده را دریافت کند.

MQTT پروتکلی است که کدگذاری فیلد داده و محتوای آن برای هر برنامه مختص همان برنامه است. بنابراین وقتی ارتباط پیام‌ها برای یک برنامه ویژه ی مختص آن فیلدهای داده توسعه یافته باشد، پروتکل مناسبی خواهد بود. از آنجا که پروتکل MQTT مبتنی بر کارگزار مي‎باشد، برای تبادل اطلاعات بین 2 یا چند نرم افزار کاربردی که توسط خودمان تولید شده ایده آل مي‎باشد. نسخه MQTT 5 نیز امکان انتقال آزادانه فرا اطلاعات (Meta Informations) را دربسته­های MQTT و بدون استفاده از بارگذاری ممکن مي‎سازد. ویژگی‎های کاربر، تبادل فرا اطلاعات ساده و موثری را ارائه مي‎دهد. MQTT 5 برای ارتباطات ابری نیز کاملاً ایده آل مي‎باشد.

از سوی دیگر، مورد استفاده اولیه برای MQTT برنامه‎ های کاربردی IIoT است. اگر داده‌ها از مکان‌های دور جمع‌آوری شده و از طریق یک شبکه غیرقابل اعتماد مانند تلفن همراه ارسال مي‎شوند، MQTT پروتکلی است که اکیداً توصیه می‌شود.

در همین راستا، به دلیل ویژگی ماهوی  کیفیت خدمات در MQTT، مي‎توان دریافت پیام توسط منبع نهایی را تضمین کرد، زیرا MQTT مي‎تواند به تلاش برای ارسال پیام ادامه دهد در حالیکه در اجرای پایه OPC-UA، پیام ممکن است از بین برود. یک مثال عالی از کاربرد MQTT برای درگاه‎های IoT است که داده‌های حسگرها را جمع‌آوری و آن‌ها را برای تجزیه و تحلیل داده‌ها و یک نمای کلی از عملکرد خط تولید به سمت ابر هدایت می‌کنند.

مثال‎های کاربردی

فروشندگان صنعتی بزرگ از هر دوی این پروتکل‎ها به شدت برای گسترش ویژگی‎های ارتباطی خود استفاده مي‎كنند. به عنوان مثال، زیمنس پیکربندی سخت‌افزار خود را با OPC-UA انجام مي‎دهد (به دلیل قابلیت یکپارچه سازی آسان‌تر آن) و همزمان برای توسعه IIoT یک کتابخانه MQTT را نگهداری مي‎كند. بطور مشابه شرکت Inductive Automation نیز از OPC UA به عنوان ستون فقرات پلتفرم خود استفاده مي‎كند، در حالی که به طور همزمان از MQTT برای ارتباطات IIoT و از راه دور بهره می برد.

علیرغم مقایسه ‎های همه جانبه انجام شده، انتخاب بین MQTT و OPC-UA تصمیم ساده ای نیست. هر پروتکل نقش خود را ایفا مي‎كند و در موارد کاربرد خاص، برتری‎های خود را به رخ می کشد. یک شبکه صنعتی بهینه مي‎تواند از هر دو پروتکل استفاده کند، چرا که وقتی با هم ترکیب شوند، می‌توان از نقاط قوت هر یک استفاده کرد و نقاط ضعف آنها را کاهش داد. به همین دلیل بسیار مهم است که از ابتدا، طراحی معماری سیستم‎ها و شبکه با دقت انجام شود. در نظر گرفتن این پروتکل‎ها از همان بدو طراحی، موجب بهره وری بیشتر، قابلیت اطمینان بالاتر و خرابی کمتر مي‎شود. تنها شرط لازم برای این منظور، داشتن دانش فنی برای انجام کار است.

به طور خلاصه مي‎توان مقایسه دو پروتکل را به شرح زير جمع‎بندی کرد :

  • مفاهیم و ویژگی­های MQTT برای استفاده در دیجیتالی کردن حوزه تولید کاملاً مناسب است.
  • جداسازی داده‎ها از طریق یک مؤلفه پیام رسانی مرکزی که MQTT ارائه مي‎دهد یک مزیت قابل توجه است.
  • امنیت را مي‎توان با MQTT به همان سرعت و به همان روالي که با OPC-UA پیاده سازی کرد.
  • وضعیت مشتری یک ویژگی ضروری و ذاتی اجزای درگیر است و مي‎تواند به طور بی عیب و نقص از طریق عملکرد MQTT پیاده سازی شود.
  • درگاه‎ها مي‎توانند در هنگام اتصال دستگاه‎هایی که به پروتکل‎های دیگری نیاز دارند به عنوان یکپارچه کننده عمل کنند.
  • MQTT برای اینترنت اشیاء صنعتی یا IIoT و شبکه‎های گسترده در پهنه‎های جغرافیای زیاد و کشوری مناسب است، کما اینکه در سال‎های اخیر به عنوان معروف‌ترین و رایج‌ترین پروتکل در این حوزه شناخته می‌شود. در حالی که  OPC-UA برای محیط‎های صنعتی مناسب تر مي‌باشد.
  • از نظر اقتصادی، استفاده و بهره برداری از پروتکل MQTT بسیار مقرون به صرفه تر از OPC-UA مي‎باشد. لذا در شبکه‎هایی که گره‎های کنترلی با بالای 100 عدد می رسند، هزینه بهره‌برداری و استفاده از گره‌های صنعتی با پروتکل OPC-UA در مقیاس به MQTT مقرون به صرفه نمی‌باشد.

بر اساس معیارهایی که در فوق بیان شد، یک مقایسه نسبتاً همه جانبه و کامل تری بین دو پروتکل در ‏جدول زیر ارائه مي‎شود. همان طور که مشهود است هر دو پروتکل اکثر شاخص‎ها را پشتیبانی می‎کنند اما پروتکل MQTT از منظر سبکی، کیفیت خدمات، مدیریت نشست، سهولت پیاده سازی، سربار و اقتصادی بودن بستر ارتباطی در سطح بالاتری قرار دارد.

شاخص پروتکل MQTT پروتکل OPC-UA
مدل معماری Pub/Sub Cleint-server

برای Part 14 : Pub/Sub

سبکی و چالاکی ساده پیچیده
استقلال داده دارد ندارد
سطوح کیفیت خدمات دارد ندارد
LWT(اعلام آخرین وضعیت تائید و ارسال ) دارد ندارد
مدیریت نشست دارد ندارد
سهولت پیاده سازی دارد ندارد
سربار کمتر بیشتر
تنوع ویژگی ندارد دارد
RPCs (ارسال فرمان از پلتفرم به دستگاه) دارد دارد
شبکههای ناپایدار (قابلیت اعتماد کم) دارد ندارد
شبکههای دارای محدودیت دارد ندارد
امنیت دارد دارد
یکپارچه سازی دارد دارد
تناسب با IIoT و ارتباطات ابری دارد ندارد
قابلیت اقتصادی بودن بستر ارتباطی دارد ندارد
مقیاس‌پذیری دارد ندارد
قابلیت انعطاف دارد ندارد

 نتیجه‌گیری:

در انتخاب بین OPC-UA و MQTT هیچ پاسخ قطعی وجود ندارد، زیرا هر دو پروتکل در شرایط مختلف مزایای خاص خود را دارند. با این حال، اگر هدف، پیاده‌سازی سامانه‌ای سبک، مقرون‌به‌صرفه، چابک و قابل گسترش برای کاربردهای IoT و شبکه‌های بزرگ باشد، MQTT گزینه بهتری خواهد بود. در مقابل، OPC-UA انتخاب اول برای محیط‌های صنعتی سنگین، اسکادا و تجهیزات قدیمی با نیاز به مدلسازی پیچیده اطلاعات باقی می‌ماند. ترکیب این دو پروتکل نیز می‌تواند راهکاری بهینه در معماری‌های صنعتی مدرن باشد.

 سوالات متداول

 آیا MQTT می‌تواند جایگزین کامل OPC-UA شود؟

 خیر، MQTT ساده و چابک است ولی فاقد مدل اطلاعاتی غنی OPC-UA است. بسته به نیاز، ترکیب هر دو توصیه می‌شود.

 چرا MQTT در IIoT بیشتر استفاده می‌شود؟

 به دلیل چابکی، سبک بودن، پشتیبانی از QoS و مناسب بودن برای شبکه‌های ناپایدار مانند GSM.

 در چه شرایطی OPC-UA بهتر است؟

 در اسکادا، کنترل حلقه بسته، تجهیزات صنعتی قدیمی، و نیاز به مدل‌سازی اشیاء و RPC.

 آیا می‌توان از هر دو پروتکل هم‌زمان در یک پروژه استفاده کرد؟

 بله، بسیاری از پروژه‌های صنعتی موفق از MQTT برای انتقال داده به ابر و از OPC-UA برای کنترل محلی استفاده می‌کنند.

دیدگاهتان را بنویسید