Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Геоинформационные технологии на предприятии.docx
Скачиваний:
20
Добавлен:
02.02.2020
Размер:
476.03 Кб
Скачать

4.2 Разработка сервиса на основе произведенного анализа и созданных дополнений

Цель создания сервиса-помочь грузополучателям повысить свою осведомленность о грузе на последнем этапе доставки, когда он передан водителю (то есть знать где он, что с ним), используя сервис отслеживания передвижения грузов на карте в реальном времени без использования специализированного GPS-оборудования. И при этом реализовать для транспортных компаний функционал живого мониторинга качества работы курьеров/водителей на данном этапе.

 Сервис предоставляет возможность:

-Транспортное планирование, моделирование и прогнозирование и определение наилучшей топологии улично-дорожной сети

-расчет оптимальной дислокации технических средств организации дорожного движения

-определение этапов будущего развития транспортной системы

1. Клиентам, владельцам грузов по уникальному трек-коду наблюдать в реальном времени как их грузы едут к ним.

2. Службам доставки и Транспортным компаниям осуществлять онлайн мониторинг своих и привлекаемых транспортных средств в полях. Анализировать за период накопленную статистику:

-общего пробега за выбранный день,

- маршрут движения на карте,

- место и время стоянок/разгрузок,

- средней скорости движения.

И тем самым эффективнее управлять качеством оказания услуг на этапе доставки до получателя. Что дает наша программа: - Клиентский доступ (грузополучателя, владельца груза) к трекингу конкретного груза без лишних и ненужных установок на устройства или регистраций кабинетов. В результате грузополучатели смогут более реально планировать свое время и сохранять его ценность для себя;

- Отсутствие необходимости в покупке и установке специализированного GPS-оборудования на машины перевозчика. Достаточно простого телефона на OS Android и подключенного интернет у водителя в телефоне с самым дешевым тарифным планом;

- Высокая точность определения местоположения. Так как для трекинга используются мобильные устройства с встроенными GPS-передатчиками, достигается точность определения координат от 0,5м до 50м.

- Облачный веб-сервис без установки софта на корпоративные компьютеры;

- Запись маршрута оффлайн. Даже если интернет по каким-то причинам отключился, позже в истории владелец транспорта все равно сможет просмотреть все данные о следовании машины. В программе присутствуют:

1. Разработка основного функционала (MVP версии);

2. Разработка новых фич:

-отслеживание расположения объекта на карте без обновления страницы браузера;

- возможность отдельного трекинга определенного груза;

- прокладывание оптимального маршрута для водителя в приложении;

 - прогнозирование точного времени  прибытия в точку доставки.

Сервис, объединяющий владельцев грузов и владельцев транспортных средств в одной системе для выполнение взаимовыгодных транзакций по перевозке. Изначально он охватывает территорию России, но со временем предусмотрена работа и в других странах СНГ. Сервис будет создан с целью облегчить и систематизировать поиск перевозчиков и минимизировать объем бюрократических процедур для организации перевозки. Для владельца груза сервис выглядит как UBER-like приложение. В самом простом варианте достаточно выбрать, откуда везти груз, куда его везти, указать дату погрузки и тип груза. Всей остальной бизнес-логикой сервис займется сам: выставлением заявки на разбор; закрытием заявки, повышением цены; мониторингом перевозки груза; прохождением заявки через все статусы, заложенные в бизнес-процессах.

С обратной стороны процесса перевозки выступает владелец автотранспорта. Это компании или частные лица, которые владеют либо огромным парком грузовых автомобилей, либо же всего несколькими машинами. Редко когда один владелец транспорта в состоянии полностью закрыть заявку собственными силами. Причины тому могут быть самые разные: короткие сроки, большие объемы грузов, занятость автомобилей на текущий момент. Отсюда и еще одна характеристика сервиса — он помогает выполнять перевозчикам небольшие грузоперевозки в рамках одной большой заявки одного заказчика. Владелец груза не выбирает конкретного перевозчика, так как его это не особо интересует. Он попросту публикует заявку и ожидает ее выполнения в срок. Перевозчику достаточно иметь в наличии свободный грузовик и откликнуться на заявку. В случае, если заявка была разобрана полностью, все владельцы транспорта приступают к ее выполнению.

Рисунок 1- Заявка для грузоперевозчиков

Еще одна роль, которая есть в системе — это водитель. Водители закрепляются за определенными машинами определенных владельцев транспорта. У водителя задача простая, он должен выполнить заявку: погрузиться на точке погрузки, перевезти груз к точке выгрузки, выгрузиться и на этом его работа завершена. Для управления процессом перевозки со стороны водителя есть мобильное приложение, с помощью которого водитель изменяет текущие этапы выполнения заявки и обменивается информацией со службой поддержки в случае непредвиденных обстоятельств. Кроме того, для мониторинга движения транспорта на каждый грузовик устанавливается GPS-датчик, который периодически отправляет координаты на наш геоинформационный сервис (GIS), где эти координаты обрабатываются и анализируются на наличие разных ситуаций: въезд-выезд из геозон, отклонение от маршрута, пропадание сигнала, простой.

В этом бизнес-процессе также присутствуют представители терминалов. Это люди, которые работают в портах и хотят получать информацию о транспорте, который движется к ним на разгрузку.

Работы над проектом начались с изучения предметной области и описания всех бизнес-проблем в письменном виде и на диаграммах. Параллельно разрабатывалась серверная архитектура и подбирались необходимые технологии. Поскольку мы являемся опытными программистами на PHP-фреймворке Symfony, мы выбрали его для реализации бизнес-логики сервиса. Нашу систему мы разбили на несколько составных компонентов, которые разрабатывались раздельно.

API — сердце системы, где проходят все транзакции;

Frontend — клиентский веб-интерфейс, на котором пользователи регистрируются и управляют заявками из личного кабинета;

Backend — веб-интерфейс для администраторов, чтоб управлять и мониторить системой;

GIS — геоинформационный сервис, в его работу входит обработка координат от транспортных средств и передача разных бизнес-событий на API;

Мобильное приложение для водителя — для управления процессом перевозки груза;

Мобильное приложение для владельцев груза и перевозчиков — повторяет функционал веб-приложение в виде родного приложения на Android и iOS.

Рисунок 2 - Архитектура и компоненты системы

В данной системе используется несколько внешних сервисов. Например, Wialon, который изначально рассматривался исключительно как внешний GIS. Его планировалось тесно интегрировать с нашей системой и выполнять все необходимые для проекта задачи. Но для того, чтобы сделать сервис более независимым от внешних факторов, мы реализовали все необходимые нам функции GIS. Это позволило более гибко контролировать внутрисистемные процессы. Wialon остался только в качестве ретранслятора GPS-сигнала, которому поступают данные с датчиков автомобиля и затем ретранслируются нам по TCP-протоколу. Для получения и обработки низкоуровневых данных был написан дешифровщик протокола GPS-трекера на языке Python. В качестве хранилища объемных данных о треках машин мы использовали MongoDB.

В этом проекте многие задачи пришлось вынести в асинхронные фоновые процессы. Для этого мы использовали сервер очередей RabbitMQ. Туда мы отправляем такие задачи, как рассылки нотификаций участникам системы по разным каналам, обработка событий при движении транспорта, коммуникация между сервисами API и GIS, и многое другое.

Также мы подключили к этому проекту сервис Firebase Cloud Messaging для отправки пуш-нотификаций на разные платформы и Infobip для отправки SMS. Еще были подключены API таких сервисов, как Seldon и “Центральный Банк России” для получения информации о зарегистрированных юридических лицах, чтобы упростить процесс регистрации пользователей. Для прорисовки маршрутов и генерации статических карт мы используем Google Maps API.

В интерфейсе администратора есть возможность управлять настройками системы, например:

- редактировать различные справочники: марки и модели автотранспорта, точки погрузки и выгрузки;

- верифицировать пользователей;

- управлять заявками;

- устанавливать тарифы на перевозку в разных регионах;

- просматривать статистику;

- редактировать тексты писем и нотификаций;

- управлять каналами рассылки нотификаций под каждый тип пользователя и событие.

Рисунок 3 - Элементы интерфейса

В данном проекте используется достаточное количество сложных элементов интерфейса. Чтобы упростить работу с ними, фронтенд-разработчиками должны быть написаны несколько компонентов на Vue.js + RxJS. Например, карта для отображения движения транспорта, асинхронные поля ввода и своя собственная реализация элемента Select.

Для реализации поиска адресов была использована библиотека RxJs, с помощью которой мы можем фильтровать поток ввода данных от пользователя и оптимизировать количество запросов к серверу. В результате пользователь получил живой поиск, а бизнес быстрое и качественное решение, которое легко поддерживать в будущем.