Narodowe Centrum Badań Jądrowych – jeden z największych instytutów naukowych w Polsce zajmujący się badaniami z dziedziny fizyki subatomowej oraz jądrowej – zdecydował się skorzystać z usług działu oprogramowania biznesowego Infomex w zakresie utworzenia dedykowanej aplikacji o nazwie Mensura.
Zamówienie składało się z następujących części:
I etap - wykonanie i wdrożenie oprogramowania umożliwiającego tworzenie modeli naukowych eksplorujących dane w języku programowania Python. Rozwiązanie wykorzystuje środowisko Matlab, które zostało zintegrowane z systemami informatycznymi WIOŚ i ICM.
II etap - wykonanie i wdrożenie mechanizmów integracji danych z urządzeń pomiarowych wykorzystywanych przez Zamawiającego.
Oprogramowanie Mensura wykonane przez Infomex jest odpowiedzialne za przechowywanie danych pomiarowych oraz ich przetwarzanie umożliwiając:
- Tworzenie i implementację mechanizmów integrujących dane z zewnętrznych źródeł danych (bazy danych, urządzenia pomiarowe) w dowolnym języku programowania,
- Tworzenie, wykonywanie i cachowanie w pamięci RAM serwera złożonych zapytań do bazy danych,
- Tworzenie transformacji modyfikujących dane w czasie rzeczywistym,
- Wykonywanie operacji obliczeniowych współbieżnie (również asynchronicznie) na nieograniczonej liczbie serwerów działających w klastrze,
- Tworzenie i wykonywanie współbieżnych modeli analitycznych eksplorujących dane, które Zamawiający może wykorzystywać w celach np. prognozowania stężenia pyłków roślin, bądź też wilgotności odczuwalnej powietrza. W ramach projektu Infomex zaimplementował dwa demonstracyjne modele eksplorujące dane z wykorzystaniem metod uczenia maszynowego (ang. machine learning), technologii asynchronicznych obliczeń współbieżnych oraz algorytmów, takich jak Grid Search czy SVM,
- Pracę zespołów naukowych w środowisku Matlab 2009 zintegrowanym z Oprogramowaniem wykonanym przez Infomex,
- API programistyczne dla zaawansowanych użytkowników umożliwiające dalszą rozbudowę systemu,
- Narzędzia provisioningowe umożliwiające łatwą instalację i aktualizację środowisk serwera i środowisk klienckich.
Oprogramowanie „Mensura” zostało wyposażone w szereg funkcjonalności dostępnych z poziomu webowego interfejsu użytkownika, Web API oraz modułów Pythona. Projektując architekturę rozwiązania, Infomex wykorzystał między innymi technologię Python, framework Django + AngularJS oraz biblioteki Rabbit MQ, Pandas i PySVM. Moduł integrujący system ze środowiskiem Matlab 2009 wykorzystywanym przez Zamawiającego, został wykonany w technologii Java. Z uwagi na bardzo dużą liczbę przetwarzanych danych pomiarowych, rozwiązanie stworzono w oparciu o silnik bazodanowy PostgreSQL w wersji 9, który zapewnia wsparcie mechanizmów klastrowania oraz partycjonowania tabel.