Как автоматически обновить Java-приложение во время его запуска?

У меня есть приложение Java 1.6, развернутое на нескольких машинах (~ 30) и запущенное как служба Windows.

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

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

Этот механизм можно сравнить с проверкой Maven snapshot: если на удаленном хранилище существует более новая версия SNAPSHOT, то Maven загружает ее перед запуском. Обратите внимание, что само приложение будет развернуто на Maven-репозитории (в нашем случае Nexus), поэтому проверка на наличие обновления будет производиться по этому экземпляру Nexus.

Каковы мои технические решения для реализации такого автоматического обновления приложения?

Не стесняйтесь спрашивать меня о технических деталях или о контексте...

Спасибо.


Редактировать: Как заявил Питер Лоури, я могу использовать Java Web Start. Однако, как я могу интегрировать JWS в Java-приложение, которое запускается как служба Windows?

11
задан Andrew Thompson 31 January 2012 в 13:57
поделиться