2012-04-11 2 views
3

간단하고 안정적인 자동 업데이트를 지원하는 응용 프로그램을 어떻게 설계 하시겠습니까?자동 업데이트 소프트웨어 설계

나는 어떻게자를 수 있었고 여러 가지 조작이 필요한지에 관심이있다.

편집 : 처리 할 필요가 Self-destructing application

+3

Java Web Start를 통한 배포? – assylias

+1

@assylias에서 설명한 바와 같이 [JWS] (http://stackoverflow.com/tags/java-web-start/info)는 리치 클라이언트 데스크톱 응용 프로그램을 배포하기위한 확실한 선택입니다. 응용 프로그램. 리치 클라이언트 데스크톱 앱이 아닙니다. 좀 더 구체적이어야합니다. –

+1

아, BTW - 이제 [마지막 질문] (http://stackoverflow.com/questions/10107989/self-destructing-application)을 회상 해 보겠습니다. JWS는 '자체 파괴 응용 프로그램'을 배포하는 데 사용할 수있는 최악의 기술입니다. Jar 파일의 다운로드 위치를 제어 할 수있을뿐만 아니라 신뢰할 수있는 JWS 앱까지 제어 할 수 있습니다. 해당 위치가 어디인지를 결정할 수 없습니다. ;) –

답변

5

우려 :이이 질문에 링크 된 업데이트를 수행하는 응용 프로그램은 자체이 갱신되는 경우

  • , 다시 시작이다 (파일 사용 중 오류를 피하기 위해) 파일을 제자리에 옮기려면 스텁을 실행해야합니다.

  • 당신이 통신하는 서비스는 무엇이든간에 웹 요청을 통해 파일을 검색하려면 실행중인 설치된 패키지의 현재 버전을 알아야합니다. 동적으로 파일 URL 목록을 작성하고 파일을 압축하여 클라이언트의 단일 URL에 배치 할 수도 있습니다. 그렇지 않으면 클라이언트가 각 파일을 가져 와서 URL 목록을 보도록하십시오. 각 URL은 '복사'또는 '실행'과 같은 작업과 연결됩니다.

  • 검색된 각 파일을 처리하여 클라이언트에 설치하십시오.

  • 업데이트는 원자 적이어야합니다 (작업의 일부가 실패 할 경우 롤백 할 수있는 기능). 부분 상태로 남기를 원하지 않습니다.

3

Java Network Launch Protocol은 자동 업데이트 소프트웨어를 쉽게 배포 할 수 있도록 도와줍니다. 이 사이트의 일부 사용자는 문제를보고했으나 이전 버전의 Java를 사용하거나 JNLP 파일을 올바르게 설정하지 않았기 때문에 발생할 수 있습니다. 관리자로서 로그인하지 않고도 Mac 및 Windows와 PC에서 잘 작동한다는 것을 알게되었고, 효과적으로 소프트웨어를 "설치"할 수있었습니다. 사용자의 persepctive에서, 그것은 내가 그녀에게 새로운 데스크톱 응용 프로그램을 준 것과 같습니다. 바탕 화면에는 프로그램 아이콘이 있으며 내 프로그램에 저장된 파일이 관련되어 있습니다. Windows는 해당 아이콘을 제공하고 두 번 클릭하면 열 수 있습니다. 그러나 JNLP가 프로그램을 실행할 때마다 JNLP는 로컬에 저장된 JAR 파일을 내 서버에있는 파일과 비교하여 검사하고 파일이 내 서버에있는 파일보다 오래되면 소프트웨어가 업데이트됩니다. 이 프로그램은 모든 것을 다운로드해야하는 경우를 제외하고는 기본 Windows 응용 프로그램만큼 빠른 속도로 실행됩니다. 서버에있는 파일을 항아리

  1. 변경 짧고 쓸모가있을 수 :

    지금 프로그램 자폭을 만들기 위해, 여기에 두 가지 옵션이 있습니다. 사용자가 프로그램을 실행하면 업데이트되고 프로그램을 더 이상 사용할 수 없다는 대화 상자가 나타납니다. 이 방법으로 기능을 비활성화 할 수도 있습니다. 그러나 이것은 모든 사용자에게 한 번에 영향을 줄 것입니다. 여러 가지 다른 JNLP 파일을 만들 수 있습니다. 각각의 클래스는 사용자가 동일한 타임 라인을 사용하여 살고 있습니다. 서비스를 통해 JNLP 파일을 생성 할 수도 있습니다. 그러나 그것을 비활성화하는 컨트롤은 여전히 ​​서버의 항아리를 변경하면 발생합니다.

  2. 프로그램이 시작되면 먼저 웹 서비스에 연결하여 프로그램이 계속 실행되고 있는지 확인합니다. 사용자가 지금 사용할 수있는 기능과 관련된 데이터베이스 테이블을 생성 할 수 있습니다. 사용자가 등록하지 않으면 처음에 프로그램을 실행할 때 ID를 작성하여 db 테이블에 저장하고 환경 설정 API를 사용하여 클라이언트의 컴퓨터에 저장해야합니다.

    JNLP 파일이 응용 프로그램은 라인과 저장 기술하는 XML 파일입니다 업데이트를 autonate하기 위해 JNLP를 사용하여 익숙하지 않은 경우

, 여기 당신이 시작하는 데 도움이되는 몇 가지 배경입니다 어떤 JAR 파일을 실행해야하는지 알려줍니다. 스플래시 화면, 바탕 화면 아이콘, 업데이트 스타일 (항상 묻기, 묻지 않고 방금 업 그레 이드, 백그라운드에서 업데이트) 및 프로그램과 연결할 파일과 같은 다양한 응용 프로그램 속성도 지정됩니다.

Read the JNLP developer guide 작동 방법에 대한 자세한 설명이 필요합니다.

온라인으로 수많은 예제를 볼 수도 있습니다. Chrome에서 JNLP 파일의 기본 동작은 파일을 저장하는 것입니다. 다른 브라우저에서는 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 저장해야 할 수도 있지만 파일에 대한 직접 링크가 있고 멋진 자바 스크립트 버튼이 아닌 경우에만 작동합니다. 그런 다음 JNLP 파일을 원하는 텍스트 편집기에서 예를 들어 열 수 있습니다.
The swing tutorials JNLP 파일을 사용하여 코드를 보여줍니다.

관련 문제