ما هي البروتوكولات التي يجب استخدامها مع انظمة انترنت الاشياء (IoT)؟


بداية يعرف الجميع ان الانظمة الدفينة (embedded systems) التي تتكون من متحسسات (sensors) وبعض خصائص التحكم والمراقبة موجودة منذ زمن طويل وهي ليست ما نعنيه حين نقول انترنت الاشياء. ولكن ربط هذه العناصر الى شبكة اكبر مع استخدام تقنيات اخرى هو شيء جديد نسبياً. كذلك فأن الانترنت وعناوين الانترنت (Internet Protocols IP) موجودة منذ زمن ولكن استخدامها لتطبيقات انترنت الاشياء هو شيء جديد نوعاً ما.

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

اما حين نتكلم عن انترنت الاشياء فأن عرض النطاق (bandwidth) وعلاقة اداء البروتوكول بالزمن الحقيقي (real time performance) واستهلاك الذاكرة والبطارية هي امور اساسية يجب اخذها بعين الاعتبار. ولأن اغلب القرارات الخاصة بتوظيف انترنت الاشياء في المؤسسات العامة والخاصة تأتي من المدراء او اقسام تكنولوجيا المعلومات فأنهم يحاولون دائماً اجبار مختصي انترنت الاشياء على استخدام البروتوكولات والتقنيات التي يعرفها المدير او مختص ال (IT) والتي ليس بالضرورة هي الافضل. ومن هنا بدأت تظهر حقيقة ان انترنت الاشياء اقرب الى طبقة التشغيل (Operational Technology) مما هو الى تكنولوجيا المعلومات (Information Technology) وكما توضحه الصورة التالية:

is-your-otit-offering-iotready-7-1024

ومن هذا المنطلق نعرف انه يجب على مطوري انظمة انترنت الاشياء ان يثقفوا انفسهم عن افضل البروتوكولات التي يجب ان يستخدموها لتطبيقات انترنت الاشياء المختلفة:

فهناك مثلاً التصنيفات التالية للمشاريع التي يمكن ان يعمل فيها انترنت الاشياء:

  • مشاريع المستخدم النهائي والمشاريع الصناعية.

  • مشاريع خدمات الويب

  • مشاريع خدمات انترنت الاشياء

  • مشاريع النشر والاشتراك

  • مشاريع الطلب والاستجابة

وكل تصنيف من هذه القائمة له متطلبات بناء وتشغيل مختلفة.

الفرق بين الانترنت العام وانترنت الاشياء:

الانترنت بشكل عام هو الشبكة الكبرى التي تربط كل الشبكات الفرعية في العالم وتتبادل الاجهزة من خلاله البيانات على هيئة حزم (packets) ويتم الوصول الى البيانات في النهايات الطرفية من خلال متصفحات وواجهات رسومية سهلة الاستخدام من قبل البشر في حين ان الفكرة من انترنت الاشياء هي ربط اجهزة الكترونية تتبادل المعلومات فيما بينها بدون تدخل البشر ولكن بأستخدام البنية الاساسية للأنترنت. من الفروقات الاخرى بين اجهزة الانترنت العادية واجهزة انترنت الاشياء ان الاخيرة لا تمتلك نفس القدرات لعرض البيانات بصيغة رسومية ولا تحتاج اصلاً الى ذلك لأنها تكون عادة اصغر حجماً واقل ذاكرة وقدرة معالجة وتعمل بالبطاريات (في اغلب الاحيان). ولأننا ما زلنا في بداية تطوير انظمة انترنت الاشياء فمن الصعب تحديد تعريف واحد يجمع كل ما نطلق عليه انترنت الاشياء اليوم لأن الرؤى المختلفة لما يستطيع عمله انترنت الاشياء وما يجب ان يفعله قد تتظارب.

والان وقبل ان نتعرف على البروتوكولات المختلفة التي يمكن استخدامها مع انترنت الاشياء نذكر بأن طبقات الانترنت اليوم هي كما قلنا قبل قليل 7 او 5 او 4 ويمكن تبسيطها في الشكل التالي:

Image result for ‫طبقات الانترنت 7 او 5 او 4 مصطفى صادق‬‎

وفي ادناه وصف مختصر لأهم البروتوكولات العاملة في كل من هذه الطبقات:

1- طبقة التطبيقات وطبقة روابط البيانات: ومن اهم البروتوكولات العاملة فيها هي:

  • Ethernet (10 Mbps, 100 Mbps, 1 Gbps)

  • Wi-Fi (802.11b/g/n)

  • Serial point-to-point protocol (PPP)

  • GSM, 3G, 4G, LTE

  • 5G coming soon 🙂

2- طبقة الشبكة: والبروتوكول الابرز الذي يعمل فيها هو ال (IP).

3- طبقة النقل (transport layer): وفيها بروتوكولات كثيرة ولكن ابرزها هو (TCP and UDP) وكما نعرف فأن ال (TCP) هو الابرز والاكثر استخداماً لكونه اكثر وثوقية بحيث انه يسمح بأعادة ارسال البيانات المفقودة اثناء الارسال بعكس ال (UDP) الذي لا يراعي اعادة الارسال او تسلسل وصول البيانات الى المستلم ولذلك يفضل في تطبيقات الفيديو الحي او الصوتيات المباشرة (live video streaming or calls).

اما حين نتكلم عن الاشياء في انترنت الاشياء وكيف يفترض ان تتصل ببعضها فهناك عدة خيارات:

  • يمكن ربط الانترنت وانترنت الاشياء ببوابة (Gateway) وتبني الوظائف الخاصة بالاشياء بداخلها.

  • الاستعانة بمتحكمات دقيقة (microcontrollers units MCU) لعمل ذلك.

  • استخدام نفس التقنيات الموجودة في الانترنت مع انترنت الاشياء (وان كان ذلك ليس بالكفاءة المطلوبة).

  • السماح للمطورين بتعديل البروتوكولات الحالية بطريقة تخدم انترنت الاشياء.

وفي ادناه قائمة بأهم البروتوكولات التي يمكن استخدامها مع تطبيقات انترنت الاشياء لربط الاشياء الطرفية (sensors and actuators) الى الشبكة المسماة الانترنت:

بروتوكول (HTTP): وهو من اهم وابرز بروتوكولات الانترنت اليوم ولكن حين نستخدمه مع انترنت الاشياء يجب ان نتذكر تضمينه في الاجهزة الطرفية فقط (clients only) لأننا لا نريد لأي شخص او جهاز ان يتصل بالمتحسسات وانما ان تكون هي فقط من ترسل الطلبات (او البيانات) الى السيرفر.

بروتوكول (WebSocket): وهو يوفر اتصال ثنائي الاتجاه (full duplex) اي انه قادر على الارسال والاستقبال في نفس الوقت وايضاً بأستخدام ال (TCP) في الطبقة الرابعة. يعتبر هذا البروتوكول جزء من مواصفات لغة ال (HTML5) ويبسط الكثير من التعقيد الحاصل في الاتصالات ثنائية الاتجاه وبالتالي فهو ممتاز لتطبيقات انترنت الاشياء.

بروتوكول (XMPP) وهو مختصر لعبارة (Extensible Messaging and Presence Protocol) او بروتوكول التراسل الموسع وهو مثال جيد على التقنيات الموجودة حالياً والتي سيكون لها مستقبل استخدام افضل مع انترنت الاشياء.

يرجع استخدام هذا البروتوكول الى ايام الرسائل الانية (instant messaging IM) ثم توسع الى تبادل المكالمات الصوتية والفيديوية والتعاون ومزامنة المحتوى وتوجية البيانات من نوع (XML). ومن المؤمل استخدامه للأدارة والتحكم بالاشياء المختلفة في بيوتنا من غسالات ونشافات وثلاجات وغيرها.

تبرز قوة هذا البروتوكول في العنونة والامنية وقابلية التوسع ليشمل اعداد كبيرة من الاجهزة مما يجعله مثالي لتطبيقات انترنت الاشياء.

هذه البروتوكولات الثلاثة هي امثلة على البروتوكولات المستخدمة في انترنت اليوم والتي تم اقتباسها واستخدامها في انترنت الاشياء بسبب مميزاتها المفيدة في هذا المجال.

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

اذا كان نظامك لا يحتاج خصائص ال (TCP) ويمكنه العمل مع بروتوكول ال (UDP) فأن ازالة بروتوكول ال (TCP) وكل تعقيداته يقلل بشكل كبير حجم الكود المكتوب لتطبيقك وكذلك سرعة التنفيذ وهذا بالضبط ما يفعله بروتوكول الانترنت الاصدار السادس (IPv6) للشبكات الشخصية اللاسلكية واطئة القدرة (IPv6 Low power wireless personal area networks 6LoWPAN) شبكات المتحسسات اللاسلكية وبروتوكول التطبيقات المقيد (CoAP) .

الى هنا ينتهي الجزء الاول من هذا الدرس على امل اكمال ما بدأناه معكم في الدرس القادم والذي سيتركز فقط على البروتوكولات التي تم تطويرها حديثاً لتستخدم مع انظمة انترنت الاشياء مثل ال (CoAP, MQTT, …etc.) مع مجموعة من النصائح عن كيفية اختيار البروتوكول المناسب لكل تطبيق.

المصدر لهذا المقال (قبل الترجمة والتوضيح) هو الرابط التالي (انقر هنا لزيارة المقال الاصلي باللغة الانكليزية).

تحياتي للجميع

اخوكم مصطفى صادق لطيف

One comment

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار وردبرس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.