Система GPS мониторинга Traccar

Хотелось бы рассказать про проект с открытым исходным кодом, который позволяет организовать собственную систему мониторинга объектов используя дешевые китайские GPS трекеры.

Создание


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

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

В качестве инструмента для разработки была выбрана Java, а для эффективной обработки сетевых соединений использовалась библиотека Netty.

Пару ночей потребовалось для того чтобы написать первую версию программы, которая после после проверки с купленным для экспериментов устройством TK201 неизвестного производителя, была выложена в сеть под лицензией Apache License, Version 2.0.




Развитие


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

Также большой проблемой было то что только с помощью Traccar нельзя было создать систему. Необходимо было использовать собственную базу данных и интерфейс, либо интегрировать Traccar с другой системой мониторинга, например OpenGTS.

Так как приложение изначально разрабатывалось как модуль, то интегрировать его с другими системами можно было достаточно посто. Все настраивалось с помощью XML конфигурационного файла, в том числе и SQL запросы были вынесены в этот файл. По просьбам трудящихся вскоре после публикации первой версии приложения я сделал шаблон конфигурации для интеграции Traccar с системой OpenGTS.

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

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

В качестве базы данных я выбрал встраиваемую H2 Database, простенький интерфейс сделал на ExtJS и Google Maps API, а HTTP запросы обрабатывал Jetty контейнер.

В таком виде мой проект существует в данный момент.

Будущее


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

Также есть определенные проблемы с лицензированием. Так, например ExtJS распространяется по лицензии GNU GPL license v3, что ограничивает возможности по модифицированию системы. С картами Google Maps все еще хуже, использовать их можно только для открытых систем (Your service must be freely and publicly accessible to end users).

На замену ExtJS планирую использовать Google Web Toolkit с библиотекой Smart GWT, а для картографии Openlayers с картами Open Street Maps.

Буду очень рад конструктивной критике и полезным советам.

Who's online

There are currently 1 user and 1 guest online.