Перейти к содержанию
GPS навигатор СитиГИД

Рекомендуемые сообщения

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

Почему бы не использовать такие инкрементальные обновления карт?

Не секрет, что карта формата .dcm представляет из себя архивированный контейнер (ZIP) включающий в себя определенный набор файлов.

С выходов новой версии карты происходит частичное обновлениедополнение файлов внутри такого контейнера.

Выпуская инкрементальные обновления карт можно существенно экономить потребляемый трафик конечного пользователя.

Так на примере карты Санкт-Петербурга:

файл 78SPb.dcm, версия 23.5, размер 12,9 Мбайт

файл 78SPb.dcm, версия 23.6, размер 17,1 Мбайт

Распаковав карты и проведя бинарное сравнение всех файлов внутри контейнера выясняем, что:

В версии карты 23.6 появился 1 новый файл и обновилось 4 старых файла.

Запаковав данные файлы обратно в контейнер получаем 5.1Мбайта инкрементального обновления, против 17.1Мбайт полного обновления (экономия более чем в 3 раза).

Было бы полезно научить программу по запросу скачивать такие обновления из интернета. Добавлениезамена файлов в zip контейнере не требует его полной перепаковки и не отнимает сколь либо существенного процессорного времени.

Правильно реализованное решение позволяет:

1) Снизить нагрузку на сервер, поскольку скачивание инкрементального обновления занимает меньше времени чем скачивание полного большого обновления карты.

2) Снизить затраты на интернет у конечного пользователя.

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

4) Можно будет чаще обновлять карты, допустим, внося постоянные изменения в статистическую информацию вшитую в карту.

Естественно данный алгоритм нужно реализовать грамотно, в идеале с резервным копированием старой версии карты и вычислением контрольной суммы (CRC) полученного контейнера для проверки.

Спасибо за внимание.

Ссылка на сообщение
Поделиться на другие сайты

Добавлю:

Проводил так же сравнения обновлений карты Санкт-Петербурга последней версии:

файл 78SPb.dcm, версия 23.6, размер 17,1 Мбайт (предпоследняя версия)

файл 78SPb.dcm, версия 24.2, размер 18,1 Мбайт (последняя версия)

Поскольку последнее обновление включало в себя много изменений в дорожной сети размер инкрементального обновления составил 12,4Мбайт (858 обновленных и 293 новых файла). Тем не менее это почти в 1,5 раза меньше полного обновления размером в 18,1Мбайт, что для GPRS трафика довольно существенно.

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

Ссылка на сообщение
Поделиться на другие сайты

Поддерживаю.
Все гениальное просто.

 

Просто - это сейчас: скачал файл карты, бросил его в папку с картами. Всё. А при инкрементальном обновлении для некоторых будет нужен специальный обновляльщик - не для всех просто "переименовать-распаковать-перезаписать-запаковать-переименовать". Так что предложение требует обдумывания. 
Ссылка на сообщение
Поделиться на другие сайты

Просто - это сейчас: скачал файл карты' date=' бросил его в папку с картами. Всё. А при инкрементальном обновлении для некоторых будет нужен специальный обновляльщик - не для всех просто "переименовать-распаковать-перезаписать-запаковать-переименовать". Так что предложение требует обдумывания. 

[/quote']

Так это же должна делать прога самостоятельно в автоматическом фоновом (либо полуавтоматическом) режиме.

Например: Появилась новая карта XX.X, размер обновлений NN Мб, хотите автоматически их установить: Да/Да всегда/Нет/Позже/Проч. ?

Ссылка на сообщение
Поделиться на другие сайты

и тут мысль пошла дальше:

Что если реализовать общими идеями и усилиями программу, которая представляла бы из себя некую оболочку перед запуском СитиГида, и выполняющую функции обновления карт и даже программы?

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

Из этой программы можно было бы организовать и сам запуск СитиГида и еще много чего.

От себя могу предложить только ТЗ, т.к. сам совсем не программист.

Что скажите?

Есть здесь толковые программисты под WinCEWinMobile?

Может кто возьмется?

Если пустить мысль дальше, то можно уже для большого компьютера реализовать некий софт позволяющий автоматически производить проверку новых версий карт на сервере и делать инкрементальные обновления с загрузкой на FTP сервер без участия человека. Хотябы Питер+ЛО и Москва+МО

P.S. и еще главное чтобы разработчики CG были не против таких манипуляций с их картами? ;_)

Ссылка на сообщение
Поделиться на другие сайты

стоимость десятка мегабайт траффика в месяц стремиться к нулю :) зачем городить огород из-за копеешной экономии?

ИМХО ....
Ссылка на сообщение
Поделиться на другие сайты

sashaan, у меня стоимость 1 Мбайта = 3,55руб (МТС тариф "Супер Онлайнер")

При этом я владелец автонавигатора, а есть люди с КПК, у которых он в первую очередь для разговоров и там стоимость 1Мбайта GPRS может быть 5р. и выше.

Карта Москвы 35,1 Мбайт

Карта МО       17,2 Мбайт

Карта Питера 18,1М байт

Карта ЛО       27,7 Мбайт

Евразия        22,8 Мбайт

Итого: 120,9 Мбайт * 3.55 руб = 429,195 рублей

А теперь представьте что у вас нет под рукой большого компьютера, а карты надо обновить?

Инкрементальные обновления позволяют добиться от 1,5 до 3 кратной экономии трафика и средств.

Конечно не всем нужны все 5 карт, не все карты обновляются сразу, но не забывайте что с GPRS'a большой объем быстро не утянешь, а любая экономия здесь только в положительную сторону.

К примеру связующая карта "Дороги Евразии" за пол года обновилась 7 (!!!) раз, при этом большей частью это "техническое обновление", а значит инкрементальное обновление будет крайне эффективно.

Ссылка на сообщение
Поделиться на другие сайты

стоимость десятка мегабайт траффика в месяц стремиться к нулю :) зачем городить огород из-за копеешной экономии?

ИМХО ....

Так и время на закачку уменьшается. А это актуально при отсутствии 3G/
Ссылка на сообщение
Поделиться на другие сайты

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

 

Если только сделать это в виде опции - хочешь, - обновляй полностью, хочешь - докачивай обновления...
Ссылка на сообщение
Поделиться на другие сайты

Шпрот, всегда можно сделать вычисления контрольной суммы (CRC) после выполнения обновления.

Ссылка на сообщение
Поделиться на другие сайты

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

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

Ссылка на сообщение
Поделиться на другие сайты

AltGreen,

 

у меня стоимость траффика в размере 90 Мб равняется 100 рублей... ну, или 100 Мб 90 рублей... как-то так... Всё не выюзываю... так что лишние 10-20 мегов в месяц - роли никакой не играют...

 

Но,   пример посдених дней по Питеру - когда непонятно какая версия карты рабочая  то ли 24,2 то ли 24,1 ..... а если еще и инкременты будут...
Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...