Miejskie Zakłady Autobusowe
System Łączności Dyspozytorskiej dla Miejskich Zakładów Autobusowych w WarszawieSzczegóły
- Zakres Warsztaty produktowe, projekt, dostawa i wdrożenie Systemu Łączności Dyspozytorskiej (SŁD)
- Ramy czasowe Wrzesień 2020 – Kwiecień 2021
- Innowacje Load Balancer wraz z mechanizmem floating IP, klasteryzacja baz danych wraz z wykorzystaniem mechanizmu replikacji i więcej
- Technologie C#, JavaScript, Python, .NET Core, ASP.NET, ReactJS
- Sektor Transport publiczny
- Model współpracy Po tym jak Klient zdecydował się na naszą ofertę podpisaliśmy umowę zgodnie z zadeklarowanym łącznym wynagrodzeniem i realizacją w określonym terminie.
- iteo team 1 x analityk biznesowy
1 x UX designer
1 x UI designer
1 x PM
6 x backend developerów
3 x frontend developerów
1 x tester
Oś czasu
Etap 1. Projekt UX/UI konsol dyspozytorskich. Integracja i dwukierunkowa łączność SŁD.
Etap 2. Integracja z radiem DMR TIER III.
Etap 3. Eksploatacja testowa, odbiór całości systemu.
Intro
Projekt rozpoczął się przez zwycięstwo w postępowaniu publicznym (73/PN/AB/20) ogłoszonym w sierpniu 2020 roku przez MZA, podmiot komunalny w grupie ZTM należący do miasta stołecznego Warszawa.
Miejskie Zakłady Autobusowe Sp. z o. o. w Warszawie to:
Największy przewoźnik miejski w Polsce
Jeden z największych przewoźników w Europie
Lider nowoczesnego ekologicznego transportu zbiorowego
Flota licząca 1422 autobusy obsługujące 187 linii zwykłych, przyspieszonych ekspresowych oraz nocnych
Około pół miliarda pasażerów na terenie Warszawy i innych miejscowości aglomeracji stołecznej rocznie


Potrzeby i cele biznesowe
Główne cele projektu:
Integracja kanałów głosowych, radiowych oraz SMS wykorzystywanych przez służby dyspozytorskie MZA na jednym panelu obsługiwanym przez dyspozytora. Panel ten ma się stać podstawowym narzędziem komunikacyjnym do nawiązywania i odbierania połączeń telefonicznych i radiowych.
W pełni funkcjonalna integracja SŁD ze wskazanymi kanałami komunikacyjnymi, w tym z systemem łączności radiowej pracującej w standardzie DMR.
Zapewnienie niskich latencji przy np. przychodzących połączeniach dzięki wykorzystaniu mechanizmów notyfikacji czasu rzeczywistego.
Integracja z mnogą liczbą systemów zewnętrznych oraz urządzeń (Radio, Słuchawka) dzięki modułowemu rozwojowi produktu.
Technologie
Języki programowania:
C#
JavaScript/ES6
Python
Technologie serwerowe:
.NET Core
ASP.NET Core Razor Pages
ASP.NET Core Web API
Technologie i biblioteki klienckie:
ReactJS
Redux
RxJS
Bootstrap
Broker wiadomości i szyna danych:
RabbitMQ
Bazy danych:
PostgreSQL
MongoDB
Funkcjonalność
Niezawodność
Aby zapewnić najwyższą dostępność i wyeliminować pojedyncze punkty awarii, zastosowaliśmy Load Balancer wraz z mechanizmem floating IP, dzięki któremu w momencie awarii serwera działającego w trybie aktywnym, ruch zostaje przekierowany na serwer zastępczy.
Klasteryzacja baz danych wraz z wykorzystaniem mechanizmu replikacji zapobiega ryzyku utraty danych, ponieważ są one replikowane są na serwerze zastępczym.
Klasteryzacja centrali telefonicznej zapewnia natomiast, że nawet jeśli główny serwer centrali ulegnie awarii bądź będzie tymczasowo niedostępny, zarówno połączenia telefoniczne jak i radiowe wciąż będą mogły być obsługiwane przez centralę uruchomioną na serwerze zapasowym.
Wydajność
Dzięki zastosowaniu mechanizmu persystencji w pamięci podręcznej w systemie PBX Proxy współpracującego z centralą telefoniczną, ograniczyliśmy ilość koniecznych do wykonania zapytań do baz danych, tym samym skracając czas krytycznych dla wydajności systemu operacji obsługi połączeń i konferencji.
W ramach głównego systemu aplikacji, najbardziej istotne z punktu widzenia jej wydajności encje biznesowe przechowywane są przy użyciu bazy danych typu InMemory. Dzięki temu zminimalizowaliśmy czas wykonywania najbardziej obciążających operacji związanych z zarządzaniem konferencjami, a ryzyko utraty informacji odnośnie aktualnego stanu tych encji zostało zredukowane poprzez zastosowanie klasteryzacji bazy danych.
Skalowalność
Wyekstrahowanie niskopoziomowej logiki związanej z integracją z centralą telefoniczną do odrębnego systemu PBX Proxy pozwoliło nam na zaprojektowanie aplikacji w architekturze bezstanowej, umożliwiając jej skalowalność bez utraty wydajności wraz ze wzrostem ilości instancji aplikacji.
Interoperacyjność
Zaprojektowanie aplikacji z myślą o ujednoliceniu wielu typów połączeń pozwoliło nam na integrację z przystawkami radiowymi, dzięki czemu system umożliwia obsługę połączeń zarówno telefonicznych jak i radiowych.
Za pośrednictwem panelu dyspozytora istnieje też możliwość wysyłania wiadomości SMS. Dzięki projektowi systemu otwartemu na nowe integracje w miejscu aktualnej bramki GSM można zastosować inną bramkę umożliwiającą obsługę takich wiadomości.
System jest także w pełni otwarty na integrację z dodatkowymi systemami zewnętrznymi, w tym z dedykowanymi systemami klienta.
UX design
Projekt użyteczności obejmował stworzenie konsoli dla dyspozytora. Interfejs został zaplanowany na ekrany dotykowe o rozdzielczości określonej przez zamawiającego.
Szczególne wymagania uwzględnione w projekcie:
Intuicyjna obsługa paneli połączeń i wiadomości
Zarządzanie kolejką przychodzących i zawieszonych połączeń
Łatwa nawigacja pomiędzy modułami rozwiązania (SMS, połączenia, kontakty)
Przystępność korzystania z bardzo obszernej książki telefonicznej
Sprawna obsługa dotykowa poprzez odpowiednie rozmieszczenie i rozmiar elementów
UI design
Projekt graficzny interfejsu obejmował przygotowanie rozbudowanego Design Systemu, który posłużył jako baza do ostylowania wszystkich widoków produktu przygotowanych przez zespół UX.
Na potrzeby projektu zostały zaprojektowane customowe ikony do nawigacji bocznej oraz zautomatyzowany system reużywalnych komponentów, oparty na wariantach i autolayoutach. Całość projektu została przemyślana w taki sposób, żeby zapewnić maksymalną czytelność użytkownikowi, przy jednoczesnym wykorzystaniu 100% dostępnego na widoku miejsca.
Największym wyzwaniem projektowym okazało się dostosowanie wielkości stylów tekstowych i kolorystycznych tak, by każdy z widoków był intuicyjny w odbiorze i codziennej pracy.
Gwarancja jakości
System DESK dla MZA jest przykładem projektu, w którego procesie wytwarzania oprogramowania tester jest zaangażowany od możliwie jak najwcześniejszego etapu prac.
Począwszy od fazy analizy wymagań, gdzie weryfikowane były planowane funkcjonalności systemu, przez bieżące testowanie poprawności ich implementacji w czasie trwania całego procesu wytwarzania, po testy regresji oraz wsparcie testów akceptacyjnych klienta.
Projekt bazował na rozległej dokumentacji “OPZ” obejmującej zbiór funkcjonalności wskazanych przez zamawiającego, która stanowiła tzw.: wyrocznię testową. Warto podkreślić, że precyzyjne wymagania, szeroki zakres funkcjonalności oraz dynamika zmian wymagała bardzo dużego zaangażowania testera, a także częstych testów regresji, mających zweryfikować pełną sprawność funkcjonalną i użytkową systemu. Niezbędne było zapewnienie prawidłowego działania funkcjonalności wytwarzanego oprogramowania ze szczególnym naciskiem na weryfikację jego działania dla dedykowanego ekranu dotykowego, radia mobilnego oraz zestawu nagłownego.
Aby zweryfikować poprawność działania funkcjonalności przeanalizowano dokumentację i wymagania klienta,
rozpisano przypadki testowe o realnym i wysokim stopniu skomplikowania oraz przeprowadzono następujące testy:
Testy funkcjonalne na podstawie przygotowanych przypadków testowych
Testy eksploracyjne obejmujące zachowania użytkownika spoza zakresu dokumentacji testowej
Exploratory tests covering user behaviour outside of the test documentation scope
Retesty i testy regresji
Poza tym zabezpieczono dozwolone dla użytkownika aktywności podczas obsługi połączeń oraz zaprojektowano i oddano do weryfikacji po stronie klienta scenariusze testów akceptacyjnych.
Referencje
Rezultat
Nasze rozwiązanie to system, który jest zawsze w pełni dostępny, zapewnia ciągłość i wielowątkowość komunikacji oraz daje gwarancję niezawodności i bezpieczeństwa.
Kompleksowe narzędzie komunikacyjne umożliwiające dyspozytorom zarządzanie zdarzeniami w MZA.
Integracja wszystkich kanałów w jednym panelu dyspozytorskim: połączenia telefoniczne, radiowe, SMS.
Interfejs użytkownika, zapewniający ergonomiczną i intuicyjną obsługę przy pomocy dotykowych ekranów i umożliwiający zdalną obsługę z poziomu przeglądarki internetowej bez konieczności zakupu dodatkowego sprzętu.
Terminowe i skuteczne dopasowanie autorskiego systemu DESK do wymagań Klienta.
Roczna gwarancja jakości i kompleksowego wsparcia technicznego.