EdgeX 2.0 را معرفی کرد، یک پلت فرم باز و ماژولار برای فعال کردن قابلیت همکاری بین دستگاهها، برنامهها و سرویسهای IoT. این پلتفرم به سخت افزار و سیستم عامل فروشنده خاصی وابسته نیست و توسط یک گروه کاری مستقل زیر نظر بنیاد لینوکس توسعه داده شده است. اجزای پلتفرم در Go نوشته شده و تحت مجوز Apache 2.0 توزیع شده اند.
EdgeX به شما امکان می دهد دروازه هایی ایجاد کنید که دستگاه های IoT موجود را به هم متصل می کند و داده ها را از حسگرهای مختلف جمع آوری می کند. این دروازه تعامل با دستگاه ها را سازماندهی می کند و پردازش اولیه، تجمیع و تجزیه و تحلیل اطلاعات را انجام می دهد و به عنوان یک پیوند میانی بین شبکه ای از دستگاه های اینترنت اشیا و مرکز کنترل محلی یا زیرساخت مدیریت ابر عمل می کند. دروازهها همچنین میتوانند هندلرهایی را که به صورت میکروسرویس بستهبندی شدهاند اجرا کنند. تعامل با دستگاه های اینترنت اشیا را می توان از طریق یک شبکه سیمی یا بی سیم با استفاده از شبکه های TCP/IP و پروتکل های خاص (غیر IP) سازماندهی کرد.
دروازه ها برای اهداف مختلف را می توان در زنجیره ای ترکیب کرد، به عنوان مثال، دروازه لینک اول می تواند مشکلات مدیریت دستگاه (مدیریت سیستم) و امنیت را حل کند، و دروازه لینک دوم (سرور مه) می تواند داده های ورودی را ذخیره کند، تجزیه و تحلیل انجام دهد. و خدمات ارائه دهند. سیستم ماژولار است، بنابراین عملکرد بسته به بار به گرههای جداگانه تقسیم میشود: در موارد ساده، یک دروازه کافی است، اما برای شبکههای بزرگ IoT میتوان کل خوشه را مستقر کرد.
EdgeX مبتنی بر پشته باز Fuse IoT است که در Dell Edge Gateways برای دستگاه های IoT استفاده می شود. این پلتفرم را می توان بر روی هر سخت افزاری، از جمله سرورهای مبتنی بر پردازنده های x86 و ARM با لینوکس، ویندوز یا macOS نصب کرد. این پروژه شامل مجموعه ای از میکروسرویس های آماده برای تجزیه و تحلیل داده ها، امنیت، مدیریت و حل مشکلات مختلف است. از زبانهای جاوا، جاوا اسکریپت، پایتون، Go و C/C++ میتوان برای توسعه میکروسرویسهای خود استفاده کرد. یک SDK برای توسعه درایورهای دستگاه ها و حسگرهای IoT ارائه شده است.
تغییرات اصلی:
- یک رابط وب جدید پیاده سازی شده است که با استفاده از چارچوب JS Angular ایجاد شده است. از جمله مزایای رابط کاربری گرافیکی جدید می توان به سهولت نگهداری و گسترش عملکرد، وجود جادوگر برای اتصال دستگاه های جدید، ابزارهایی برای تجسم داده ها، رابط کاربری بهبود یافته قابل توجهی برای مدیریت ابرداده و توانایی نظارت بر وضعیت سرویس ها (حافظه) اشاره کرد. مصرف، بار پردازنده و غیره).
- API را به طور کامل بازنویسی کرد تا با میکروسرویس ها کار کند، که اکنون مستقل از پروتکل ارتباطی است، ایمن تر است، ساختار خوبی دارد (از JSON استفاده می کند) و داده های پردازش شده توسط سرویس را بهتر ردیابی می کند.
- افزایش کارایی و توانایی ایجاد تنظیمات سبک وزن. مؤلفه Core Data که وظیفه ذخیره داده ها را بر عهده دارد، اکنون اختیاری است (به عنوان مثال، زمانی که فقط نیاز به پردازش داده ها از حسگرها بدون نیاز به ذخیره دارید، می توان آن را حذف کرد).
- قابلیت اطمینان افزایش یافته و ابزارهای تضمین کیفیت خدمات (QoS) گسترش یافته است. هنگام انتقال دادهها از سرویسهای دستگاه (سرویسهای دستگاه، مسئول جمعآوری دادهها از حسگرها و دستگاهها) به سرویسهای پردازش و انباشت داده (سرویسهای کاربردی)، اکنون میتوانید از گذرگاه پیام (Redis Pub/Sub، 0MQ یا MQTT) بدون اتصال استفاده کنید. به HTTP - پروتکل REST و تنظیم اولویت های QoS در سطح واسطه پیام. از جمله انتقال مستقیم داده از Device Service به Application Service با کپی اختیاری به سرویس Core Data. پشتیبانی از انتقال داده از طریق پروتکل REST حفظ می شود، اما به طور پیش فرض استفاده نمی شود.
- یک ماژول جهانی (ارائه دهنده مخفی) برای بازیابی داده های مخفی (رمزهای عبور، کلیدها و غیره) از ذخیره سازی های امن مانند Vault پیاده سازی شده است.
- ابزار Consul برای نگهداری رجیستری از خدمات و تنظیمات، و همچنین برای مدیریت دسترسی و احراز هویت استفاده می شود. API Gateway از تماس با Consul API پشتیبانی می کند.
- تعداد فرآیندها و سرویسهایی را که در کانتینرهای Docker به حقوق ریشه نیاز دارند به حداقل رساند. محافظت در برابر استفاده از Redis در حالت ناامن اضافه شده است.
- پیکربندی ساده شده API Gateway (Kong).
- نمایه های دستگاه ساده شده، که پارامترهای حسگر و دستگاه و همچنین اطلاعات مربوط به داده های جمع آوری شده را تعریف می کند. نمایه ها را می توان در فرمت های YAML و JSON تعریف کرد.
- خدمات دستگاه جدید اضافه شده است:
- CoAP (نوشته شده در C) با اجرای پروتکل برنامه محدود.
- GPIO (نوشته شده در Go) برای اتصال به میکروکنترلرها و سایر دستگاهها، از جمله بردهای Raspberry Pi، از طریق درگاههای GPIO (General Pin Input/Output).
- LLRP (نوشته شده در Go) با اجرای پروتکل LLRP (Low Level Reader Protocol) برای اتصال به تگ خوان های RFID.
- UART (نوشته شده در Go) با پشتیبانی از UART (گیرنده/فرستنده ناهمزمان جهانی).
- قابلیتهای Application Services که وظیفه تهیه و صدور دادهها برای پردازش بعدی آنها در سیستمها و برنامههای ابری را بر عهده دارد، گسترش یافته است. اضافه شدن پشتیبانی برای فیلتر کردن داده ها از حسگرها بر اساس نام نمایه دستگاه و نوع منبع. امکان ارسال داده به چندین گیرنده توسط یک سرویس و اشتراک در چندین گذرگاه پیام پیاده سازی شده است. یک الگو برای ایجاد سریع خدمات برنامه کاربردی خود پیشنهاد شده است.
- شمارههای پورت انتخابشده برای میکروسرویسها با محدودههای توصیهشده توسط Internet Assigned Numbers Authority (IANA) برای استفاده خصوصی، همسو هستند، که از تداخل با سیستمهای موجود جلوگیری میکند.
منبع: opennet.ru