پروتکل کاربردی محدود (Constrained Application Protocol (CoAP))
برخی از پروتکلهای رایج اینترنتی — مانند HTTP — در ابتدا برای اتصال نخستین دستگاههای اینترنت اشیاء (IoT) مورد استفاده قرار گرفتند. اما بهمرور، پروتکلهای جدیدتر و سبکتری پدید آمدند تا با محدودیتهای خاص محیطهای اینترنت اشیاء (Internet of Things) سازگار باشند؛ از جمله CoAP، MQTT، AMQP و DDS. با وجود آنکه CoAP یکی از جدیدترین این پروتکلهاست، در حال کسب محبوبیت فزایندهای است؛ زیرا از الگوی REST پیروی میکند و همین امر فرآیند سازگاری و انتقال از HTTP را برای توسعهدهندگان آسان میسازد. افزون بر این، CoAP از نظر نیازهای سختافزاری دستگاه و همچنین مصرف منابع شبکه، بسیار سبک و کمهزینه است [1]. پروتکل CoAP جایگزینی برای HTTP در ارتباط میان اشیای هوشمند بهشمار میآید و از نمایش دادههای دودویی (Binary Representation) و زیرمجموعهای از روشهای HTTP استفاده میکند. این پروتکل از الگوی REST (انتقال وضعیت بازنماییشده) پیروی میکند تا دادهها و منابع را بهصورت ساختیافته و قابلدسترسی در اختیار برنامهها و دستگاهها قرار دهد. به بیان دیگر، CoAP همان اصول ساده و آشنای HTTP را حفظ کرده، اما آن را به گونهای سبکتر و بهینه برای دستگاههای محدود در محیطهای اینترنت اشیاء بازطراحی کرده است [2].
بطور کلی، CoAP بهعنوان یک پروتکل مبتنی بر سبک انتقال وضعیت بازنماییشده (RESTful) در نظر گرفته میشود [3] که برای گرهها و شبکههای محدود طراحی شده است و از قابلیتهای اینترنت اشیاء (IoT) پشتیبانی میکند. بهدلیل استفاده از پیامهای سبک، این پروتکل در مقایسه با سایر پروتکلهای مشابه، منابع کمتری مصرف میکند و موجب کاهش مصرف انرژی سرور میشود. همچنین، CoAP قابلیت پشتیبانی از فعالسازی توسط کلاینتها (Clients) را دارد. لازم به ذکر است که این پروتکل توسط گروه مهندسی اینترنت (IETF) طراحی و توسعه داده شده است [4], [5]. از این رو، پروتکل CoAP میتواند بهعنوان یک پروتکل سبک برای ارتباط ماشین به ماشین (M2M) نیز مورد استفاده قرار گیرد و همچنین میتواند بر روی دستگاههایی که به اینترنت متصل هستند اما منابع حافظه و پردازشی محدودی دارند، اجرا شود [6].
ارتباط بین پروتکل های HTTP و CoAP در چارچوب معماری REST
یک نمای کلی از معماری CoAP در شکل زیر نشان داده شده است [7].

معماری کلی CoAP
این تصویر، ساختار و نحوهی عملکرد پروتکل CoAP را در چارچوب معماری REST و ارتباط آن با HTTP را نشان میدهد. در واقع، تصویر دو بخش اصلی را ترسیم میکند: اینترنت عمومی (The Internet) و محیطهای محدود (Constrained Environments).
- بخش اول (The Internet): در سمت چپ تصویر، کلاینت (Client) از طریق پروتکل HTTP با سرور (Server) ارتباط برقرار میکند. این همان الگوی متداول ارتباط در شبکههای وب است، جایی که درخواستها و پاسخها از طریق HTTP منتقل میشوند. ارتباطات در این بخش از نوع RESTful هستند؛ یعنی دادهها و منابع از طریق آدرسهای یکتا (URI) قابل دسترس بوده و عملیات استاندارد مانند GET، POST، PUT و DELETE روی آنها اعمال میشود.
- بخش دوم (Constrained Environments): در سمت راست تصویر، محیطی نشان داده شده است که شامل حسگرها (Sensors) و دستگاههای کوچک با منابع محدود است. این گرهها نمیتوانند از HTTP سنگین استفاده کنند، بنابراین از پروتکل سبک CoAP برای ارتباط بین خود بهره میبرند. ارتباطات CoAP نیز از الگوی REST پیروی میکنند اما در قالب پیامهای دودویی و کمحجم ارسال میشوند تا پهنای باند و انرژی کمتری مصرف شود.
در میان این دو بخش، Proxy (پراکسی) قرار دارد که بهعنوان پل ارتباطی بین دنیای HTTP و CoAP عمل میکند.
از یکسو، درخواستهای HTTP از اینترنت را به CoAP تبدیل میکند تا برای حسگرها قابل فهم باشد.
از سوی دیگر، پاسخهای CoAP را به قالب HTTP بازمیگرداند تا برای کلاینتهای وب استاندارد قابل استفاده شود. به این ترتیب، پراکسی موجب ادغام یکپارچه شبکههای سنتی و شبکههای IoT میشود.
منابع