JUpdater - JUpdater
Разработчики) | Андреас Лаунила |
---|---|
Стабильный выпуск | 0.5 / 24 марта 2006 г. |
Операционная система | Независимая платформа |
Тип | Утилита автообновления |
Лицензия | LGPL |
Интернет сайт | www.lokorin.com/jupdater/ |
JUpdater это проект, целью которого является создание утилиты, позволяющей разработчикам быстро выполнять проверку версий в Ява программы. Утилита гарантирует, что пользователь всегда может быть уведомлен о новых версиях и легко обновится до последней версии изнутри программы, не выполняя никаких действий. Утилита загружает только устаревшие файлы, экономя трафик.
JUpdater делится на две части. Небольшой клиент Java, который можно легко внедрить в существующие программы, и PHP серверная часть, которая отслеживает версии и предоставляет клиенту всю необходимую информацию. Проект все еще находится в разработке, возможно, в нем есть ошибки. Любая программа, которая должна быть обновлена через JUpdater, должна содержаться в файл jar.
Клиент
В программы необходимо добавить небольшой набор классов, клиент JUpdater, чтобы они могли сравнивать свои версии с центральным сервером. Клиент требует JRE 1.5 или выше.
Клиент предоставляет три основных операции.
- Обновить указанный файл jar, сравнив все файлы ' MD5 контрольные суммы, это делается в несколько шагов, описанных ниже.
- Проверьте, доступна ли новая версия на сервере, используя Реализация-Версия атрибут в баночка манифест.
- Проверьте, доступна ли новая версия, и получите соответствующий журнал изменений с помощью атрибута Implementation-Version.
An интерфейс при желании может быть реализован для прослушивания процесса обновления. Эта информация затем может быть отображена, например, в GUI для пользователя.
Сервер
JUpdater требует центрального сервера, который содержит информацию о последней версии. Клиенты подключаются к серверу, чтобы проверить, есть ли новые версии, и загрузить изменения и журнал изменений. Для сервера требуется PHP 4.3 или выше и MySQL 4.0 или выше.
Как работает обновление
Вот подробное описание того, что на самом деле происходит за кулисами при выполнении полной проверки обновлений.
- Метод updateJar экземпляра JUpdater вызывается с именем обновляемого файла jar и соответствующим именем программы.
- Клиент открывает соединение с сервером и отправляет имя программы (через HTTP Post).
- Сервер устанавливает сеанс и отвечает идентификатором сеанса и URL-адресом jar сервера для этой программы. С этого момента клиент и сервер находятся в сеансе, и поэтому сервер запоминает, какую программу клиент хочет обновить, во время всех дальнейших запросов, связанных с этим конкретным обновлением.
- Клиент сохраняет ответ сервера и отправляет запрос списка файлов jar-файла сервера через XML-RPC. Сервер отвечает списком (взятым из базы данных сервера).
- Клиент рассчитывает Контрольные суммы MD5 для всех локальных файлов, которые он может найти (просматривая список файлов с сервера), остальным присваивается контрольная сумма 0. Затем клиент отправляет результат на сервер (через XML-RPC).
- Сервер проверяет все контрольные суммы MD5 по записям в базе данных и возвращает список всех файлов, для которых контрольные суммы не совпадают (то есть список всех файлов, которые устарели). Следующий массив отправляется обратно для каждого устаревшего файла: [имя файла, размер, правильный md5] (все эти данные считываются из базы данных).
- Если ничего не устарело, клиент останавливается здесь, в противном случае он продолжает работу.
- Клиент запрашивает журнал изменений с сервера (через XML-RPC). Сервер отвечает всеми изменениями (введенными администратором) между версиями клиента и последней версией.
- Клиент отображает изменения и спрашивает слушателя с помощью shouldStartDownloading (), следует ли загружать файлы.
- Если из метода возвращается false, клиент останавливается здесь, в противном случае он продолжается.
- Клиент начинает загрузку устаревших файлов по одному во временное хранилище. Для каждого файла клиент вычисляет контрольную сумму MD5 и проверяет ее соответствие, в противном случае он пытается снова (пока не закончатся попытки).
- Клиент начинает исправление после загрузки всех устаревших файлов. Он копирует обновленные файлы текущего jar-файла в новый jar-файл, а затем записывает загруженные файлы в этот jar-файл. Как только все будет сделано без ошибок, он заменяет старую банку на последнюю, тем самым завершая обновление.
Смотрите также
внешняя ссылка
- Readme для JUpdater - Ридми для приложения.