2012-01-31 6 views
11

Mam aplikację Java 1.6 wdrożoną na kilku komputerach (~ 30) i uruchamianą jako usługa systemu Windows.Jak automatycznie uaktualnić aplikację Java podczas jej uruchamiania?

Mój główny problem dotyczy konserwacji tych wdrożonych artefaktów: jeśli opracuję nową wersję tej aplikacji, nie chcę ręcznie ponownie wdrażać jej na każdym komputerze.

Idealnie, gdy uruchamiana jest usługa Windows, sprawdza serwer zdalny, jeśli istnieje aktualizacja, a jeśli zostanie znaleziona, to uaktualnia aplikację. Należy pamiętać, że jest dopuszczalne, że po tym uaktualnieniu usługa wymaga ponownego uruchomienia.

Mechanizm ten można porównać do weryfikacji snapshot Maven: czy istnieje nowsza wersja wersji SNAPSHOT na zdalnym repozytorium Maven następnie pobrać go przed uruchomieniem. Należy pamiętać, że sama aplikacja zostanie wdrożona w repozytorium Maven (w naszym przypadku Nexus), więc sprawdzenie aktualizacji zostanie wykonane w odniesieniu do tej instancji Nexus.

Jakie są moje techniczne rozwiązania do wdrożenia takiej automatycznej aktualizacji aplikacji?

nie wahaj się zadać mi więcej szczegółów na temat danych technicznych lub o kontekście ...

Dzięki.


Edit: Jak stwierdził Peter Lawrey, mogę używać Java Web Start. Jak jednak mogę zintegrować JWS z aplikacją Java uruchamianą jako usługa Windows?

+0

To nie jest problem języka Java. Więcej zarządzania wdrożeniem. – Santosh

+0

Chociaż tak sformułowany nie jest to naprawdę problem z Javą, nie widzę, jak nieco bardziej ogólna wersja problemu (zapewnienie, że uruchomiona wersja jest zawsze najnowszą dostępną wersją) nie może być rozwiązana w Javie. Może może być offshot z ładowaniem klasy sieciowej? –

+0

@Santosh tak i nie. Windows - szczególnie te, których tu używamy - nie zapewnia wymaganych narzędzi ułatwiających taką procedurę. Daj mi Linuxa, ssh, lub niektóre skrypty basha, a ja będę szczęśliwy :) – romaintaz

Odpowiedz

4

chciałbym spojrzeć na Java Web Start

+0

JWS był jednym z moich pomysłów, ale nie udało mi się sprawić, by działało zgodnie z oczekiwaniami. Jednym z moich problemów jest to, że aplikacja powinna być uruchamiana jako usługa Windows, a JWS uruchamia kolejną maszynę JVM dla aplikacji. W ten sposób usługa Windows zatrzyma się po uruchomieniu JVM uruchomionej przez JWS. – romaintaz

1

używanej do tego celu jest użycie wyrzutni. Kroki są następujące:

  1. Uruchom program uruchamiający.
  2. Program uruchamiający sprawdzi, czy aplikacja ma zostać zaktualizowana. Jeśli tak, program uruchamiający aktualizuje aplikację (uważam to za "krok aktualizacji").
  3. Po kroku aktualizacji program uruchamiający uruchomi aplikację.
Powiązane problemy