تفاصيل العمل

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

على مستوى الأجهزة (Edge Layer)، يتم التعامل مع الحساسات والمشغلات والآلات مباشرة، ويتم إرسال البيانات منها إلى النظام باستخدام بروتوكولات مثل MQTT للاتصال المستمر، وHTTP في بعض الحالات الخاصة بالتكامل.

في طبقة الربط (IoT Hub)، تم الاعتماد على EMQX كـ MQTT Broker لإدارة الاتصال مع الأجهزة واستقبال الرسائل منها. البيانات يتم تمريرها بعد ذلك إلى Kafka لمعالجتها على شكل Events، بحيث يمكن التعامل مع تدفق البيانات بشكل مستمر وقابل للتوسع. كما تم استخدام Spring Cloud Stream لربط النظام الخلفي مع هذه التدفقات بطريقة منظمة وبدون تعقيد في التعامل مع الرسائل.

بالنسبة للتخزين، تم توزيع البيانات حسب طبيعتها:

- البيانات الزمنية مثل قراءات الحساسات يتم تخزينها في InfluxDB

- البيانات العلائقية في PostgreSQL

- البيانات غير المهيكلة (Documents) في MongoDB

- واستخدام Redis لتحسين الأداء عبر الكاش

الواجهة الخلفية مبنية باستخدام Spring Boot، وهي مسؤولة عن إدارة المستخدمين والصلاحيات، بالإضافة إلى استقبال البيانات ومعالجتها، وإرسال الأوامر للأجهزة عن طريق MQTT، وكذلك تنفيذ سيناريوهات الأتمتة.

في الواجهة الأمامية، يتم استخدام Grafana لعرض بيانات الأجهزة والحساسات بشكل مباشر، مع الاعتماد على Micrometer وPrometheus لجمع الـ metrics ومراقبة أداء النظام.

على مستوى التشغيل، يتم بناء الخدمات باستخدام Docker وتشغيلها على Kubernetes لإدارة الحاويات والتوسع. كما تم استخدام Vault لحفظ البيانات الحساسة مثل المفاتيح وكلمات المرور، وService Mesh للتحكم في حركة المرور بين الخدمات وإضافة التتبع الموزع بدون الحاجة لتعديلات داخل الكود.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
1
تاريخ الإضافة
المهارات