Управление политикой обновления Eclipse

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

В компаниях, где с продуктом на основе Eclipse работает большое число пользователей (как правило, это коммерческие компании), такой подход может быть связан с различными неполадками:

  1. Обновления больших продуктов (более 500 Мб) также достаточно большие. Ситуация, когда каждый из сотен разработчиков должен загрузить обновление, размер которого превышает 500 Мб, может быть нежелательна. Кроме снижения пропускной способности, запросы на загрузку больших обновлений могут отклоняться. В результате повторяющихся попыток увеличится время простоя.
  2. Некоторые компании явным образом запрещают разработчикам загружать обновления из сети Internet. Например, они могут создать локальную группу поддержки, которая может быть не готова к обработке запросов, связанных с версией продукта, уже доступной на сайте обновления поставщика. Кроме того, может потребоваться дополнительное ограничение и утверждение списка обновлений и исправлений. Рекомендуется для этой цели применять локальные сайты обновлений 'proxy' (за брандмауэром).
  3. После размещения обновлений на сайтах proxy администраторам потребуется способ уведомления пользователей о доступных обновлениях.

2. Стратегия обновления

2.1 Создание локальных сайтов обновления (proxy)

В первую очередь администратору продукта необходимо создать локальный сайт обновления Eclipse на сервере в локальной сети организации (за брандмауэром). Этот сайт обновления будет частично отражать сайт обновления в Internet, поскольку он будет хранить обновления только тех модулей и комплектов, которые компания считает нужным применить в данный момент. Фактически этот сайт - это тот же сайт обновления Eclipse, с файлом site.xml и архивами комплектов и модулей.

Администраторы могут создать такой сайт двумя способами:

  1. Служба поддержки продукта может опубликовать файл zip с нужными данными для данного сайта обновления. Администратор должен будет загрузить файл zip с Web-страницы службы поддержки и распаковать его на локальном сервере. Этот способ полезен для очень больших файлов zip, для которых рекомендуется применять диспетчер загрузки, который способен возобновлять ранее приостановленные загрузки.
  2. Программа обновления Eclipse позволяет создавать полное зеркало удаленного сайта обновления или выбирать обновления и исправления, которые требуется загрузить. Зеркальное копирование выполняется в автоматическом режиме и в значительной степени упрощает работу администратора, однако оно возможно только при наличии постоянного подключения к сети.

2.2 Общие принципы управления обновлениями

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

Этот файл создается в формате XML. Для него можно указать произвольное имя. Файл задается на странице Параметры > Установка/Обновление в поле Стратегия обновления. По умолчанию значение в этом поле не указано: пользователи могут ввести URL файла стратегии обновления. Файл управляется локальным администратором и доступен для всех установленных экземпляров продукта. Совместное использование файла стратегии обновления можно обеспечить следующими способами:

Формат файла стратегии должен соответствовать следующему определению типа документа:

<?xml encoding="ISO-8859-1"?>

<!ELEMENT update-policy (url-map)*>
<!ATTLIST update-policy
>

<!ELEMENT url-map EMPTY>
<!ATTLIST url-map
    pattern    CDATA #REQUIRED
    url        CDATA #REQUIRED
>

url-map

Этот элемент позволяет переопределить URL сайтов обновления, указанные в манифестах комплектов. В процессе поиска новых обновлений Eclipse проверяет стратегию обновления (если она задана), а также соответствие значения url-map заданному префиксу комплекта. При совпадении с префиксом заданный URL будет использован вместо встроенного. Таким образом, администраторы могут настроить поиск обновлений продуктами Eclipse на локальном сервере, расположенном за брандмауэром. В то же время для комплектов третьих сторон, устанавливаемых программой обновления Eclipse, продолжает применяться механизм обновления по умолчанию, поскольку в стратегии нельзя будет найти соответствующие совпадения.

В файл стратегии можно добавить несколько элементов url-map. Степень детализации префиксов комплектов можно выбирать произвольным образом. Например, для перенаправления всех обновлений Eclipse в атрибуте pattern можно указать шаблон "org.eclipse". Аналогичным образом, если перенаправление требуется для отдельных комплектов, в качестве шаблона можно указать полный ИД комплекта.

Шаблоны можно указать таким образом, чтобы постепенно сузить область возможных совпадений. При этом для отдельного комплекта может быть обнаружено несколько совпадений. В этом случае применяется наиболее точное совпадение. Например:

<?xml version="1.0" encoding="UTF-8"?>
<update-policy>
	<url-map pattern="org.eclipse" url="URL1"/>
	<url-map pattern="org.eclipse.jdt" url="URL2"/>
</update-policy>

В этом примере все комплекты Eclipse обновляются с помощью URL1. Исключение составляет комплект org.eclipse.jdt, для которого применяется URL2.

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

2.3 Автоматический поиск обновлений

Третья часть всего механизма описана в другом разделе, но упоминается и здесь, поскольку является неотъемлемым его компонентом. Eclipse может осуществлять поиск автоматических обновлений по расписанию, например, при каждом запуске (значение по умолчанию), ежедневно, еженедельно и пр. .

3. Обзор

Ниже перечислены основные этапы реализации механизма обновления:

  1. Администратор выделяет сервер, входящий в состав локальной сети организации, для размещения обновлений продукта. Предварительно на этом сервере сайты обновлений отсутствуют. В системе должен быть запушен сервер HTTP.
  2. Администратор настраивает файл стратегии обновления, размещает его на сервере и предлагает всем пользователям обновить параметр стратегии обновления.
  3. По мере предоставления поставщиком продукта новых обновлений и исправлений администратор загружает поддерживаемые обновления на локальный сервер.
  4. Функция автоматического обновления запускается с заданной частотой, загружает локальные обновления и уведомляет пользователя.
  5. Пользователь выбирает, какие именно обновления следует установить

Связанные задачи
Планировщик автоматических обновлений