Система сообщений на основе RabbitMQ - это надёжный и масштабируемый способ обмена сообщениями между микросервисами.
RabbitMQ обеспечивает гарантированную доставку сообщений, что делает его идеальным выбором для использования в финансовых приложениях. FastAPI - это быстрый и эффективный фреймворк для разработки API на Python. Он использует асинхронную обработку запросов, что позволяет достичь высокой производительности и ускорить разработку. FastAPI также предоставляет множество встроенных функций, которые помогают создавать безопасные и надежные API.
Архитектура микросервисов - это подход к разработке программного обеспечения, который разбивает приложение на множество маленьких сервисов, каждый из которых отвечает за свою задачу. Это позволяет ускорить разработку, повысить масштабируемость и гибкость системы.
Централизованное управление сервисами - платформа микросервисов предоставляет централизованный интерфейс для управления всеми микросервисами, что упрощает их управление и мониторинг. Это позволяет легко добавлять новые сервисы, масштабировать систему и устранять неполадки. А также легко интегрироваться с системами управления
Наш заказчик занимается обслуживанием локомотивов по договору аутсорсинга с РЖД. В процессе обслуживания возникают спорные моменты, которые приводят к выставлению штрафов в адрес нашего заказчика.
Проблема заключается в том, что Пункты Технического Обслуживания Локомотивов (ПТОЛ) зачастую расположены в таких местах, где сложно найти персонал для организации сбора объективных данных для претензионной работы, порой сложно объективно оценить тайминг проводимых операций.
Наше решение позволило организовать автоматический объективный учёт перемещений локомотивов по ПТОЛ. Перемещения локомотивов - это основа контроля регламентов. При перемещении собираются видео подтверждения, снабжаются пометками времени, происходит распознавание номеров локомотивных секций.
Распознавание номеров ведётся обычными "бытовыми" камерами. Распознавание возможно с различных расстояний, углов, в любое время суток и при любых погодных условиях. В процессе распознавания участвует 8 нейронных сетей различной архитектуры и пробабилистические алгоритмы, позволяющие выбрать наиболее верные гипотезы по распознанным номерам из всего множества кадров с проездом поезда.
Наша система выполняет анализ видео с нагрудных регистраторов работников и размечает факты выполнения технологических операций. Соответственно, становится возможным проведение анализа, работы и получение отчётности по работам за смену и за период.
Все данные автоматически снабжаются ссылками на соответсвующие видеофрагменты.
Распознавание сюжетов на видео является крайне сложной задачей, к решению которой специалисты по нейросетевой обработке подошли только в последнее время. Наше решение использует наиболее передовые наработки в этой области, которые в мире ещё по-настоящему не вышли из стен лабораторий. Наше решение прошло практическую проверку и применяется на практике.
В разработанной нами системе был выработан подход на основе компонентов с открытым исходным кодом. За визуализацию отвечает решение, реализающее 3D-визуализацию карт с привязкой к координатам, возможностью отображения регионов, анимации (подлёты-отлёты), возможностью при необходимости "провалиться" в ГИС представления, возможностью отображения площадных, линейных, точечных объектов, аннотаций и диаграмм различного вида.
большой объём поступающих данных (проектная мощность системы 2млн. автомобилей, каждый автомобиль возвращает отчёт о своём местоположении раз в секунду), таким образом, система должна обрабатывать до 2 миллионов фактов в секуду.
Сложность обработки: поступающие точки должны быть корректно преобразованы в траекторию, которая должна быть соотнесена с графом магистралей, т.к. система должна отличать, следует ли автомобиль по платной дороге или по соседней бесплатной.
Далее факты перемещения должны быть разбиты на биллинговые единицы - Tall Data Records (TDR), которые в дальнейшем проходят стадию оценки. На стадии оценки применяются многофакторные алгоритмы, которые зависят от типа автомобиля, времени суток и сезона, типа и параметров клиента, типа дороги, объёмов пройденного пути, объёмов платежей и многого другого. Всё это осложняется тем, что биллинг должен работать как по предоплатной, так и по постоплатной модели. Применение современных открытых решений и эффективной архитектуры позволило решить нам эти сложные проблемы.