Yagona dispetcherlik tizimi: 112, 101, 102, 103 va 104 uchun jonli xarita
Kontekst
O‘zbekistondagi favqulodda xizmatlar uchun respublika miqyosidagi davlat platformasi: 112, yong‘in (101), politsiya (102), tez yordam (103) va gaz (104). Operatorlar va dispetcherlar bitta interfeysdan hodisalarni boshqaradi, transportni kuzatadi, brigadalarni muvofiqlashtiradi, holatlarni nazorat qiladi va tahlilni ko‘radi. 2024-yil aprelda middle Angular dasturchi sifatida qo‘shildim, 2024-yil avgustdan 2026-yil martgacha front-end jamoasiga rahbarlik qildim.
Muammo
Dispetcherlar har bir transport hozir qayerdaligini ko‘rishi kerak. Joylashuv yangilanishlari SignalR soketi orqali har bir transportdan sekundiga bir necha marta keladi, ular bilan birga hodisalar oqimi ham: yangi chaqiruvlar, holat o‘zgarishlari, brigada tayinlashlari. Har bir xabar kelgan zahoti chizilsa, xarita qotib qoladi va interfeys to‘lib ketadi.
Cheklovlar
Oddiy ofis kompyuterlaridagi davlat foydalanuvchilari; xarita eng yuqori yuklama paytida ham javob berishi shart; birorta bildirishnoma yo‘qolmasligi kerak; har bir xizmatning o‘z hodisa turlari va holatlari bor, ularni bitta interfeys bir xil ko‘rsatishi lozim.
Nima qildim
OpenLayers asosida har bir transport sinfi uchun alohida vektor qatlamli jonli xarita qurdim. Soket oqimini RxJS oqimlari sifatida modellashtirdim: joylashuvlar belgilangan oyna davomida buferlanadi, har bir transport uchun eng so‘nggi joylashuvga qisqartiriladi va bitta to‘plam sifatida chiziladi, shuning uchun qancha transport xabar bermasin, qayta chizish chastotasi chegaralangan. Bu yondashuv Soket oqimini so‘nggi joylashuvni yo‘qotmasdan cheklash maqolasida yozilgan.
Bildirishnoma va jonli yangilanish qatlamini SignalR asosida qurdim: hub obunalari RxJS observable sifatida ochilgan, kelayotgan hodisalar uchun PrimeNG toast navbati, ro‘yxatlar esa qayta so‘rov yubormasdan joyida yangilanadi. Umumiy komponentlar to‘plamini PrimeNG va Angular Material asosida bitta mavzu bilan qurdim, shuning uchun har bir xizmat moduli bir xil ko‘rinadi va ishlaydi hamda foydalanish qulayligi talablariga javob beradi.
Natija
Xarita qancha transport bir vaqtda xabar bermasin, barqaror chastotada qayta chiziladi, shuning uchun ilgari uni qotirib qo‘ygan yuklama cho‘qqilarida ham ishlayveradi. Dispetcherlar transportni bosib, boshqasini ochib qo‘yishni to‘xtatdi. Endi joylashuv oqimi xarita transport haqida biladigan yagona manba, bu esa oqimni yozib olib, test uchun qayta ijro etishni osonlashtirdi.