PowerGridDocumentation
Introduction

Open-source research

21 min readdocs/research/PowerGrid_Open_Source_and_Project_Knowledge_MN.mdEdit on GitHub

2026 оны 10 сарын 2 • Хувилбар 1.2

This page has not been translated yet — it is shown in Mongolian, the language it is written in.

1.2 хувилбарын өөрчлөлт: Go дээрх DLMS сангууд (gxdlms-go, gosem), EPRI dlms-access-point, EnAccess OpenSmartMeter, OpenMeter-ийг нэмэв; эрхийн сервер (OpenFGA, SpiceDB) ба pgTAP-ийг нэмэв; TimescaleDB-ийн continuous aggregate-ийн лицензийн заагийг тодруулав; FN-09-ийг шинэчилж FN-13–FN-15-ыг нэмэв. Өгөгдөлд хандах эрхийн дэлгэрэнгүй загварыг олон улсын судалгааны 17 дугаар бүлэг-т бичсэн.

011. Зорилго ба гол шийдвэр

Монгол Улсын нийт хамрах хүрээг 1,000,000 цахилгааны тоолуур гэж тооцож, PowerGrid-ийн хөгжүүлэлтэд ашиглах программын бүрэлдэхүүн, өөрсдөө бүтээх бизнесийн логик, багийн эзэмших мэдлэгийг тодорхойлов. Нэг сая нь захиалагчийн төлөвлөлтийн таамаглал; албан ёсны тооллогын статистик биш. Бүх төхөөрөмж өнөөдөр алсаас уншигдах боломжтой гэж үзээгүй.

Баталсан бүтээгдэхүүний чиглэл: PowerGrid бол Монгол Улсын 1 сая тоолуурыг хамрах зорилготой, өөрсдийн хөгжүүлэх үндэсний шинэ систем. Өөрийн домэйн загвар, API, хэрэглэгчийн интерфэйс, бизнесийн дүрэм, эрхийн бүтэц, ашиглалтын удирдлагатай байна. Нээлттэй эхийн төслүүдийн сайн функционал, ажлын урсгал, алдааны боловсруулалт, архитектурын шийдлийг судалж, PowerGrid-ийн бие даасан шаардлага болгон боловсруулна.

Энэ тайлангийн бүтээгдэхүүн сонгох, адаптер турших, программ суулгах саналууд нь техникийн боломжит хувилбарын лавлагаа бөгөөд батлагдсан stack биш. Гол үр дүн нь “ямар бүтээгдэхүүн суулгах вэ” гэсэн жагсаалтаас илүү “PowerGrid яг юу хийдэг, ямар дүрмээр ажилладаг, зөв ажилласныг хэрхэн батлах вэ” гэсэн функционал тодорхойлолт байна. Ерөнхий зориулалтын сан, протоколын SDK, өгөгдлийн санг дахин ашиглах эсэхийг функционал ба архитектурын шаардлага гарсны дараа тусад нь шийднэ.

Бүтээгдэхүүний чадвар, лицензийн баримтыг албан ёсны репозиторий болон баримтаас авсан. “PowerGrid-д санал” гэсэн шийдвэрүүд нь энэ судалгааны инженерийн үнэлгээ. Нэг сая төхөөрөмжийн бодит туршилт, бүтээгдэхүүнүүдийн харьцуулсан benchmark хийгээгүй; серверийн тоо болон баталгаатай throughput амлаагүй.

022. Өмнөх судалгаанд хийх лицензийн залруулга

ThingsBoard-ийн 2026-09-29-ний мэдэгдлээр 4.4-өөс BUSL 1.1 бүхий source-available загварт шилжсэн. CE 4.3 нь Apache 2.0 хэвээр гэж тайлбарласан. Иймээс өмнөх тайлангийн ThingsBoard-ийг хувилбар ялгалгүй Apache 2.0 гэж нэрлэсэн мөрийг шинэчилнэ. Албан мэдэгдэл

Одоогийн LICENSE-д арилжааны үнэгүй ашиглалтыг 100 төхөөрөмж, нэг серверээр; арилжааны бусыг 1,000 төхөөрөмжөөр хязгаарласан бөгөөд нэмэлт нөхцөлтэй. Нэг сая тоолуурын PowerGrid нь энэ үнэгүй хүрээнд багтахгүй. Энэ лицензийн мэдээлэл нь ThingsBoard код эсвэл бүтээгдэхүүнийг шууд ашиглах хувилбарт хамаарна. PowerGrid-ийн баталсан чиглэл нь өөрийн бүтээгдэхүүн хөгжүүлэх тул ThingsBoard-ийн бизнесийн үйлдэл, хэрэглэгчийн урсгалыг лавлагаа болгон судална. Хуучин Apache хувилбарыг хадгалах бол шинэчлэлт, хамгаалалтын засварыг хэн хариуцахыг тооцно. ThingsBoard LICENSE

GitHub дээр эх код харагддаг, үнэ төлбөргүй татагддаг, OSI утгаар нээлттэй эхтэй гэдэг нь өөр ойлголт. Сонголтын бүртгэлд бүтээгдэхүүний нэрээс гадна хувилбар, commit, лицензийн файл, шаардлагатай боломж, шинэчлэх замыг хадгална.

033. Бүрэлдэхүүний харьцуулалт

Доорх лицензүүд нь шалгасан upstream эхийн нөхцөл. Cloud үйлчилгээ, enterprise багц, plugin, контейнерийн дагалдах dependency тусдаа нөхцөлтэй байж болно. Ангилал нь PowerGrid-д хэрэглэх санал бөгөөд нийлүүлэгчийн баталгаа биш.

ТөсөлҮүрэгШалгасан лицензPowerGrid-д санал
Gurux DLMS PythonDLMS/COSEM харилцааGPL-2.0; dual licensingБодит төхөөрөмжийн PoC-д эхэлж турших
Gurux gxdlms-goGo дээрх DLMS/COSEM client/serverGPL-2.0; dual licensingGo HES-ийн нэр дэвшигч; 2026-10-02-нд 28 commit, албан release байхгүй тул Python/C хувилбартай харьцуулж турших
Circutor gosemGo дээрх DLMS/COSEM encoder/decoderMITСүүлийн хувилбар 2023-05-24, зохиогч нь сургалтын төсөл гэж тодорхойлсон; production-д биш, кодын лавлагаа
EPRI dlms-access-pointТоолуур ба HES хоорондын access point-ийн жишигBSD-3-ClauseКонцентратор/gateway-ийн заагийг ойлгох, лабораторийн туршилт
EnAccess OpenSmartMeterGSM, prepaid хямд тоолуурын hardware/firmwareMIT«Functional prototype»; үндэсний billing тоолуур биш, prepaid урсгалын санаа
OpenMeterGo дээрх usage event цуглуулах, нэгтгэх (Kafka, ClickHouse)Apache-2.0Цахилгаан тоолуурт зориулаагүй; ingestion ба dedup-ийн архитектурын лавлагаа
OpenMUCОлон протоколын gateway/frameworkGPLv3; тусдаа лиценз санал болгодогModbus болон хуучин төхөөрөмжийн шаардлага батлагдвал
PostgreSQLБүртгэл, төлбөр, транзакцын өгөгдөлPostgreSQL LicenseҮндсэн сан
NATS Server / JetStreamХадгалалттай мессеж, worker урсгалApache-2.0Эхний туршилтын queue нэр дэвшигч
Apache KafkaТархсан event streamingApache-2.0NATS-ийн альтернатив; урт replay, олон хэрэглэгчтэй урсгалд харьцуулах
ClickHouseБаганан аналитик санApache-2.0Нэг саяын аналитикийн PoC-д оруулах
KeycloakIdentity, SSO, хэрэглэгчийн authenticationApache-2.0Байгууллагын нэвтрэлтийн суурь
OpenFGAZanzibar загварын эрхийн сервер (Go)Apache-2.0Олон систем нэг эрхийг хуваалцах үед PDP-ийн нэр дэвшигч
SpiceDBZanzibar загварын эрхийн сервер (Go), caveat буюу ABAC нөхцөлтэйApache-2.0OpenFGA-тай ижил нөхцөлөөр харьцуулах
pgTAPPostgreSQL-ийн unit testPostgreSQL LicenseRLS ба эрхийн матрицын regression тест
OpenBaoSecret, certificate, key удирдлагаMPL-2.0Төхөөрөмжийн нууцын удирдлагад турших
PrometheusСистемийн metricsApache-2.0Эхний үеэс
Grafana OSSАшиглалтын dashboardAGPL-3.0-only, зарим exceptionДотоод ажиллагааны харагдац
pgBackRestPostgreSQL backup, restoreMITЭхний үеэс сэргээх туршилттай
PostGISБайршил, газарзүйн queryGPL-2.0 гэж repository тэмдэглэсэнGIS хэрэгцээгээр нэмэх
Eclipse MosquittoMQTT brokerEPL-2.0 OR BSD-3-ClauseMQTT gateway байгаа үед edge/lab-д
pandapowerЦахилгаан сүлжээний тооцооBSD-3-ClauseСүлжээний загвар бэлэн болсон дараа
TimescaleDBPostgreSQL time-series extensionApache хэсэг + Timescale License хэсэгХэрэглэх feature-ийн нөхцөлийг ялгаж харьцуулах. Continuous aggregate, columnstore, retention policy нь TSL хэсэгт (editions)
ThingsBoard 4.4+IoT платформBUSL 1.1, source-availableҮнэгүй OSS цөмд оруулахгүй; арилжааны альтернатив
GXF / OSGPSmart-grid платформын архитектурын жишигApache-2.0; retiredКод, тестийн санаа судлах; шинэ production суурь болгохгүй

044. Тоолууртай холбогдох давхарга

4.1 Gurux-ийг хэрхэн хэрэглэх вэ

Gurux нь DLMS өгөгдлийг үүсгэх, задлах сан; transport-ыг өөр холболтын сангаар хэрэгжүүлж болдог. Төсөл dual license нөхцөлтэй бөгөөд техникийн тусламжийг GitHub issue-ээс илүү өөрийн форумаар авахыг заасан. Албан хуудсанд 2026 оны шинэ release-үүд харагдаж байгаа нь хөгжүүлэлтийн идэвхийн нэг нотолгоо боловч SLA биш. Repository, DLMS тайлбар ба release холбоосууд

PowerGrid-д санал: Python адаптераар эхний лабораторийн уншилтыг гаргаж, Go backend-тэй version-тэй API эсвэл мессежийн гэрээгээр холбоно. Production хэлний сонголтыг бодит тоолуурын session хугацаа, санах ой, алдааны нөхөн сэргэлтээр шийднэ. Нийт платформын хэл Go байна гэдэг шалтгаанаар DLMS протоколыг шинээр бичих шаардлагагүй. Go дээрх Gurux gxdlms-go бий ч 2026-10-02-ны байдлаар албан release-гүй, цөөн commit-тэй тул бодит тоолуур дээр Python эсвэл C хувилбартай ижил тестээр харьцуулсны дараа HES-ийн цөм болгох эсэхийг шийднэ. Gurux-ийн Go сан мөн GPL-2.0 ба арилжааны давхар лицензтэй.

Адаптерийн гаралт нь meter ID, source ID, profile/OBIS, эх timestamp, UTC timestamp, нэгж, scaler, raw value, тайлбарласан утга, чанарын төлөв, receipt ID-тай байна. Холболтын нууцыг payload-д оруулахгүй. Төхөөрөмж бүрийн session-ийг давхар эзэмшихээс хамгаалж, timeout, retry, jitter, backfill дарааллыг PowerGrid хэрэгжүүлнэ.

PoC-ийн гарах баримт: хоёр өөр загвар дээр 24 цагийн профиль уншсан үр дүн; төхөөрөмжийн дэлгэцтэй тулгалт; зориудын тасалдлын дараах нөхөн таталт; timezone болон scaler-ийн жишиг; firmware тус бүрийн нийцлийн хүснэгт. Simulator дээр амжилттай болсон нь бодит төхөөрөмжийн баталгаа болохгүй.

GPL болон арилжааны хувилбарын сонголтыг бүтээх, өөрчлөх, түгээх загвартай хамт баримтжуулна. Тусдаа процесс болгосон гэдэг нь лицензийн бүх үүрэг автоматаар арилсан гэсэн дүгнэлт биш.

4.2 OpenMUC ба MQTT-ийн байр суурь

OpenMUC нь Java/OSGi framework бөгөөд Modbus, IEC 61850, IEC 60870-5-104, IEC 62056-21 зэрэг драйвер, MQTT/AMQP холболтын боломжийг жагсаасан. Энэ жагсаалтаас бүх загварын DLMS тоолуурыг автоматаар дэмжинэ гэж дүгнэхгүй. OpenMUC

PowerGrid-д трансформаторын хэмжүүр, үйлдвэрлэлийн төхөөрөмж, хуучин локал уншилтын gateway шаардлагатай бол туршина. Edge дээр түр хадгалалт, timestamp, sequence, replay-г тодорхой болгоно. Java/OSGi ашиглалтын мэдлэг, шинэчлэлт, тусдаа лицензийн зардлыг тооцно.

Mosquitto нь MQTT broker болон клиент хэрэгслүүдтэй. Төслийн тайлбар, лиценз. MQTT нь бүх тоолуурын төрөлх протокол гэж үзэхгүй. Gateway MQTT руу хөрвүүлж болох ч DB-д давхаргүй хадгалах, төхөөрөмж дээр команд үнэхээр биелсэн эсэхийг broker дангаараа батлахгүй. Нэг сая шууд холболтын HA шаардлагыг лабораторийн нэг broker-оос шууд дүгнэхгүй.

055. Өгөгдлийн платформ ба queue сонголт

5.1 PostgreSQL ба ClickHouse

PostgreSQL-ийн partitioning нь том хүснэгтийг хуваах, хугацаагаар өгөгдөл удирдах, тодорхой query-г оновчлох боломжтой. Энэ нь автоматаар олон серверт хуваарилах баталгаа биш. Partitioning баримт

PowerGrid-ийн customer, service point, meter mounting history, tariff version, command, payment ledger-ийг PostgreSQL-д authoritative байдлаар хадгална. Хэмжилтийн эхний туршилтад partition, batch insert, зөв индекс, өдөр/сарын aggregate ашиглана. Нэг сая тоолуурын жилийн бүх интервалын online query-г нэг PostgreSQL node даана гэж урьдчилан батлахгүй.

ClickHouse нь баганан аналитик сан. Repository. PowerGrid-д бүс, трансформатор, хоног, тарифын бүлгийн тайланг хурдасгах нэр дэвшигч. Төлбөрийн transaction ledger-ийг орлуулахгүй. Шинэчилсэн хэмжилт аналитик руу очихдоо measurement_id, revision, quality, source watermark-аа хадгалж, аль хувилбар хүчинтэйг query бүр зөв хэрэглэх ёстой. Хоёр сангийн хоцролт, нийлбэрийн зөрүүг reconciliation job шалгана.

TimescaleDB-ийн эх нь Apache болон Timescale License хэсгүүдтэй. Тиймээс “PostgreSQL extension учраас бүх боломж нь Apache” гэж тооцохгүй. Лицензийн зааг. Шаардлагатай feature-үүдийг сонгосон build дээр нь үнэлж байж PostgreSQL-only болон ClickHouse хувилбартай харьцуулна.

5.2 NATS JetStream эсвэл Kafka

Core NATS нь хадгалалтгүй, тухайн үед холбогдсон subscriber-д хүргэдэг бол JetStream нь хадгалалт, replay, acknowledgment бүхий урсгал нэмдэг. JetStream. PowerGrid-д хэмжилтийг Core NATS дангаар дамжуулж, хүлээн авагч тасарсан үед алдах загвар сонгохгүй.

Kafka нь тархсан event streaming платформ. Apache Kafka. Сонголтыг “нэг сая” гэсэн тоогоор дангаар шийдэхгүй; retention, replay, consumer-уудын тоо, peak throughput, багийн ашиглалтын чадвараар харьцуулна.

Шийдвэрийн асуултNATS JetStream турших нөхцөлKafka турших нөхцөл
Эхний хэрэглээGo worker, ingestion, command job-ийн тогтвортой queueОлон системийн нэгдсэн event stream
ReplayТохирсон богино/дунд хадгалалтын цонхОлон consumer, урт replay шаардлага
АшиглалтБаг JetStream-ийн replication, retention, consumer-ийг эзэмшихБаг Kafka partition, replication, lag, rebalance-ийг эзэмших
Шийдвэрийн нотолгооRestart, failover, replay, duplicate-ийн туршилтИжил dataset, ижил durability нөхцөлтэй харьцуулалт

Санал: эхний PoC-д JetStream-ийг авч, Kafka-тай ижил нөхцөлөөр харьцуулсны дараа үндсэн нэг queue сонгоно. Хоёуланг нь зэрэг production-д нэвтрүүлэх нэмэлт үйл ажиллагааны ачааллыг эхний шатанд авахгүй.

DB commit амжилттай боловч ack алдагдах тохиолдолд мессеж давтан ирнэ. Иймээс idempotency_key, transactional outbox/inbox, retry-ийн хязгаар, алдаатай мессежийн тусдаа дараалал, дахин ажиллуулах эрх хэрэгтэй. “Exactly once” нэртэй боломж нь тоолуур → queue → DB → billing бүх замын зөв байдлыг дангаар батлахгүй.

066. Нэвтрэлт, нууц, ашиглалтын бүрэлдэхүүн

Keycloak нь identity болон authentication суурь. Repository. PowerGrid нь token-оос гадна байгууллага, бүс, service point-ийн эрхийг backend, export, background job бүрд шалгана. Нэвтрэх эрхтэй хүн бүр таслах эрхтэй болохгүй; командын зөвшөөрлийг тусдаа permission болгоно.

Эрхийн давхарга. Keycloak нь «хэн бэ» гэдгийг, PowerGrid-ийн authz давхарга нь «юуг харах, хийх вэ» гэдгийг шийднэ. Эхний шатанд PostgreSQL дахь өөрийн authz схем, RLS, scope cell-ээр эхэлж, эрхийн матрицыг pgTAP-аар тестэлнэ. ClickHouse, экспорт, API gateway зэрэг олон систем нэг эрхийг хуваалцах үед OpenFGA эсвэл SpiceDB-г PDP болгон харьцуулна. Хэрэглэгчийн зөвшөөрлийн бүртгэлийг ЕХ-ны 2023/1162-ийн Permission administrator үүргийн дагуу тусдаа модуль болгоно. Дэлгэрэнгүйг олон улсын судалгааны 17 дугаар бүлгээс үзнэ.

OpenBao нь secret, certificate, key удирдах зориулалттай. Repository. Тоолуурын нууцыг UI, Git, telemetry log-д хадгалахгүй; зөвхөн эрхтэй адаптер шаардлагатай үед авдаг болгоно. HSM шаардлагатай эсэх, түлхүүрийн эх олголт, эргэлт, сэргээх, төхөөрөмжийн counter-той нийцэх ажиллагааг тусдаа шалгана. Secret manager суулгаснаар DLMS key rotation автоматаар шийдэгдэхгүй.

Prometheus ба Grafana нь ажиллагааны metrics болон харагдацын хэрэгсэл. Prometheus, Grafana. PowerGrid-д read success, D+1 completeness, queue lag, backfill age, command UNKNOWN, DB write latency, backup age-г хянана. Тоолуур бүрийн serial-ийг Prometheus label болгон сая сая series үүсгэхийн оронд бүс, адаптер, загвараар aggregate гаргаж, төхөөрөмжийн дэлгэрэнгүйг MDM сангаас харуулна. Хэрэглэгчийн billing portal-ийг Grafana dashboard-аар орлуулахгүй.

pgBackRest нь PostgreSQL backup/restore хэрэгсэл, албан repository-д 2026-09-27-ны release бүртгэгдсэн. Repository. Backup файл бий гэдэг нь сэргээнэ гэсэн нотолгоо биш. Тусгаар орчинд хугацааны цэг рүү сэргээж, хэмжилт, төлбөрийн нийлбэр, command audit-ыг тулгана. Replication-ийг backup-тай адилтгахгүй. PostgreSQL-ийн synchronous/asynchronous replication сонголт нь өгөгдөл алдах эрсдэл ба latency-д өөр нөлөөтэй. Replication баримт

077. GIS, сүлжээний тооцоо ба жишиг төслүүд

PostGIS нь байршил, газарзүйн query хийх PostgreSQL өргөтгөл. Repository. PowerGrid-д transformer, feeder, meter-ийн координат болон хүчинтэй хугацаатай холбоосыг хадгалах саналтай. Газрын зураг дээр ойр байгаа хоёр цэг цахилгаанаар холбогдсон гэсэн үг биш; topology-г инженерийн бүртгэлээр батална.

pandapower нь цахилгаан сүлжээ загварчлах, тооцоолох зориулалттай Python төсөл, BSD-3-Clause лицензтэй. Төсөл, лиценз. PowerGrid-д шугамын параметр, трансформатор, ачаалал, фаз, topology бүрдсэний дараа техникийн алдагдал болон ачааллын хувилбар судлахад хэрэглэнэ. Зөвхөн тоолуурын хэрэглээ байхад бодит сүлжээний бүх алдагдлыг найдвартай тооцно гэж үзэхгүй. Эхний үеийн MDM, billing-д зайлшгүй dependency болгохгүй.

GXF буюу өмнөх OSGP-ийн repository нь retired, идэвхтэй хөгжүүлэлт ба арчилгаа зогссон гэж ил тод тэмдэглэсэн. GXF README. Protocol adapter, integration test, domain boundary-ийн зохион байгуулалтыг судлахад ашигтай. Харин шинэ PowerGrid-ийн production суурь болговол хуучин dependency, security patch, fork-ийн бүх хариуцлагыг өөрсдөө хүлээнэ. LF Energy-ийн landscape-ийг дараагийн судалгааны индекс болгон ашиглаж болно; жагсаалтад байна гэдэг нь тухайн төсөл идэвхтэй, үйлдвэрлэлд бэлэн гэсэн баталгаа биш.

088. PowerGrid өөрөө бүтээх шаардлагатай хэсэг

ЧадварНээлттэй эхээс авч болох суурьPowerGrid-ийн үлдэх ажил
Тоолуур уншихGurux / gateway драйверЗагварын профайл, scheduler, retry, session ownership
Нэгдсэн хэмжилтDB ба queueНэгж, scaler, timezone, raw provenance, revision
VEEЕрөнхий боловсруулалтын кодValidation, estimation, substitution дүрэм, version, approval
БалансSQL, GIS, сүлжээний тооцооХугацааны topology, бүрэн байдлын шалгалт, тайлбарласан зөрүү
ТөлбөрTransaction DBТарифын хүчинтэй хугацаа, дугуйруулалт, ledger, reconciliation
Алсын командПротоколын methodApproval, expiry, device verification, UNKNOWN, audit
Байгууллагын эрхKeycloakTenant isolation, бүсийн эрх, export ба job-ийн хамгаалалт
АшиглалтMonitoring, backupOn-call, runbook, DR дасгал, хэмжигдэх SLA

Өмнөх судалгаанд шалгасан teami-gerege-uz commit 4ac3dfb15829264722d2b2fc78fa8361deb58cac дээр уншилтын task нь simulated өгөгдөл үүсгэдэг, relay handler нь DB төлөв шинэчилдэг, TEAMI архивын нэг удаагийн таталт нь production scheduler-тай адил биш байсан. Энэ нь тухайн snapshot-ийн үнэлгээ; одоогийн HEAD-ийн шинэ аудит биш. Readings, Load control, TEAMI pull

Иймээс эхний ажлын үр дүн нь шинэ dashboard биш, эх төхөөрөмжөөс ирсэн заалтыг тайлбарлаж, хадгалж, дахин гаргаж үзүүлэх баталгаатай урсгал байна.

099. Нэг сая тоолуурын архитектурын санал

flowchart TD
  M[Тоолуур ба концентратор] --> A[Протоколын адаптерууд]
  A --> Q[Хадгалалттай ingestion queue]
  Q --> R[Эх өгөгдлийн архив]
  Q --> V[VEE ба canonical хэмжилт]
  V --> P[PostgreSQL бүртгэл ба гүйлгээ]
  V --> C[ClickHouse аналитик шаардлагаар]
  P --> B[Тариф ба төлбөрийн тулгалт]
  P --> U[PowerGrid API ба React UI]
  C --> U
  U --> W[Командын хүсэлт ба зөвшөөрөл]
  W --> D[Тусдаа command worker]
  D --> A
  A --> E[Хариу ба бодит төлөвийн баталгаажуулалт]
  E --> P

Keycloak нь хэрэглэгчийн identity, OpenBao нь нууцын хандалтаар эдгээр үйлчилгээг дэмжинэ. Raw архивын хадгалах технологи, retention-ийг тусдаа сонгоно. Queue-г олон жилийн архив гэж үзэхгүй. Бүсчилсэн adapter pool нь холбооны доголдлын нөлөөг хязгаарлаж, нэг төхөөрөмжид зэрэг хоёр worker команд өгөхөөс хамгаалах ownership-той байна.

9.1 Тооцооны суурь

Хэмжүүр1 суваг4 суваг
Тоолуур1,000,0001,000,000
Интервал15 минут15 минут
Өдрийн хэмжилтийн бичлэг96 сая384 сая
Жилийн бичлэг, 365 хоног35.04 тэрбум140.16 тэрбум
Дундаж бичлэг/секунд1,111.14,444.4
Нэг интервалын бичлэг 60 секундэд орж ирэх peak16,666.7/секунд66,666.7/секунд

Эдгээр нь DB хэмжилтийн бичлэгийн тоо; MQTT connection, packet, API request-ийн тоо биш. Нэг message-д олон channel багцалж болно. Нэг сая байнгын socket шаардлагатай эсэх нь концентратор болон push/poll загвараас хамаарна.

100–250 byte/хэмжилт гэсэн шалгах таамаглалаар нэг сувгийн жилийн raw хэмжээ 3.50–8.76 TB; дөрвөн сувагт 14.02–35.04 TB. Индекс, replica, backup, event, revision ороогүй. Эдгээрт нийт 3 дахин багтаамж төлөвлөх жишгээр 10.5–26.3 TB ба 42.0–105.1 TB болно. Бодит schema, compression, retention-аар хэмжиж шинэчилнэ.

24 цагийн тасалдлаар дөрвөн сувагт 384 сая backlog үүснэ. Үүнийг 6 цагт нөхөх зорилт тавибал 17,777.8 нэмэлт бичлэг/секунд, хэвийн урсгалтай нийлээд дунджаар 22,222.2 бичлэг/секунд шаардана. Энэ нь DB талын тооцоо; төхөөрөмжийн холбоо 6 цагт бүх архивыг өгөх боломжийг батлаагүй.

9.2 Хүлээн авах туршилт

  1. Ижил өгөгдөл, replication, durability, диск, retention-ээр queue болон DB хувилбаруудыг харьцуулах.
  2. Peak, долоо хоногийн backfill, billing query, backup-ийг зэрэг ажиллуулах.
  3. Worker restart, broker node loss, DB failover үед алдагдсан болон давхардсан хэмжилтийг тоолох.
  4. 1 сая ID-тай synthetic ачааллыг бодит төхөөрөмжийн нийцлийн туршилтаас тусад нь тайлагнах.
  5. p95/p99 latency, queue age, write lag, query хугацаа, сэргээх хугацааг хэмжих.
  6. Queue-гийн амжилтыг billing болон төхөөрөмжийн командын бодит амжилттай андуурахгүй байх.

1010. Төслийн мэдлэгийн зураглал

Дараах нь багийн сургалт, дотоод баримтжуулалтын санал. Зөвхөн ном уншсан эсэхээр бус, дахин ашиглах баримт ба туршилтын үр дүнгээр мэдлэгийг үнэлнэ.

МэдлэгЯагаад хэрэгтэйЭзэнГарах баримт
AMI, HES, MDM, VEEДавхаргын хариуцлага ялгахАрхитектор, домэйн инженерНэр томьёо, system boundary
DLMS/COSEM, OBISУтга ба протокол зөв тайлбарлахDevice integration инженерЗагвар/firmware-ийн profile
CT/PT, scaler, kWh/kWХэрэглээг олон дахин буруу тооцохоос сэргийлэхЦахилгааны инженер, data инженерНэгж ба коэффициентийн жишиг
Timestamp, timezone, intervalХоцролт, хоногийн баланс, тарифData инженерЦагийн гэрээ, golden dataset
VEE ба revisionТооцоолсон заалтыг бодитоос ялгахData QAДүрмийн каталог, approval history
Тариф ба ledgerТөлбөрийг дахин гаргах, тулгахBilling мэргэжилтэнТарифын хувилбар, тооцооны жишиг
Topology ба балансАлдагдлын зөрүүг зөв тайлбарлахСүлжээний инженерХугацаатай холболтын бүртгэл
Distributed systemsRetry, duplicate, partial failureBackend инженерIdempotency ба replay contract
OT/IT securityТөхөөрөмжийн команд ба нууц хамгаалахSecurity, OT инженерThreat model, эрхийн матриц
SRE ба DRҮйлчилгээг удаан хугацаанд ажиллуулахOperationsSLO, runbook, restore нотолгоо
Лиценз ба supply chainХувилбар шинэчлэх эрх, dependencyТехникийн удирдагчSBOM, license inventory
Өгөгдлийн хандалт ба нууцлалХэн юуг ямар үндэслэлээр харах; Хүний хувийн мэдээлэл хамгаалах тухай хууль, ЕХ-ны 2023/1162Архитектор, хуулийн зөвлөхЭрхийн матриц, зөвшөөрлийн урсгал, k-босгын бодлого, DPIA
PostgreSQL RLS ба authzЭрхийн алдааг өгөгдлийн түвшинд хаахBackend, DBAauthz схем, pgTAP тест, EXPLAIN нотолгоо

10.1 DLMS сургалтын эх сурвалж

Gurux DLMS in a nutshell нь communication, addressing, authentication, frame-ийн анхан ойлголт өгнө. COSEM objects нь Clock, Register, Profile Generic, Disconnect Control зэрэг объектын баримтыг холбоно. Эдгээр нь төхөөрөмж үйлдвэрлэгчийн companion specification-ийг орлуулахгүй. PowerGrid нь тухайн загварын client/server address, authentication, security suite, object list, profile capture objects, access rights-ийг нийлүүлэгчээс авна.

Лабораторийн дасгал: эхлээд association ба зөвхөн унших эрх; дараа нь register болон interval profile; дараа нь clock/scaler; сүүлд тасалдал, timeout, authentication failure. Relay командын дасгалыг тусгаар лабораторид эрх бүхий инженерээр гүйцэтгэнэ.

10.2 Өгөгдөл ба төлбөрийн мэдлэг

meter_id, service_point_id, customer_id, contract_id-г ялгана. Тоолуур солигдоход service point хадгалагдах ба хоёр тоолуурын mounting interval давхцах эсэхийг шалгана. Raw утга, canonical утга, засварласан revision-ийг эх үүсвэрээр нь мөрдөнө.

Golden dataset-д тариф солигдох өдөр, сарын зааг, хоцорсон заалт, rollover/reset, тоолуур солилт, буруу scaler, давхар callback, буцаалт, хэсэгчилсэн төлбөр, negative/reverse energy орно. Санхүүгийн баг тайлбарласан жишээ бүрийн expected үр дүнг батална. AI-ийн гаргасан тайлбар нь батлагдсан тарифын дүрэм болохгүй.

10.3 Ашиглалт ба кибер хамгаалалтын мэдлэг

NISTIR 7628 Rev.1 нь smart-grid кибер хамгаалалтын түүхэн суурь удирдамж. Монголын одоогийн хууль, байгууллагын дүрмийн оронд хэрэглэхгүй. PowerGrid-ийн threat model-д meter key алдагдах, хуурамч command, tenant хооронд мэдээлэл задрах, replay, supply-chain өөрчлөлт, backup устах тохиолдлыг оруулна.

On-call баг “тоолуур offline”, “холбооны сүлжээ доголдсон”, “queue хоцорсон”, “DB удааширсан”, “billing зөрсөн”-ийг тусдаа ялгадаг байна. Incident бүрт хэрэглэгчийн нөлөөлөл, тухайн бүс, эхэлсэн цаг, сэргэлтийн нотолгоо, дахин давтагдахаас сэргийлэх өөрчлөлт бүртгэнэ.

1111. Дотоод мэдлэгийн сангийн санал

Git репозиторид дараах Markdown бүтэцтэй, review-тэй баримтуудыг хадгалах саналтай. Энд зөвхөн бүтцийг тодорхойлсон; бүтээгдэхүүний репозиторид хавтас үүсгээгүй.

text
knowledge/  glossary.md  architecture.md  decisions/               # ADR: сонголт, хувилбар, нотолгоо  devices/                 # үйлдвэрлэгч, загвар, firmware, profile  data-contracts/          # хэмжилт, event, command schema  vee/                     # дүрэм, version, баталсан хүн  billing/                 # тариф ба golden test cases  operations/              # runbook, backup, DR, on-call  security/                # threat model, role matrix, authz ба RLS бодлого  privacy/                 # зөвшөөрлийн урсгал, k-босго, DPIA  dependencies/            # version, LICENSE, SBOM, upgrade  evidence/                # нууцгүй test report, benchmark

Баримт бүр эзэн, хүчинтэй огноо, хувилбар, эх сурвалж, хянагч, холбогдох тестийн ID-тай байна. Нууц түлхүүр, хэрэглэгчийн бүтэн мэдээлэл, бодит production packet-ийг засваргүйгээр Git-д оруулахгүй. Тестийн өгөгдлийг анонимчилж, simulator-ийн гаралтайг тэмдэглэнэ.

Мэдлэгийн AI хайлт нэмж болно. Эхний хэрэглээ нь батлагдсан зааврыг эх сурвалжтай олох, алдааны код тайлбарлах байна. Production command гүйцэтгэх, тариф солих, өрөөр таслах шийдвэрийг энэ хайлтын агентын эрхэд оруулахгүй. AI платформын сонголт нь үндсэн хэмжилтийн замыг ажиллуулах урьдчилсан нөхцөл биш.

1212. Судалгаа ба PoC-ийн ажлын дараалал

Доорх 6 долоо хоног нь лабораторийн төхөөрөмж, эрх, инженерүүд бэлэн үеийн ажлын санал. Улсын нэг сая тоолуурын нэвтрүүлэлтийн хугацаа биш.

ХугацааАжилГарах үр дүн
1 дүгээр долоо хоногТоолуурын inventory, protocol баримт, dependency/license бүртгэлХамрах хүрээ ба эхний хоёр загвар
2 дугаар долоо хоногGurux уншилт, raw payload, scaler/timezoneБодит төхөөрөмжийн нийцлийн тайлан
3 дугаар долоо хоногQueue, idempotency, PostgreSQL canonical өгөгдөлReplay болон тасалдлын туршилт
4 дүгээр долоо хоногClickHouse альтернатив, 1 сая ID ачаалалИжил нөхцөлтэй benchmark
5 дугаар долоо хоногKeycloak, нууцын удирдлага, monitoring, restoreЭрхийн сөрөг тест ба DR тайлан
6 дугаар долоо хоногАрхитектурын шийдвэр, backlog, ашиглалтын тооцооСонгосон stack, үндэслэл, пилотын төлөвлөгөө

Billing-ийн баталгаа нь хоёр бүтэн тооцооны мөчлөгийг зэрэгцүүлж шалгах зэрэг нэмэлт хугацаа шаардана. Зургаан долоо хоногийн PoC-г production acceptance гэж нэрлэхгүй.

1313. Сонголтын эцсийн босго

Нэр дэвшигч бүрт дараах баримт бүрдсэнээр шийдвэр гаргана: сонгосон release/commit; LICENSE ба dependency бүртгэл; install/upgrade/rollback заавар; security issue авах суваг; төхөөрөмж эсвэл ачааллын нотолгоо; backup/restore боломж; өгөгдлөө гаргаж авах арга; ашиглалтын эзэн; таван жилийн өртгийн оролтууд.

Техникийн сонголтын төлөв: дээрх төслүүд нь функционал ба архитектурын судалгааны лавлагаа. Аль нэгийг PowerGrid-ийн бүтээгдэхүүний суурь болгон батлаагүй. Үндсэн системийн функционал, өгөгдлийн гэрээ, ашиглалтын шаардлага тодорхой болсны дараа ерөнхий зориулалтын бүрэлдэхүүнийг өөрсдөө бичих эсвэл дахин ашиглах шийдвэрийг тусад нь гаргана.

PowerGrid-ийн үндсэн үнэ цэнэ нь эдгээр төслийн тоонд бус, бодит тоолуурын хэмжилтээс тайлбарлаж болох төлбөр болон баталгаатай команд хүртэлх урсгалын зөв байдалд байна.

1414. Үндэсний өөрийн системийн функционал боловсруулах зарчим

Энэ бүлэг нь захиалагчийн тодруулгад нийцүүлсэн PowerGrid-ийн шаардлагын санал. Доорх бүх боломж лавлагаа төсөлд бүрэн байдаг гэж үзээгүй; өмнөх судалгаанаас авсан санааг үндэсний системийн хэрэгцээнд хөгжүүлсэн.

Функционал бүрийг хэрэглэгчийн үүрэг → өдөөгч үйлдэл → оролт → ажлын урсгал → бизнесийн дүрэм → төлөв → алдааны нөхцөл → аудит → хүлээн авах шалгуур гэсэн бүтэцтэй бичнэ. Лавлагааны эх сурвалж, PowerGrid-д нэмж буй шаардлага, хэрэгжүүлэх кодын шийдвэрийг тусад нь тэмдэглэнэ.

IDӨөрсдийн хөгжүүлэх функционалСудалгааны лавлагааPowerGrid-ийн нарийвчилсан шаардлагын чиглэл
FN-01Улсын нэгдсэн бүртгэлӨмнөх улсын кейсүүд, MDM загварБайгууллага → бүс → дэд станц → фидер → трансформатор → хэрэглээний цэг; тоолуурын суурилуулалт, солилтын түүх
FN-02Төхөөрөмжийн чадамжийн каталогGurux-ийн объект ба protocol загварҮйлдвэрлэгч, загвар, firmware, унших profile, дэмжих команд, баталгаажуулалтын огноо; дэмжихгүй үйлдлийг хаах
FN-03Заалт цуглуулах удирдлагаGurux, OpenMUCХуваарь, нэг удаагийн уншилт, бүлэгчилсэн ажил, тасалдлын нөхөн таталт, session ownership, retry хязгаар
FN-04Өгөгдлийн чанар ба засварӨмнөх Австралийн кейс, replay загварActual/estimated/substituted ялгалт, дүрмийн хувилбар, засварын зөвшөөрөл, эх утгыг хадгалах, нөлөөлсөн тооцоог дахин боловсруулах
FN-05Сүлжээний балансPostGIS, pandapower-ийн судалгааны чиглэлХүчинтэй topology ба ижил интервалын оролт/гаралт; дутуу заалтын хамрах хувь; зөрүүг шалгах ажлын даалгавар
FN-06Дохиолол ба ослын урсгалThingsBoard, Grafana, өмнөх АНУ-ын кейсДавхар дохиоллыг бүлэглэх, ач холбогдол, хариуцагч, хугацаа, нотолгоотой хаалт; холбоо тасарсныг цахилгаан тасарснаас ялгах
FN-07Тариф ба төлбөрийн тулгалтӨмнөх MDM/billing судалгааХүчинтэй хугацаатай тариф, тооцооны тайлбар, shadow billing, давхаргүй төлбөр, зөрүүний шийдвэрлэлт
FN-08Баталгаатай алсын командGurux-ийн объект, GXF-ийн adapter заагХүсэлт, эрх, зөвшөөрөл, дуусах хугацаа, илгээлт, ACK, бодит төлөвийн шалгалт, UNKNOWN, аудит
FN-09Байгууллага ба бүсийн эрхKeycloak, ЕХ-ны 2023/1162, HRM, IEC 62351-8Grant = үндэслэл + үүрэг + action + хамрах хүрээ (grid area, топологи, бүлэг, цэг) + өгөгдлийн хугацаа + зорилго; scope cell ба RLS; хоёр түлхүүрийн команд; экспорт ба job-д ижил хамгаалалт
FN-10Хэрэглэгчийн үйлчилгээӨмнөх Франц, Сингапурын кейсХэрэглээ, шинэчлэгдсэн цаг, заалтын чанар, төлбөрийн тайлбар, хүсэлт/гомдол, засварын төлөв
FN-11Үндэсний ажиллагааны төвPrometheus/Grafana, өмнөх Японы кейсБүсийн заалтын бүрэн байдал, холбооны чанар, backfill, командын алдаа, үйлчилгээний нөлөөлөл, сэргэлтийн хяналт
FN-12Интеграц ба өгөгдлийн мөрNATS/Kafka-ийн delivery ба replay зарчимVersion-тэй API/schema, idempotency, source provenance, replay, систем хоорондын reconciliation
FN-13Хэрэглэгчийн зөвшөөрлийн бүртгэлЕХ «My Energy Data», 2023/1162, Данийн EloverblikDownload/Share My Data; гуравдагч тал, цэг, өгөгдлийн төрөл, хугацаа, зорилготой зөвшөөрөл; цуцлах ба мэдэгдэл; хандалт бүрийн аудит
FN-14Бүлэглэл ба хэмжээсийн үйлчилгээIEC CIM UsagePointGroupЗасаг захиргааны мод ба хилийн түүх (bitemporal), дурын бүлэг, хувилбартай гишүүнчлэлийн snapshot; Core-ийн эрхийн хэмжээс биш
FN-15Аналитик ба нээлттэй өгөгдөлOfgem SLC10A, Fingrid нээлттэй өгөгдөлDataset ба мөрийн бодлого, k-босго, ялгавар халдлагаас хамгаалах, summary.read ба reading.read ялгах

Жишээ FN-08 Алсын командын нарийвчилсан урсгал

Хэрэглэгч: тухайн байгууллага, бүсэд төхөөрөмж удирдах эрхтэй оператор. Оролт: meter ID, хүссэн төлөв, шалтгаан, хүсэлтийн ID, хүчинтэй хугацаа. Урьдчилсан нөхцөл: төхөөрөмж команд дэмждэг, суурилуулалтын холбоос хүчинтэй, зохих зөвшөөрөл бүрдсэн байна.

  1. PowerGrid хүсэлтийн эрх, төхөөрөмжийн чадамж, хамгаалалтын дүрэм, зэрэгцээ команд байгаа эсэхийг шалгана.
  2. Шаардлагатай зөвшөөрлийг тусдаа үйлдлээр бүртгэж, зөвшөөрсөн хүн ба тухайн үеийн өгөгдлийн хувилбарыг хадгална.
  3. Worker илгээхийн өмнө хүсэлтийн хугацаа, эрх ба хамгаалалтын нөхцөлийг дахин шалгана.
  4. Төхөөрөмжид илгээсэн болон хариу хүлээн авсан үйл явдлыг тус тус бүртгэнэ.
  5. ACK ирсэн ч бодит төлөвийг шалгаагүй бол VERIFIED болгохгүй. Read-back эсвэл дэмжигдсэн төлөвийн нотолгоогоор батална.
  6. Timeout болсон бол үр дүн тодорхойгүйг UNKNOWN гэж харуулж, төлөв шалгах ажил үүсгэнэ. Хүсэлтийг сохроор давтан гүйцэтгэхгүй.
  7. Оператор timeline-аас хэн, хэзээ, ямар шалтгаанаар, ямар үр дүнтэй ажилласныг харна.

Хүлээн авах шалгуур: DB update дангаараа амжилт болохгүй; давхар хүсэлт давхар команд үүсгэхгүй; хугацаа дууссан команд дараа нь гүйцэтгэгдэхгүй; өөр бүсийн оператор удирдахгүй; төхөөрөмжийн төлөв зөрвөл амжилт гэж харагдахгүй. Энэ урсгалыг өөрсдийн API, UI, өгөгдлийн загвар, тестээр хэрэгжүүлнэ.

Дараагийн баримт бичгийн зорилго

Дараагийн функционал тодорхойлолтод FN-01–FN-15 бүрийн дэлгэц, хэрэглэгчийн үйлдэл, бизнесийн дүрэм, төлөвийн шилжилт, өгөгдлийн талбар, интеграц, сөрөг тохиолдол, хүлээн авах шалгуурыг дэлгэрүүлнэ. Үндэсний шинэ системийн бүтээгдэхүүний шаардлага нь тухайн нээлттэй эхийн төслийн UI эсвэл дотоод өгөгдлийн загвараар хязгаарлагдахгүй.

Was this page helpful?Your answer helps improve the docs.