from Java Plugin: The Kernel is Back on Ajaxian

Sun 사의 Ethan Nicholas 씨가 베타를 출시한 Java 6 update 10 에 대한 글을 썼습니다.

Java 진영에는 꽤 큰 상이 주어졌고, 백만년만에 처음으로 Java applet 에 큰 변화가 일어났습니다.

What was the pain again?

Java 프로그램은 일단 로드되고 실행되면, 보통은 부드럽게 잘 동작합니다. 최근의 Java Runtime Environments (JREs)는 안정적이고, 신뢰성있으며 또한 빠릅니다.

안타깝게도, "로드되고 실행"하는 부분이 필요이상으로 까다로웠습니다. 이런게 문제였죠:

  • 특히 웹 브라우저에서, JREs 탐지의 어려움
  • 새로운 JREs의 자동설치가 어려움
  • 너무 큰 다운로드 크기
  • 좋지 않은 콜드 스타트(cold start) 성능
  • Applet과 Web Start 프로그램간의 작은 중첩

Java 6u10 은 이러한 문제들을 해결하기 위해 만들어졌습니다. 공개된 API가 변경되지 않도록 조심하면서, 이런 문제를 해결할 수 있었습니다 - Java 7까지 기다릴 필요가 없이요!

해결책은 뭔데요?

Java Kernel

Java Kernel 은 Java 소프트웨어를 더 빠르게 로드하고 실행하기 위한 새 배포판입니다. 전체 JRE 대신, 사용자들은 가장 일반적으로 필요한 JRE 컴포넌트가 포함된 작은 설치파일("kernel")을 다운로드합니다. 추가 컴포넌트들은 필요할 때 다운로드하며, JRE는 백그라운드에서 남아있는 컴포넌트들을 다운로드하고 스스로를 재조립합니다.

현재 빌드에서, Swing 프로그램과 Java applet 의 보통 크기는 4-5MB 쯤됩니다. JRE 전체가 14.4MB 인 것과 비교됩니다.

Next-Generation Java Plug-In

Java 6u10은 당신이 Firefox 3 나 Internet Explorer를 사용한 만큼 오랫동안 기본으로 사용되었던 Java Plug-in의 새 구현물을 포함하고 있습니다. 차세대 플러그인은 한 개 이상의 분리된 프로세스로 브라우저 외부에서 애플릿을 실행합니다. 애플릿은 늘 그래왔듯이 웹 브라우저 창 내부에서 보여지겠지만 이는 서로 다른 JRE 버전을 사용하는 것이나, 커맨드 라인 인자, 다른 애플릿 실행 설정이 가능하다는 것을 의미합니다.
실행중인 웹 브라우저에 의해 제공되는 격리와 JRE -- 두 개의 매우 크고, 매우 복잡한 소프트웨어 -- 는 독립적인 프로세스 공간에서 각자의 신뢰성을 개선하고 애픗릿에 동등한 유연성을 부여하며 다른 Java 소프트웨어들이 누려왔듯 JRE 설정을 제어합니다.

애플릿이 Java Web Start 프로그램이 그러했듯 강력한 JRE 버전 선택 기능과 설정 기능을 지원하게 되었기 때문에, 두 종류의 프로그램이 같은 메커니즘을 사용하는 것은 당연합니다. Java Plug-in 은 이제 애플릿 설정이나 시작 옵션을 정하는데 Java Network Launching Protocol (JNLP) 파일을 사용할 수 있습니다. 조금 더 나아가면, 애플릿과 Web Start 프로그램을 같은 프로그램으로서 배포할 수도 있습니다. PersistanceServiceFileSaveService 같은 JNLP 서비스의 이점은 그대로 취하면서 말입니다.

새 Plug-in의 장점입니다:
  • 신뢰성 개선
  • JavaScript 통신 개선
  • 애플릿 별 JRE 커맨드 라인 인자 제어
  • 애플릿 별 JRE 메모리 설정, 최대 힙 크기 증가
  • JNLP 지원
  • 애플릿 별 JRE 버전 선택
  • Vista 지원 개선

새로운 plug-in에 대한 보다 자세한 정보는 릴리스 노트에서 확인할 수 있습니다.

Java Deployment Toolkit

Java 배치 툴킷은 Java Applet 이나 Java Web Start 프로그램을 배치합니다. Deployment
Toolkit JavaScript 파일
은 다음 기능을 제공합니다.

  • 설치된 JRE들의 정확한 탐지
  • 가벼운 JRE 설치
  • 단 한 줄로 완벽한 애플릿 런칭 (JRE 탐지와 필요시 업그레이드)
  • 단 한 줄로 완벽한 Web Start 프로그램 런칭

다음 HTML 은 Java 1.6 이 설치되었는지 확인하고, Java Applet을 실행하는 코드 전체입니다:

<script src="http://java.com/js/deployJava.js"></script>

<script>
    deployJava.runApplet({codebase:"http://www.example.com/applets/",
    archive:"ExampleApplet.jar", code:"Main.class",
    width:"320", Height:"400"}, null, "1.6");
</script>

추가로, 이 버전을 사용하면 웹 브라우저에서 애플릿을 실행해서, 페이지 밖으로 끌어내고, 브라우저를 닫으면 애플릿이 여전히 실행중인 것을 볼 수도 있습니다(다른 프로세스에서 동작하므로 가능). 상당히 멋지죠.

Java와 JavaScript 간의 통신이 쉬워진 것도 재밌는 기회가 될 수 있을 것 같습니다.

TAG
Posted by 행복한고니 트랙백 0 : 댓글 1

댓글을 달아 주세요

  1. addr | edit/del | reply mongs 2009.09.01 23:31

    좋은 정보 감사합니다. 담아갈께요