ایمن سازی یکپارچگی داده های اینترنت اشیا با پلتفرم Go IoT

Summarize this content to 400 words in Persian Lang
ترجمه:
پلتفرم توسعه Go IoT یک راه حل اینترنت اشیا (IoT) رایگان، کارآمد و مقیاس پذیر است که با استفاده از زبان برنامه نویسی Go توسعه یافته است. این پلتفرم از پروتکل های انتقال داده مانند MQTT، HTTP، WebSocket، COAP و TCP/IP پشتیبانی می کند و ابزارهای پیکربندی سبک وزن را برای توابع هشدار و خدمات آمار داده ها بر اساس جاوا اسکریپت ارائه می کند.
وب سایت رسمی: http://iot-dev-egi.pages.dev/
آدرس مخزن: https://github.com/iot-ecology/go-iot-platform
ما به دنبال مهندسان توسعه React هستیم. شرکت شما خوش آمدید
شرح رویداد
EMQX میتواند گزارشهای داده سطح دوم را از بسیاری از دستگاهها در هر زمان دریافت کند، اما ممکن است با روند عادی کسبوکار مطابقت نداشته باشد. به عنوان مثال، در شرایط عادی، یک دستگاه ممکن است هر 5 دقیقه یک بار داده ها را گزارش کند. برای تشخیص قانونی بودن دستگاه گزارشدهنده، به روشی برای تشخیص اینکه آیا دستگاه ممکن است یک دستگاه مخرب باشد، نیاز داریم که عمداً دادهها را به طور مکرر گزارش میکند تا بر پایداری EMQX تأثیر بگذارد.
راه حل پلتفرم توسعه اینترنت اشیا برو
جزئیات دستگاه فیزیکی: دو فیلد کلیدی در جزئیات فیزیکی دستگاه (DeviceInfo) وجود دارد: Push Interval (seconds) و Push Time Error (seconds). با این دو فیلد می توانیم تشخیص دهیم که آیا رفتار گزارش دهی دستگاه غیرعادی است یا خیر و پردازش منطقی بعدی را ادامه دهیم.
روش محاسبه
برای محاسبه اینکه آیا نرخ گزارش دهی دستگاه در بازه فشار و خطا قرار دارد و آیا خارج از خطا است، ابتدا باید چند متغیر و شرایط را تعریف کنیم:
فاصله فشار دستگاه با (T) (ثانیه) نشان داده می شود.
خطای زمان فشار دستگاه به صورت ( E ) (ثانیه) نشان داده می شود.
فاصله فشار واقعی دستگاه به عنوان (T_{\text{واقعی}}) (ثانیه) نشان داده می شود.
0. محاسبه فاصله فشار واقعی
اولین فشار زمانی: زمانی که دستگاه برای اولین بار داده را فشار داد (T_{\text{1}}).
مهر زمان فشار دوم: زمانی که دستگاه برای بار دوم داده ها را فشار داد (T_{\text{2}}).
فاصله فشار واقعی: ( T_{\text{واقعی}} = T_2 – T_1 )
1. محاسبه آیا در فاصله فشار و خطا
اگر فاصله فشار واقعی (T_{\text{واقعی}}) شرایط زیر را داشته باشد، نرخ دستگاه در بازه فشار و خطا در نظر گرفته میشود:[ T – E \leq T_{\text{actual}} \leq T + E ]
2. محاسبه خطای بیرونی
اگر فاصله فشار واقعی (T_{\text{واقعی}}) شرایط فوق را نداشته باشد، نرخ دستگاه خارج از خطا در نظر گرفته میشود، به عنوان مثال:[ T_{\text{actual}} < T – E \quad \text{or} \quad T_{\text{actual}} > T + E ]
محاسبه مثال
فرض کنید:
فاصله فشار (T = 60) ثانیه
خطای زمان فشار (E = 5) ثانیه
این دستگاه اولین داده را در ساعت 10:00 در 20 سپتامبر 2024 ارسال کرد (یعنی ( T_1 ))
دستگاه دومین داده را در ساعت 10:01:05 در 20 سپتامبر 2024 ارسال کرد (یعنی ( T_2 ))
محاسبه (T_{\text{واقعی}})
[ T_{\text{actual}} = (10:01:05 – 10:00:00) = 65 \text{ seconds} ]بررسی کنید که آیا در فاصله فشار و خطا وجود دارد:
[ 60 – 5 \leq 65 \leq 60 + 5 ][ 55 \leq 65 \leq 65 ]از آنجایی که ( 55 \leq 65 \leq 65 ) درست است، نرخ دستگاه در بازه فشار و خطا است.بررسی کنید که آیا خطای خارجی وجود دارد یا خیر:
از آنجایی که (65) کمتر از (60 + 5) نیست، نرخ دستگاه خارج از خطا نیست.
با این روش میتوانید فاصله فشار واقعی دستگاه را به دقت محاسبه کنید و بررسی کنید که آیا با فاصله فشار تنظیم شده و قوانین خطا مطابقت دارد یا خیر.
رسیدگی به مشکل
با روش محاسبه ای که قبلا ذکر شد، می توانیم تعیین کنیم که آیا داده های گزارش شده با فاصله فشار مورد انتظار و محدوده خطا مطابقت دارند یا خیر. به طور کلی، داده هایی که با این محدوده مطابقت دارند، عادی در نظر گرفته می شوند و نیاز به پردازش دارند، در حالی که داده های فراتر از این محدوده ممکن است غیرعادی در نظر گرفته شوند و باید کنار گذاشته شوند. در پلتفرم توسعه Go IoT، برای چنین دادههای غیرعادی، اقدامات زیر را انجام خواهیم داد:
حذف داده ها: مستقیماً داده هایی را که از فاصله فشار و محدوده خطا بیشتر است دور بریزید. هنگام مصرف پیامها در صف پیام، مستقیماً این دادهها را بدون ذخیرهسازی دائمی ACK (تایید) کنید.
تعمیر و نگهداری از طریق ابزارهای مدیریت سرور EMQX
1. مشتریان را از طریق لیست سیاه EMQX حذف کنید
با استفاده از ویژگی لیست سیاه EMQX، می توانیم مشتریان گزارش دهی مخرب یا غیرعادی را محدود کنیم. در اینجا تجزیه و تحلیل دقیقی از مزایا و معایب غیرفعال کردن اشیا و موارد استفاده از آنها آورده شده است:
شی غیرفعال
مزایا
معایب
موارد استفاده
شناسه مشتری
– دقت بالا، می تواند به طور مستقیم مشتریان خاص را محدود کند.- پیاده سازی آسان، معمولاً شناسه مشتری منحصر به فرد است، مدیریت و ردیابی آسان است.
– اگر مشتری شناسه را تغییر دهد، باید دوباره به لیست سیاه اضافه شود.- مکانیزمی برای شناسایی و ثبت شناسه مشتری لازم است.
– مناسب برای سناریوهایی که نیاز به کنترل دقیق دستگاهها یا مشتریان دارند.- زمانی که شناسایی و ثبت شناسه مشتری MQTT دستگاه گزارش دهنده آسان باشد.
نام کاربری
– می تواند گروهی از دستگاه ها را با استفاده از نام کاربری مشابه مدیریت کند.- مدیریت گروهی از دستگاه ها را ساده می کند.
– برای سناریوهایی که نیاز به کنترل دقیق دستگاهها دارند مناسب نیست.- اگر دستگاهها یک نام کاربری مشترک دارند، ممکن است دستگاههای قانونی به اشتباه محدود شوند.
– مناسب برای سناریوهایی که دستگاهها از رمز عبور حساب یکسان به صورت دستهای یا طبق قوانین استفاده میکنند.- هنگامی که مدیریت دستگاه متمرکز تر است و نیازی به کنترل دقیق دستگاه های فردی نیست.
آدرس IP
– می تواند به سرعت تمام درخواست ها را از یک آدرس IP خاص محدود کند.- ساده و موثر برای دستگاه هایی با آدرس IP ثابت.
– برای IP پویا یا دستگاه های تلفن همراه موثر نیست.- ممکن است به اشتباه سایر دستگاه های قانونی را تحت همان IP محدود کند.
– مناسب برای سناریوهایی که دستگاه ها دارای آدرس IP ثابت هستند.- زمانی که نیاز به محدود کردن سریع ترافیک از یک IP خاص دارید و هیچ دستگاه قانونی دیگری تحت آن IP وجود ندارد.
سه مورد فوق باید ابتدا Client ID را در اولویت قرار دهند.
2. مشتریان را از طریق رابط API ارائه شده EMQX حذف کنید
EMQX یک رابط API ارائه می دهد که به مدیران اجازه می دهد تا مشتریان MQTT خاصی را از سرور حذف کنند. لازم به ذکر است که اگر کلاینت MQTT مکانیزم اتصال مجدد را پیاده سازی کرده باشد، صرفاً حذف آن ممکن است کلاینت را به طور کامل حذف نکند.
مرجع: EMQX Documentation – Client Exclusion
ترجمه:
پلتفرم توسعه Go IoT یک راه حل اینترنت اشیا (IoT) رایگان، کارآمد و مقیاس پذیر است که با استفاده از زبان برنامه نویسی Go توسعه یافته است. این پلتفرم از پروتکل های انتقال داده مانند MQTT، HTTP، WebSocket، COAP و TCP/IP پشتیبانی می کند و ابزارهای پیکربندی سبک وزن را برای توابع هشدار و خدمات آمار داده ها بر اساس جاوا اسکریپت ارائه می کند.
وب سایت رسمی: http://iot-dev-egi.pages.dev/
آدرس مخزن: https://github.com/iot-ecology/go-iot-platform
ما به دنبال مهندسان توسعه React هستیم. شرکت شما خوش آمدید
شرح رویداد
EMQX میتواند گزارشهای داده سطح دوم را از بسیاری از دستگاهها در هر زمان دریافت کند، اما ممکن است با روند عادی کسبوکار مطابقت نداشته باشد. به عنوان مثال، در شرایط عادی، یک دستگاه ممکن است هر 5 دقیقه یک بار داده ها را گزارش کند. برای تشخیص قانونی بودن دستگاه گزارشدهنده، به روشی برای تشخیص اینکه آیا دستگاه ممکن است یک دستگاه مخرب باشد، نیاز داریم که عمداً دادهها را به طور مکرر گزارش میکند تا بر پایداری EMQX تأثیر بگذارد.
راه حل پلتفرم توسعه اینترنت اشیا برو
جزئیات دستگاه فیزیکی: دو فیلد کلیدی در جزئیات فیزیکی دستگاه (DeviceInfo) وجود دارد: Push Interval (seconds)
و Push Time Error (seconds)
. با این دو فیلد می توانیم تشخیص دهیم که آیا رفتار گزارش دهی دستگاه غیرعادی است یا خیر و پردازش منطقی بعدی را ادامه دهیم.
روش محاسبه
برای محاسبه اینکه آیا نرخ گزارش دهی دستگاه در بازه فشار و خطا قرار دارد و آیا خارج از خطا است، ابتدا باید چند متغیر و شرایط را تعریف کنیم:
- فاصله فشار دستگاه با (T) (ثانیه) نشان داده می شود.
- خطای زمان فشار دستگاه به صورت ( E ) (ثانیه) نشان داده می شود.
- فاصله فشار واقعی دستگاه به عنوان (T_{\text{واقعی}}) (ثانیه) نشان داده می شود.
0. محاسبه فاصله فشار واقعی
- اولین فشار زمانی: زمانی که دستگاه برای اولین بار داده را فشار داد (T_{\text{1}}).
- مهر زمان فشار دوم: زمانی که دستگاه برای بار دوم داده ها را فشار داد (T_{\text{2}}).
- فاصله فشار واقعی: ( T_{\text{واقعی}} = T_2 – T_1 )
1. محاسبه آیا در فاصله فشار و خطا
اگر فاصله فشار واقعی (T_{\text{واقعی}}) شرایط زیر را داشته باشد، نرخ دستگاه در بازه فشار و خطا در نظر گرفته میشود:
[ T – E \leq T_{\text{actual}} \leq T + E ]
2. محاسبه خطای بیرونی
اگر فاصله فشار واقعی (T_{\text{واقعی}}) شرایط فوق را نداشته باشد، نرخ دستگاه خارج از خطا در نظر گرفته میشود، به عنوان مثال:
[ T_{\text{actual}} < T – E \quad \text{or} \quad T_{\text{actual}} > T + E ]
محاسبه مثال
فرض کنید:
- فاصله فشار (T = 60) ثانیه
- خطای زمان فشار (E = 5) ثانیه
- این دستگاه اولین داده را در ساعت 10:00 در 20 سپتامبر 2024 ارسال کرد (یعنی ( T_1 ))
- دستگاه دومین داده را در ساعت 10:01:05 در 20 سپتامبر 2024 ارسال کرد (یعنی ( T_2 ))
محاسبه (T_{\text{واقعی}})
[ T_{\text{actual}} = (10:01:05 – 10:00:00) = 65 \text{ seconds} ]
بررسی کنید که آیا در فاصله فشار و خطا وجود دارد:
[ 60 – 5 \leq 65 \leq 60 + 5 ][ 55 \leq 65 \leq 65 ]از آنجایی که ( 55 \leq 65 \leq 65 ) درست است، نرخ دستگاه در بازه فشار و خطا است.
بررسی کنید که آیا خطای خارجی وجود دارد یا خیر:
از آنجایی که (65) کمتر از (60 + 5) نیست، نرخ دستگاه خارج از خطا نیست.
با این روش میتوانید فاصله فشار واقعی دستگاه را به دقت محاسبه کنید و بررسی کنید که آیا با فاصله فشار تنظیم شده و قوانین خطا مطابقت دارد یا خیر.
رسیدگی به مشکل
با روش محاسبه ای که قبلا ذکر شد، می توانیم تعیین کنیم که آیا داده های گزارش شده با فاصله فشار مورد انتظار و محدوده خطا مطابقت دارند یا خیر. به طور کلی، داده هایی که با این محدوده مطابقت دارند، عادی در نظر گرفته می شوند و نیاز به پردازش دارند، در حالی که داده های فراتر از این محدوده ممکن است غیرعادی در نظر گرفته شوند و باید کنار گذاشته شوند. در پلتفرم توسعه Go IoT، برای چنین دادههای غیرعادی، اقدامات زیر را انجام خواهیم داد:
-
حذف داده ها: مستقیماً داده هایی را که از فاصله فشار و محدوده خطا بیشتر است دور بریزید. هنگام مصرف پیامها در صف پیام، مستقیماً این دادهها را بدون ذخیرهسازی دائمی ACK (تایید) کنید.
-
تعمیر و نگهداری از طریق ابزارهای مدیریت سرور EMQX
1. مشتریان را از طریق لیست سیاه EMQX حذف کنید
با استفاده از ویژگی لیست سیاه EMQX، می توانیم مشتریان گزارش دهی مخرب یا غیرعادی را محدود کنیم. در اینجا تجزیه و تحلیل دقیقی از مزایا و معایب غیرفعال کردن اشیا و موارد استفاده از آنها آورده شده است:
شی غیرفعال | مزایا | معایب | موارد استفاده |
---|---|---|---|
شناسه مشتری | – دقت بالا، می تواند به طور مستقیم مشتریان خاص را محدود کند. – پیاده سازی آسان، معمولاً شناسه مشتری منحصر به فرد است، مدیریت و ردیابی آسان است. |
– اگر مشتری شناسه را تغییر دهد، باید دوباره به لیست سیاه اضافه شود. – مکانیزمی برای شناسایی و ثبت شناسه مشتری لازم است. |
– مناسب برای سناریوهایی که نیاز به کنترل دقیق دستگاهها یا مشتریان دارند. – زمانی که شناسایی و ثبت شناسه مشتری MQTT دستگاه گزارش دهنده آسان باشد. |
نام کاربری | – می تواند گروهی از دستگاه ها را با استفاده از نام کاربری مشابه مدیریت کند. – مدیریت گروهی از دستگاه ها را ساده می کند. |
– برای سناریوهایی که نیاز به کنترل دقیق دستگاهها دارند مناسب نیست. – اگر دستگاهها یک نام کاربری مشترک دارند، ممکن است دستگاههای قانونی به اشتباه محدود شوند. |
– مناسب برای سناریوهایی که دستگاهها از رمز عبور حساب یکسان به صورت دستهای یا طبق قوانین استفاده میکنند. – هنگامی که مدیریت دستگاه متمرکز تر است و نیازی به کنترل دقیق دستگاه های فردی نیست. |
آدرس IP | – می تواند به سرعت تمام درخواست ها را از یک آدرس IP خاص محدود کند. – ساده و موثر برای دستگاه هایی با آدرس IP ثابت. |
– برای IP پویا یا دستگاه های تلفن همراه موثر نیست. – ممکن است به اشتباه سایر دستگاه های قانونی را تحت همان IP محدود کند. |
– مناسب برای سناریوهایی که دستگاه ها دارای آدرس IP ثابت هستند. – زمانی که نیاز به محدود کردن سریع ترافیک از یک IP خاص دارید و هیچ دستگاه قانونی دیگری تحت آن IP وجود ندارد. |
سه مورد فوق باید ابتدا Client ID را در اولویت قرار دهند.
2. مشتریان را از طریق رابط API ارائه شده EMQX حذف کنید
EMQX یک رابط API ارائه می دهد که به مدیران اجازه می دهد تا مشتریان MQTT خاصی را از سرور حذف کنند. لازم به ذکر است که اگر کلاینت MQTT مکانیزم اتصال مجدد را پیاده سازی کرده باشد، صرفاً حذف آن ممکن است کلاینت را به طور کامل حذف نکند.
مرجع: EMQX Documentation – Client Exclusion