|
|
|
|
Софт
/
ISV Tools
Уникайльный автоапдейтер
|
Stanislav Puzentsov
|
|
17-04-2009 / 17:53 |
1002 просмотров |
[1 комментариев]
|
Я уже писал на эту тему в рассылку, но решил более подробно описать еще и здесь.
Итак, почти все из нас используют в своих программах механизмы автоматического обновления или проверки выхода новых версий. Несмотря на то, что наличие этой функции стало практически стандартом де-факто, реализовывают ее по прежнему все по разному, и тут уж, в зависимости от потребностей и фантазии, кто во что горазд.
Я предлагаю всему сообществу, обсудить и утвердить некий своего рода стандарт на средство авто обновления.
Многие скажут - "Нафига мне еще какой-то стандарт, у меня и так все работает" или "Стандарт - это хорошо, но переделывать мне влом и я этим заниматься не буду".
Конечно, в своей степени они правы, и использовать предлагаемый стандарт дело добровольное, однако кто же вас тогда заставляет следовать другим таким же добровольным "стандартам" как например PAD-файлы? Можно же и в ручную ходить по каталогам программ и копировать текст в поля форм из заранее подготовленного тестового файла с описанием новой версии. Или во время написания текста программы вы же так же следуете правилам форматирования и оформления кода, а это вас тоже никто не заставляет делать. Так почему же нам еще немного не упростить жизнь самим себе?
Я предлагаю выпустить бесплатную или даже с открытым исходным кодом, программу - апдейтер, которая бы проверяла наличие свежих версий и по желанию пользователей устанавливала бы их на компьютер, причем поиск новых версий производится не только для программы запустивший апдейтер, но и для других программ, зарегистрированных в базе апдейтера.
Минусы этой идеи и такого механизма обновления:
- возможно не для всех программ это подойдет, у каждой программы своя специфика. Но никто не мешает поучаствовать вам в разработке и принятия данного стандарта таким образом, чтобы в результате он отвечал требованиям вашего приложения.
Кто и что выиграет от принятия подобного стандарта?
Разработчики:
- Больше не придется каждому изобретать свой велосипед, т.к. будет уже готовое решение для реализации механизма обновления в вашем продукте.
- Более быстрый переход пользователей на новую версию, т.к. проверка новых версий будет осуществляться не только когда пользователь вызовет (сработает по расписанию) данную функцию из вашей программы, но и когда он обратится к аналогичной функции другого продукта поддерживающий данный стандарт.
- Регистрация вашей программы в еще одном каталоге, что возможно немного увеличит число ваших потенциальных клиентов
- Так же можно будет предусмотреть возможность проводить небольшие маркетинговые программы типа "Возможно с этой программой вам понадобится Имя_программы" или "С этой программой часто устанавливают..."
Пользователи:
- пользователю не надо проверять наличие обновления для каждой программы отдельно. Все делается сразу и для многих программ одновременно.
- Экономия оперативной памяти уже при использовании нескольких программ на одном компьютере, поддерживающих данную технологию
Как я все это вижу:
У каждого на сайте хранится xml файл который содержит данные о текущей версии, описание что добавлено в этой версии и инструкции для обновления. Например: скачать
дистрибутив новой версии по такому-то URL или в зависимости от установленной версии загрузить тот или иной список файлов, как у антивирусов, после скачивания выйти из программы перезаписать файлы и заново запустить программу, перезагрузить компьютер.
На стороне пользователя все работает так:
1) Пользователь в одной из программ жмет кнопку "Проверить наличие новой версии".
2) Запускается апдейтер
3) На сервер отправляется список установленных на компьютере программ и их версии. Данный список формируется из записей реестра. Каждая программа в момент установки записывает в определенную ветку реестра свой ID и номер версии.
4) Сервер апдейтера ищет по ID программ в базе ссылки на их .xml файлы с информацией об обновлении
5) Получает номер последней версии для каждой из программ
6) Сравнивает версии каждой программы. Если вышла новая версия, то получает ее описание и другие данные необходимые для обновления. Чтобы уменьшить нагрузки на сайты программ данные о новых версиях можно обновлять раз или два в сутки, а в остальное время эти данные брать из кэша.
7) По совокупным данным всех программ формируется ответ клиенту в виде .xml файла
8) Апдейтер на стороне клиент парсит файл, который ему вернули и производит обновления согласно инструкциям в нем.
Для подключения к этой системе всего лишь необходимо:
1. Внести несущественные изменения в код уже существующего
модуля обновления, а именно вызов программы апдейтера вместо существующего метода проверки новых версий
2. Добавить в дистрибутив программу - апдейтер
3. Составить и расположить у себя на сайте xml файл нужного формата
4. Зарегистрироваться в общей базе программ.
Свои комментарии и идеи оставляйте ниже. Так же хотелось бы узнать найдутся ли тут добровольцы готовые помочь в реализации всей этой схемы? |
|
|
|