Деректерді жинау деңгейі
IIoT платформасының деректерді жинау деңгейінің құрылымы, оның демондары, деректермен алмасу қағидаттары және басқару деңгейімен өзара әрекеттесуі.
Деректерді жинау деңгейінің құрылымы мен құрамы
Деректерді жинау деңгейі — бұл құрылғылармен интеграцияны қамтамасыз ететін IIoT платформасының негізгі компоненті. Ол мамандандырылған қолданбалар жинағын қамтиды, олардың әрқайсысы IoT-құрылғылардың белгілі бір түрімен (есептегіштермен, датчиктермен және т. б.) өзара әрекеттесуге арналған. Бұл қолданбалар желілік қызметтер ретінде жұмыс істейді: кіріс қосылымдарды бөлінген порттар арқылы өңдейді әрі құрылғылар мен платформа арасында деректер беруді басқарады. Мұндай архитектура әртекті жабдықпен жұмыс істегенде масштабталушылық пен икемділікке кепілдік береді.
Деректерді жинау деңгейі қолданбаларының құрылымы мен құрамы төменде келтірілген:
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)]
Соңғы құрылғылармен алмасу TCP-қосылым арқылы орындалады, бұл ретте әрбір жинау демоны IoT-құрылғылардың белгілі бір түріне қызмет көрсету үшін алмасудың өзіндік қолданбалы хаттамасын іске асырады.
Бұл демондар бірқатар ортақ архитектуралық ерекшеліктерге ие, олар төменде сипатталған.
Архитектура ерекшеліктері
- Әрбір контейнер белгілі бір хаттамаға мамандандырылған қолданбаны қамтиды.
- Үстеме шығындарды азайту үшін жеңіл базалық образдар (базалық конфигурацияда
alpine) қолданылады. Дегенмен тапсырыс берушінің ОЖ-сіне арналған образдарды құрастыруға болады. - Қызметтер арасындағы тәуелділіктерді (мысалы, дерекқорға қол жеткізуді) басқару үшін Docker Compose-та
depends_onжәнеhealth-checkсекциялары көрсетіледі. - Жүктемені тарату үшін compose демондары бірнеше дананы (репликаны) іске қосады. Бұл ретте әрбір жинау демоны бір мезгілде ондаған мың қосылымға қызмет көрсете алады.
- Жүктеме теңгерімдеуіші (HAProxy, Nginx Stream) трафикті қолжетімді демондарға Round Robin немесе Least Connections алгоритмдері бойынша бағыттайды.
- Бұлттық орталарда метрикалар (процессор жүктемесі, қосылымдар саны) негізінде автоматты масштабтауды қосуға болады.
- Құрылғылармен барлық алмасу файлдарға егжей-тегжейлі журналданады, осылайша мәселелер мен ақаулар анықталған жағдайда оны талдауға болады.
Деректермен алмасу қағидаттары
Төменде IoT-құрылғы мен жинау демоны арасындағы байланыс сеансының сұлбасы келтірілген:
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 timeДеректермен алмасуды ұйымдастыру қағидаттары:
-
Байланыс сеансын бастамалау.
Байланыс сеансын әрқашан IoT-құрылғы бастамалайды. Деректерді жинау демонымен қосылым орнатқаннан кейін құрылғы сәйкестендіру пакетін береді. -
Аутентификация рәсімі
Деректерді жинау демоны құрылғыны аутентификациялайды. Аутентификация сәтті өткен жағдайда ол мынаны орындайды:- Құрылғының сақталған конфигурациясын дерекқордан шығарып алу.
- Құрылғыға ағымдағы интерфейс параметрлерін жіберу.
-
Деректер беру
Алынған сұрау негізінде құрылғы жинау серверіне мынаны береді:- Құрылғының ағымдағы көрсеткіштерін.
- Мұрағаттық жазбаларды (бар болса).
-
Келесі сеансты жоспарлау
Деректерді қабылдау аяқталғаннан кейін жинау демоны:- Келесі сеанстың уақыт белгісін қалыптастырады.
- Келесі сеанстың уақыт белгісін құрылғыға береді.
- Қосылымды үзуді бастамалайды.
-
Деректерді өңдеу және сақтау
Алынған ақпарат:- Құрылымдалған JSON-нысандарға біріктіріледі.
- Аралық PostgreSQL дерекқорында сақталады.
- Нақты демон хаттамасының спецификациясына сәйкес пішімделеді.
-
Басқару жүйесімен интеграция
Деректер жүйенің жоғарғы деңгейіне (басқару ішкі жүйесіне) мыналар үшін қолжетімді болады:- Одан әрі аналитикалық өңдеу.
- Басқару интерфейстерінде визуализациялау.
- Автоматтандырылған есептерді қалыптастыру.
Платформаның басқару деңгейімен өзара әрекеттесу
Ішкі жүйелердің өзара байланыс архитектурасы
Деректерді жинау демондары жүйенің жоғарғы деңгейімен (басқару деңгейімен) аралық дерекқор арқылы интеграцияланады. Осы өзара әрекеттесуді қамтамасыз ету үшін орналастырылған PostgreSQL ДҚБЖ бар Docker-контейнер пайдаланылады.
Құрылғылармен сәтті өзара әрекеттесу нәтижелерін демондар сол дерекқордың мамандандырылған кестесінде автоматты түрде сақтайды, бұл басқару деңгейі мен құрылғылар арасында деректер берудің ашықтығын қамтамасыз етеді.
Ішкі жүйелердің өзара әрекеттесу сұлбасы төменде көрсетілген:
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)]Құрылғы конфигурациясы
Құрылғы конфигурациясы мынадай ақпаратты қамтиды:
- Мұрағаттар бойынша соңғы көрсеткіштердің күндері: сағаттық, тәуліктік, айлық. Бұл параметрлер тиісті мұрағаттың деректерін қай күннен бастап оқу керектігін көрсетеді.
- Есепке алу аспабының коды (Type-T хаттамасын пайдаланатын IoT-құрылғылар үшін). Бұл параметр тек Type-T хаттамасына қызмет көрсететін жинау демондары үшін қажет және жинау серверіне құрылғымен жұмыс істеу үшін қандай алгоритм қолдану керектігін хабарлайды.
- Тізбекті порттың жылдамдығы (Type-T хаттамасы бойынша жұмыс істейтін IoT-құрылғылар үшін). Бұл параметр IoT-құрылғыға есептегішпен қандай жылдамдықпен деректермен алмасу керектігін хабарлайды. Жинау демоны оны алмасу сеансының басында жібереді.
- Байланыс кестесі. Басқару ішкі жүйесі барлық кестелерді аралық дерекқорда сақтайды, ал жинау демоны алынған кестелерден ең жақын күнді есептейді әрі оны құрылғыға жібереді.
- Құрылғыны басқару командалары. IoT-құрылғының түрі мен оның мүмкіндіктеріне байланысты басқару командалары мыналарды қамтиды:
- IoT-құрылғының телеметриялық бөлігінің бағдарламалық жасақтамасын жаңарту командасы. Бұл команданы алған кезде құрылғы серверден жаңа микробағдарламаны жүктеп алады әрі жаңартуды орындайды.
- Есепке алу аспабының конфигурациясын кері оқу командасы.
- Клапанды жабу немесе ашу командасы (клапан бар болса және IoT-құрылғының бағдарламалық жасақтамасымен қолдау көрсетілсе).
- Есепке алу аспабының жұмыс параметрлерін орнату командасы (модельге байланысты).
- IoT-құрылғыны қайта жүктеу командасы.
Құрылғы конфигурациясының негізгі бөлігі аралық дерекқорда JSON пішімінде сақталады.
Конфигурация мысалы төменде келтірілген:
{
"settings": "1",
"day_event": 1706140800,
"hour_event": 1706140800,
"month_event": 1673857740,
"net_address": 58
}Мұнда day_event, hour_event және month_event — бұл тиісінше тәуліктік, сағаттық және айлық мұрағаттардың соңғы сақталған жазбаларының unixtime пішіміндегі уақыт белгілері.
Кестелер бөлек, сондай-ақ JSON пішімінде сақталады. Кесте жолының өзі CRON пішімінде қалыптасады әрі өңделеді. Мұндай тәсіл кез келген кестелерді баптау және өңдеу кезінде икемділікті қамтамасыз етеді.
Төменде құрылғы үшін бірнеше кестені сақтау мысалы келтірілген:
[
{ "crontab": "10 * * * *", "schedule_id": 6 },
{ "crontab": "40 * * * *", "schedule_id": 7 }
]Осы кестелерге сәйкес құрылғы әр сағаттың 10-шы және 40-шы минутында қосылуы тиіс. Демон құрылғымен байланыс жасаған сәтте ең қолайлы кестені өзі анықтайды әрі ең жақынын береді.
Қатысты тақырыптар
Бұл бет пайдалы болды ма?
Пікіріңіз үшін рақмет!