Ma'lumotlarni yig'ish qatlami
IIoT platformasi ma'lumotlarni yig'ish qatlamining tuzilishi, uning demonlari, ma'lumotlar almashinuvi tamoyillari va boshqaruv qatlami bilan o'zaro aloqasi.
Ma’lumotlarni yig’ish qatlamining tuzilishi va tarkibi
Ma’lumotlarni yig’ish qatlami — bu qurilmalar bilan integratsiyani ta’minlovchi IIoT platformasining asosiy komponenti. U ixtisoslashgan ilovalar to’plamini o’z ichiga oladi, ularning har biri muayyan turdagi IoT-qurilmalar (hisoblagichlar, datchiklar va hokazo) bilan o’zaro aloqa qilishga mo’ljallangan. Bu ilovalar tarmoq xizmatlari sifatida ishlaydi, ajratilgan portlar orqali kiruvchi ulanishlarni qayta ishlaydi va qurilmalar bilan platforma o’rtasidagi ma’lumotlar uzatilishini boshqaradi. Bunday arxitektura turli xil jihozlar bilan ishlashda kengaytiriluvchanlik va moslashuvchanlikni kafolatlaydi.
Ma’lumotlarni yig’ish qatlami ilovalarining tuzilishi va tarkibi quyida keltirilgan:
flowchart TD
A(Household energy meters) <-->|Data transfer| B("Data collection daemon (Type-J)")
C(Industrial energy meters) <-->|Data transfer| D("Data collection daemon (Type-T)")
E(Smart sensors) <-->|Data transfer| F("Data collection daemon (DDT)")
subgraph " "
B("Data collection daemon (Type-J)") <--> I{"Balancer (Pgbouncer)"}
D("Data collection daemon (Type-T)") <--> I{"Balancer (Pgbouncer)"}
F("Data collection daemon (DDT)") <--> I{"Balancer (Pgbouncer)"}
X@{ shape: braces, label: "Data Polling Subsystem" }
end
I{"Balancer (Pgbouncer)"} <--> J[(DBMS PostgreSQL)]
Yakuniy qurilmalar bilan almashinuv TCP ulanishi orqali amalga oshiriladi, bunda har bir yig’ish demoni muayyan turdagi IoT-qurilmalarga xizmat ko’rsatish uchun o’zining amaliy almashinuv protokolini joriy etadi.
Bu demonlar quyida tavsiflangan bir qator umumiy arxitektura xususiyatlariga ega.
Arxitektura xususiyatlari
- Har bir konteyner muayyan protokolga ixtisoslashtirilgan ilovani o’z ichiga oladi.
- Qo’shimcha xarajatlarni minimallashtirish uchun yengil bazaviy obrazlar (bazaviy konfiguratsiyada
alpine) ishlatiladi. Shunga qaramay, buyurtmachining OT si uchun obrazlarni yig’ish mumkin. - Xizmatlar o’rtasidagi bog’liqliklarni (masalan, ma’lumotlar bazasiga kirishni) boshqarish uchun Docker Compose da
depends_onvahealth-checkbo’limlari ko’rsatiladi. - Compose demonlari yukni taqsimlash uchun bir nechta nusxada (replikalarda) ishga tushiriladi. Bunda har bir yig’ish demoni bir vaqtning o’zida o’n minglab ulanishlarga xizmat ko’rsata oladi.
- Balanslagich (HAProxy, Nginx Stream) trafikni Round Robin yoki Least Connections algoritmlari bo’yicha mavjud demonlarga yo’naltiradi.
- Bulutli muhitlarda metrikalar (protsessor yuki, ulanishlar soni) asosida avtomatik kengaytirishni qo’shish mumkin.
- Qurilmalar bilan barcha almashinuv fayllarga batafsil jurnallanadi, shunda muammolar va nosozliklar aniqlanganda uni tahlil qilish mumkin.
Ma’lumotlar almashinuvi tamoyillari
Quyida IoT-qurilma va yig’ish demoni o’rtasidagi aloqa seansining sxemasi keltirilgan:
sequenceDiagram
autonumber
participant D as IoT device
participant I as Data collection <br/>daemon
Note over I,D: Stages of interaction
D->>I: Session start, authentication
I-->>D: Sending request parameters
D->>I: Data acquisition
I-->>D: Sending the next session timeMa’lumotlar almashinuvini tashkil etish tamoyillari:
-
Aloqa seansini boshlash.
Aloqa seansi har doim IoT-qurilma tomonidan boshlanadi. Ma’lumotlarni yig’ish demoni bilan ulanish o’rnatilgandan so’ng, qurilma identifikatsiya paketini uzatadi. -
Autentifikatsiya jarayoni
Ma’lumotlarni yig’ish demoni qurilmani autentifikatsiya qiladi. Autentifikatsiya muvaffaqiyatli bo’lgan taqdirda u quyidagilarni bajaradi:- Saqlangan qurilma konfiguratsiyasini ma’lumotlar bazasidan olish.
- Joriy interfeys sozlamalarini qurilmaga yuborish.
-
Ma’lumotlarni uzatish
Olingan so’rov asosida qurilma yig’ish serveriga quyidagilarni uzatadi:- Qurilmaning joriy ko’rsatkichlari.
- Arxiv yozuvlari (mavjud bo’lsa).
-
Keyingi seansni rejalashtirish
Ma’lumotlarni qabul qilish tugagandan so’ng, yig’ish demoni:- Keyingi seansning vaqt belgisini shakllantiradi.
- Keyingi seansning vaqt belgisini qurilmaga uzatadi.
- Ulanishni uzishni boshlaydi.
-
Ma’lumotlarni qayta ishlash va saqlash
Olingan ma’lumot:- Tuzilmali JSON obyektlariga jamlanadi.
- Oraliq PostgreSQL ma’lumotlar bazasida saqlanadi.
- Muayyan demon protokoli spetsifikatsiyasiga muvofiq formatlanadi.
-
Boshqaruv tizimi bilan integratsiya
Ma’lumotlar tizimning yuqori darajasiga (boshqaruv quyi tizimiga) quyidagilar uchun mavjud bo’ladi:- Keyingi analitik qayta ishlash.
- Boshqaruv interfeyslarida vizualizatsiya.
- Avtomatlashtirilgan hisobotlarni shakllantirish.
Platformaning boshqaruv qatlami bilan o’zaro aloqa
Quyi tizimlar o’zaro bog’lanishi arxitekturasi
Ma’lumotlarni yig’ish demonlari tizimning yuqori darajasi (boshqaruv qatlami) bilan oraliq ma’lumotlar bazasi orqali integratsiya qilinadi. Bu o’zaro aloqani ta’minlash uchun joylashtirilgan PostgreSQL MBBT li Docker konteyneridan foydalaniladi.
Qurilmalar bilan muvaffaqiyatli o’zaro aloqa natijalari demonlar tomonidan avtomatik ravishda o’sha ma’lumotlar bazasining ixtisoslashgan jadvaliga saqlanadi, bu boshqaruv qatlami va qurilmalar o’rtasidagi ma’lumotlar uzatilishi shaffofligini ta’minlaydi.
Quyi tizimlar o’zaro aloqasi sxemasi quyida ko’rsatilgan:
flowchart LR
A@{ shape: procs, label: "Data Polling Subsystem"} -->|Readings data| B[(DBMS PostgreSQL)]
B[(DBMS PostgreSQL)] -->|Configuration| A@{ shape: procs, label: "Data Polling Subsystem"}
B[(DBMS PostgreSQL)] -->|Readings data| C@{ shape: procs, label: "Control Subsystem"}
C@{ shape: procs, label: "Control Subsystem"} -->|Configuration| B[(DBMS PostgreSQL)]Qurilma konfiguratsiyasi
Qurilma konfiguratsiyasi quyidagi ma’lumotlarni o’z ichiga oladi:
- Arxivlar bo’yicha oxirgi ko’rsatkichlar sanalari: soatlik, sutkalik, oylik. Bu parametrlar tegishli arxiv ma’lumotlarini qaysi sanadan boshlab o’qish kerakligini ko’rsatadi.
- Hisoblash asbobi kodi (Type-T protokolidan foydalanadigan IoT-qurilmalar uchun). Bu parametr faqat Type-T protokoliga xizmat ko’rsatadigan yig’ish demonlari uchun talab qilinadi va yig’ish serveriga qurilma bilan ishlash uchun qaysi algoritmdan foydalanishni bildiradi.
- Ketma-ket port tezligi (Type-T protokoli bo’yicha ishlaydigan IoT-qurilmalar uchun). Bu parametr IoT-qurilmaga hisoblagich bilan qanday tezlikda ma’lumot almashishi kerakligini bildiradi. Yig’ish demoni uni almashinuv seansi boshida yuboradi.
- Aloqa jadvali. Boshqaruv quyi tizimi barcha jadvallarni oraliq ma’lumotlar bazasida saqlaydi, yig’ish demoni esa olingan jadvallardan eng yaqin sanani hisoblab, uni qurilmaga yuboradi.
- Qurilmani boshqarish buyruqlari. IoT-qurilma turi va uning imkoniyatlariga qarab boshqarish buyruqlari quyidagilarni o’z ichiga oladi:
- IoT-qurilmaning telemetriya qismi dasturiy ta’minotini yangilash buyrug’i. Bu buyruqni olganda qurilma serverdan yangi mikrodasturni yuklab oladi va yangilashni bajaradi.
- Hisoblash asbobi konfiguratsiyasini qayta o’qish buyrug’i.
- Klapanni yopish yoki ochish buyrug’i (agar klapan mavjud bo’lsa va IoT-qurilma dasturiy ta’minoti tomonidan qo’llab-quvvatlansa).
- Hisoblash asbobining ish parametrlarini o’rnatish buyrug’i (modelga bog’liq).
- IoT-qurilmani qayta yuklash buyrug’i.
Qurilma konfiguratsiyasining asosiy qismi oraliq ma’lumotlar bazasida JSON formatida saqlanadi.
Konfiguratsiya namunasi quyida keltirilgan:
{
"settings": "1",
"day_event": 1706140800,
"hour_event": 1706140800,
"month_event": 1673857740,
"net_address": 58
}Bu yerda day_event, hour_event va month_event — mos ravishda sutkalik, soatlik va oylik arxivlarning oxirgi saqlangan yozuvlarining unixtime formatidagi vaqt belgilaridir.
Jadvallar alohida, shuningdek JSON formatida saqlanadi. Jadval satrining o’zi CRON formatida shakllantiriladi va qayta ishlanadi. Bunday yondashuv har qanday jadvallarni sozlash va qayta ishlashda moslashuvchanlikni ta’minlaydi.
Quyida qurilma uchun bir nechta jadvalni saqlash namunasi keltirilgan:
[
{ "crontab": "10 * * * *", "schedule_id": 6 },
{ "crontab": "40 * * * *", "schedule_id": 7 }
]Bu jadvallarga ko’ra, qurilma har soatning 10- va 40-daqiqasida ulanishi kerak. Demon qurilma bilan aloqa qilish vaqtida eng mos jadvalni o’zi aniqlaydi va eng yaqinini uzatadi.
Aloqador mavzular
Ushbu sahifa foydali boʻldimi?
Fikr-mulohazangiz uchun rahmat!