프로그래밍/JAVA2009. 8. 7. 10:25
1. 개요
자바 웹 스타트는 애플리케이션을 실행하기 위한 기본적인 툴로서 웹브라우저를 사용하여 로컬에 SUN의 자바 런타임 환경에 포함되어 있는 자바 웹 스타트 클라이언트 프로그램을 이용하여 애플리케이션을 사용자의 컴퓨터에 설치한다. 사용자가 JNLP(Java Network Launching Protocol)파일을 액세스할 때마다 자바 웹 스타트 클라이언트는 해당 애플리케이션을 자동으로 사용자의 컴퓨터에 다운로드 하고 실행시킨다. 이렇게 자바 웹 스타트가 실행되는 전체 과정은 최종 사용자와의 인터렉션을 거의 필요로 하지 않을 뿐만 아니라, 자바 개발자들이 자바 애플리케이션을 배포하고 유지 보수하는 수고를 최대한 줄여 준다.

자바 웹 스타트의 장점을 요약하면 다음과 같다.

  • 바탕화면이나 웹화면의 아이큰을 단 한번 클릭함으로서 자동 다운로드 및 캐쉬를 사용한 응용 프로그램이 구동되어 빠르고 쉽게 자바 응용 프로그램을 실행할 수 있다.
  • Linux, Mac, Windows 등 다양한 플랫폼에서 동일한 User Interface로 실행됨으로 OS로 부터 독립적인 환경을 제공한다.
  • 웹 환경의 단순한 HTML 및 JavaScript로 구현되던 User Interface를 보다 강력한 자바 UI 기술인 AWT/Swing/SWT 등을 이용하여 구현할 수 있다.
  • 응용프로그램이 자동적으로 캐쉬되고 업데이트 됨으로 첫번째 구동 이후에는 매우 빠른 속도록 응용프로그램이 시작된다.
  • Java 2의 보안 모델 Signed Application 및 "sandbox" 모델이 적용됨으로 사용자들은 보다 안전한 환경에서 강력한 UI를 사용할 수 있다.


2. 디지털 사인(Sign)
위의 사실들 중에서 sandbox 모델은 엄격하게 제한된 권한을 가지고 애플리케이션을 실행하는데 로컬 컴퓨터의 파일 시스템, 시스템 라이브러리, 그래픽 자원 등과 같은 여러 시스템 자원을 액세스할 수 가 없다. 따라서 자바 애플리케이션을 자바 웹 스타트 기술을 이용하여 실행(배포)할 경우에는 애플리케이션을 구성하는 모든 JAR파일들을 공신력 있는 VeriSign 또는 서트등과 같은 SSL 인증서를 공급해 주는 공증(CA) 서비스를 제공하는 회사로부터 인증서를 받기를 권장한다. 자체 인증서를 발급하기를 원한다면 keytool 명령어를 이용하여 자체 인증서를 발급할 수 있다.

 keytool -geykey -keystore 키이름 -alias 사용자 

위와 같은 keytool 명령어를 실행하면 암호, 사용자 이름, 조직, 소재지, 국가 등의 정보를 입력하도록 프롬프트가 나타난다. 인증서가 정상적으로 생성되었다면 다음과 같은 명령을 이용해여 jar 파일에 sign 한다.

 jarsigner -keystore 키이름 app.jar 사용자


3. JNLP 파일 생성하기
JNLP(Java Network Launching Protocol) 파일은 자바 웹스타트에서 자동 배포될 모듈에대한 정보 및 어떻게 배포될 것인 가에 대한 정보를 기술해주는 화일로 웹서버에서는 우선 이 파일부터 호출 되고 이 화일에 기술된 대로 JAR 화일을 다운로드하여 프로그램이 실행되도록 되어 있다. JNLP 화일은 기본적으로 XML 문법 체계를 가지고 있으며, 모든 테그에 대한 정보를 자세히 보려면 SUN site에서 JNLP Spec v1.0을 참고하도록 한다.

다음은 CrawlerMonitor.jar를 배포할 수 있도록 만들어진 CrawkerMonitor.jnlp 파일의 내용이다.

	
		SOPT(Shout Our Passion Together)
		
		
		CrawlerMonitor
		CrawlerMonitor는 SOPT개발팀의 오픈소스 프로젝트인 ImgKnight를 위해 만들어진 소프트웨어 입니다.
		
	

	
		
        
	
	
		
       

	
		
        
	
	
		
        

	
		192.168.0.2
		9081
	


jnlp 태그

  • spec 속성은 jnlp 1.0 버전 이상임을 정의한다.
  • codebase 속성은 본 문서의 모든 파일의 기본 URL을 정의한다.
  • href 는 본문서 파일 이름을 정의한다.

information 태그
각종 하위 태그로 본 프로그램에 관한 제목, 제작사, 설명, 아이콘 등을 기술하고 있으며, 이는 배포 및 실행될 때 사용자가 화면을 통해 볼 수 있는 아이콘 및 설명으로 사용된다. 

security 태그
프로그램에 실행될때 주는 local 자원에 대한 권한을 기술한다. 클라이언트 컴퓨터의 자원을 전혀 제약 없이 사용할 수 있도록 하고 싶다면 <all-permission />을 지정한다.

resource 태그
하위 태그를 이용하여 j2se 버젼 및 사용되는 jar 화일들을 기술하여 실행환경에 대한 정보를 담고 있다. 앨리먼트의 OS 속성을 지정하면 클라이언트의 해당 운영체제에 따라 다운로드해야할 JAR파일을 또는 네이티브 라이브러리를 기술할수 있다.

application-desc 태그
애플리케이션 실행시 필요한 사항을 기술하며 특히 main-class 는 반드시 지정되어야할 속성으로 자바 프로그램의 main 메소드가 있는 클래스명을 써준다. 명령행 인자를 전달하기 위해 argument 앨리먼트를 이용한다.

JAR 및 JNLP 파일을 만들었다면 이를 적절하게 배포해줄 웹서버 환경이 필요하다.  자바 웹스타트는 기본적으로 HTTP 프로토콜을 사용하며 클래스가 실려있는 JAR 파일 및 이 내용을 기술하고 있는 JNLP파일은 결국 웹서버의 서비스 디렉토리에 
복사되어야 한다. 또한 JNLP 확장자 파일에 대한 마임타입(mime type)을 웹 서버에 설정해 주어야 한다. JNLP 파일에 대한 마임타입은 아래와 같다.

 application/x-java-jnlp-file JNLP

'프로그래밍 > JAVA' 카테고리의 다른 글

RSA 암호화  (0) 2010.01.15
Java 쓰레드  (0) 2009.12.04
스트러츠 properties 한글 편집  (0) 2009.12.03
Java XML Parser JDOM  (2) 2009.09.03
JRE Detection  (0) 2009.08.11
자바 웹 스타트(Java Web Start)  (0) 2009.08.07
JFreeChart with SWT  (0) 2009.07.14
자바 데몬(daemon) 만들기  (2) 2009.07.08
LRU 캐쉬 엔진의 구현  (0) 2009.06.26
JAVA Memory Leak  (2) 2009.06.25
Out Of Memory Error(OOME)에 대하여  (0) 2009.06.25
Posted by devop

댓글을 달아 주세요