Какое решение на стороне сервера является лучшим для системы GPS-слежения в реальном времени?

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

Вопрос в том, как работать с системой GPS-слежения в реальном времени; если у нас есть следующий сценарий:

  1. Вместо подключения GPS-приемника к ПК у пользователя будет мобильное устройство со встроенным GPS-приемником.

  2. Данные о местоположении будут отправлены по мобильной сети с использованием подключения для передачи данных GPRS на стороне сервера.

  3. Данные будут обработаны, и файл пути KML будет создан, обновлен через определенные промежутки времени и использован для отслеживания пользователя с помощью Google Планета Земля.

Вопрос в том, как лучше всего реализовать этот сценарий на стороне сервера; это веб-служба, веб-приложение, служба Windows, приложение Windows или что именно? Принимая во внимание, что система будет обслуживать несколько пользователей одновременно, и что больше пользователей могут использовать систему в будущем (проблемы масштабируемости).

Заранее спасибо, и я очень ценю любую помощь :)


person Ayman    schedule 27.03.2010    source источник


Ответы (2)


Какое именно устройство вы используете, например, this или что-то более сложное / настраиваемый? Если мы предположим, что устройство отправляет свои данные по TCP, я бы рассмотрел следующий подход с отдельными процессами ввода / вывода:

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

  • Вывод: веб-приложение считывает координаты из базы данных для данного идентификатора устройства и отображает их с помощью API Google Планета Земля .

Используйте любой язык программирования, с которым вы знакомы.

person jholster    schedule 27.03.2010
comment
Спасибо за очень полезный ответ !! Что касается вашего вопроса об устройстве, которое я собираюсь использовать, как я уже сказал в описании проблемы, это будут устройства под управлением Windows Mobile 6, я знаю, что использование специального устройства, подобного тому, которое вы отметили, намного лучше, но я не Я не хочу обременять клиента дополнительными расходами, и я думаю, что единственная проблема с использованием мобильного устройства со встроенным GPS-приемником - это проблема расхода заряда аккумулятора, которую можно решить, подключив устройство к автомобильному зарядному устройству. - person Ayman; 27.03.2010
comment
Что касается предложенного вами подхода, не будет ли процесс сохранения в базе данных с последующим чтением сохраненных данных веб-приложением и отображением их в Google Планета Земля каким-то образом медленным и убивает сущность системы реального времени? - person Ayman; 27.03.2010
comment
Зависит от вашего разрешения в реальном времени (1, 20, 60 секунд?), Но, вообще говоря, я не думаю, что база данных как таковая не будет узким местом. Чтобы минимизировать задержку в веб-приложении, используйте не опрос, а HTTP push (Comet). Поскольку вы не знакомы с технологиями Windows / Microsoft, я не могу вам в этом помочь. - person jholster; 27.03.2010
comment
Упс, выше следует читать: я не думаю, что база данных per se будет узким местом. - person jholster; 28.03.2010
comment
да, я заметил это, но знал, что вы имели в виду :) - person Ayman; 28.03.2010

Для меня здесь есть техническое ограничение / риск -> мобильное устройство и его возможности подключения.

1) Каковы ваши требования? Вам нужна поддержка различных мобильных устройств или вы сосредоточитесь только на одной платформе?

2) Что еще более важно, вы должны понимать, что соединения для передачи данных GPRS отличаются от ПК, подключенного к Интернету. Различные операторы мобильной связи накладывают различные ограничения на подключение.

Если бы мне пришлось разработать такую ​​систему, чтобы минимизировать эти риски, я бы пошел с веб-сервером, работающим на порту 80, который мобильные устройства загружали бы свои долгие / широты через POST (или даже GET для упрощения).

РЕДАКТИРОВАТЬ: Что касается масштабируемости, в будущем было бы очень легко масштабировать вещи, используя проверенные и проверенные методы балансировки нагрузки.

РЕДАКТИРОВАТЬ 2: Какую бы технологию вы ни решили использовать, я НАСТОЯТЕЛЬНО рекомендую в первую очередь создать макет прототипа. Эти ограничения на подключение могут быть препятствиями для показа. В идеале вам нужно изучить их, прежде чем делать какие-либо серьезные вложения.

person Iraklis    schedule 27.03.2010
comment
Спасибо за ваш ответ. Относительно двух вопросов, которые вы задали: 1) На данный момент я нацелен на устройства под управлением Windows Mobile 6, так как я должен поставлять устройства клиентам, так что это не что-то коммерческое. 2) Я понимаю, что есть разница, на самом деле я пробовал использовать карты Google для мобильных устройств на устройстве HTC Touch Diamond с GPS в течение 45-минутной поездки, и это было здорово, и я говорю о Функция отслеживания в реальном времени карт Google с использованием GPS, а не на основе сотовой связи, поэтому я не знаю, о каких ограничениях подключения вы говорите, не могли бы вы быть более понятными? - person Ayman; 27.03.2010
comment
Также я должен сказать, что делаю прототип или демо, чтобы показать его заказчику, конечно, я не делаю ничего серьезного: D - person Ayman; 27.03.2010