2012-01-31 26 views
11

Tôi có một ứng dụng Java 1.6 được triển khai trên một số máy (~ 30) và bắt đầu như một dịch vụ Windows.Cách tự động nâng cấp ứng dụng Java trong khi khởi động?

Vấn đề chính của tôi liên quan đến việc duy trì các hiện vật được triển khai này: nếu tôi phát triển phiên bản mới của ứng dụng này, tôi không muốn triển khai lại thủ công trên mỗi máy.

Lý tưởng nhất là khi dịch vụ Windows khởi động, nó sẽ kiểm tra trên máy chủ từ xa nếu có bản cập nhật và nếu nó được tìm thấy, thì nó sẽ nâng cấp ứng dụng. Lưu ý rằng có thể chấp nhận được rằng sau khi nâng cấp này, dịch vụ yêu cầu phải khởi động lại.

Cơ chế này có thể được so sánh với xác minh chụp nhanh Maven: nếu có phiên bản mới hơn của phiên bản SNAPSHOT trên kho lưu trữ từ xa, sau đó tải xuống Maven trước khi chạy. Lưu ý rằng bản thân ứng dụng sẽ được triển khai trên kho lưu trữ Maven (trong trường hợp của chúng tôi là Nexus), do đó việc kiểm tra cập nhật sẽ được thực hiện đối với phiên bản Nexus này.

Các giải pháp kỹ thuật của tôi để thực hiện cập nhật ứng dụng tự động như vậy là gì?

Đừng ngần ngại hỏi thêm chi tiết về thông tin kỹ thuật hoặc về ngữ cảnh ...

Cảm ơn.


Sửa: Như đã nêu bởi Peter Lawrey, tôi có thể sử dụng Java Web Start. Tuy nhiên, làm thế nào tôi có thể tích hợp JWS trong một ứng dụng Java được chạy như một dịch vụ Windows?

+0

Đây không phải là vấn đề về java. Thêm quản lý triển khai. – Santosh

+0

Trong khi ngữ pháp không thực sự là một vấn đề Java, tôi không thấy một phiên bản chung chung của vấn đề (đảm bảo rằng phiên bản bắt đầu luôn là phiên bản mới nhất có sẵn) không thể được giải quyết bằng Java. Một bản tóm tắt của tải lớp mạng, có thể? –

+0

@Santosh có và không. Windows - đặc biệt là những cái chúng tôi đang sử dụng ở đây - không cung cấp các công cụ cần thiết để giảm bớt một thủ tục như vậy. Hãy cho tôi Linux, ssh, hoặc một số kịch bản bash, và tôi sẽ hạnh phúc :) – romaintaz

Trả lời

4

Tôi sẽ xem Java Web Start

+0

JWS là một trong những ý tưởng của tôi, nhưng tôi đã không thành công để làm cho nó hoạt động như mong đợi. Một trong những vấn đề của tôi là ứng dụng sẽ được chạy như một dịch vụ Windows và JWS bắt đầu một JVM khác cho ứng dụng. Do đó, dịch vụ Windows sẽ dừng lại khi JVM bắt đầu bằng JWS bắt đầu. – romaintaz

1

Một kỹ thuật phổ biến cho việc này là sử dụng trình khởi chạy. Các bước như sau:

  1. Khởi chạy trình khởi chạy.
  2. Trình khởi chạy kiểm tra xem ứng dụng có được cập nhật hay không. Nếu có, trình khởi chạy cập nhật ứng dụng (Tôi nghĩ đây là "bước cập nhật").
  3. Sau bước cập nhật, trình chạy sẽ chạy ứng dụng.
Các vấn đề liên quan