기술지원 문의

Resin 3.1 버젼의 바뀐 내용들
권용찬 / 2007-02-02 11:48

Resin 3.1 의 변경사항

 

1. Resin 3.1은 Servlet Spec 2.5를 지원합니다.

 

2. JPA amber 지원
Resin 3.1 은 JPA Spec을 준수하는 amber를 제공하여 JPA를 이용하여 기존 RDB의 정보접근을 단순화 할 수 있는 기반을 제공합니다.

Java Persistence API(JPA)에 대해 잘 모르는 사용자를 위해 잠깐 설명하자면, JPA는 Java 객체를 데이터베이스에 저장할 수 있는 방법을 지정하는 새로운 단순형 API입니다. JPA는 EJB 2.x 엔터티 빈을 대체하지만 J2EE 및 J2SE 애플리케이션 둘 다에 사용할 수 있기 때문에 EJB 3.0 (JSR 220)의 일부로 개발됩니다. JPA의 가장 중요한 점 중 하나는 POJO 기반이라는 것입니다. 또한 JPA는 Java 5.0 주석을 사용하여 Java 객체에서 관계형 데이터베이스로 매핑을 지정하는 방법을 단순화합니다.

 

3. Resin 구동구조가 변경되었습니다.
Resin 3.0이전 버젼에서는 Perl 스크립트 기반의 wrapper.pl 파일이 레진 프로세스를 기동시키고 문제가 있을 경우 이에 대한 복구 작업을 수행하였습니다. 이러한 역할을 하는 프로세스를 watchdoc 이라고 하며
Resin 3.1 부터 watchdoc Process가 Perl 스크립트가 아닌 JAVA  Process로 구동됩니다.

사용자 입장에서 구동 방법이 많이 변경되는 것은 아니며 이러한 구조의 변경은 기존 스크립트 수준에서 지정하던 JVM에 대한 튜닝 항목을 Resin의 Config파일 내부로 수용함으로써 관리의 일관성을 제공해 드립니다.

 

<resin xmlns=\"http://caucho.com/ns/resin\">
  <cluster id=\"app-tier\">

    <server-default>
      <jvm-args>-Xmx1024m</jvm-args>   <== 3.1부터는 구성파일 내부에
      <jvm-args>-Xss1m</jvm-args>      <== JVM 옵션을 지정할 수 있습니다.
      <jvm-args>-verbosegc</jvm-args>

      <http port=\"8080\"/>
    </server-default>

    <server id=\"app-a\" address=\"192.168.2.1\" port=\"6800\"/>
    <server id=\"app-b\" address=\"192.168.2.2\" port=\"6800\"/>

    ...
  </cluster>
</resin>

 

4. Resin 구성파일의 Cluster와 Server 항목이 변경되었습니다.
Resin 3.1 에서 <cluster> 테그와 <server> 테그의 구성이 좀더 직관적이고 관리하기 쉽게 변경되었습니다. 테그 형태가 변경되었기는 하지만 현재 3.1.0 버젼까지는 기존 3.0의 구성정보와 호환이 가능합니다.

간단하게 설명드리면 기존의 <server> 테그는 Resin Instance인 <srun> <http> 테그를 대체하는 구조로 변경되었으며 <cluster>테그는 서버 전체 테그였던 <server>테그를 대체하는 형태로 위치가 조정되었습니다. 세부적인 변경사항은 메뉴얼을 참조하여야 하지만 전체 테깅 구조가 달라진 부분이 있으므로  업그레이드 시 또는 신규 서비스 구성시 이에 3.1에서 제시하는 새로운 구성 형태에 맞추어 줄 필요가 있습니다.

 

아래는 새로운 형태의 구성파일의 예 입니다.

 <resin xmlns=\"http://caucho.com/ns/resin\">
  <cluster id=\"web-tier\">
    <server-default>
       <user-name>resin</user-name>

       <http port=\"80\"/>
    </server-default>

    <server id=\"web-a\" address=\"192.168.2.10\">
    <server id=\"web-b\" address=\"192.168.2.11\">

    <cache disk-size=\"1024m\" memory-size=\"128m\"/>

    <host id=\"\">
      <web-app id=\"/\">
        <rewrite-dispatch>
          <load-balance regexp=\"\" cluster=\"app-tier\"/>
        </rewrite-dispatch>
      </web-app>
    </host>
  </cluster>

  <cluster id=\"app-tier\">
    <root-directory>/var/www</root-directory>

    <server id=\"app-a\" address=\"192.168.2.20\">
    <server id=\"app-b\" address=\"192.168.2.21\">
    <server id=\"app-c\" address=\"192.168.2.21\">

    <host-default>
      <web-app-deploy path=\"webapps\"/>
    </host-default>

    <host-deploy path=\"hosts\"/>
  </cluster>
</resin>
 


5. 자체적으로 PHP5를 실행 할 수 있습니다.
기존에는 Apache웹서버에 PHP 모듈을 연동하기 위하여 실무자들이 직접 작업을 하면서 시간이나 여러모로 낭비적인 부분이 많았습니다.
Resin 3.1 부터는 PHP 모듈을 내장하고 자체적으로 PHP코드를 실행 할 수 있습니다.

PHP로 개발된 웹 어플리케이션을 JAVA로 이전하고자 할 경우 기존 코드를 유지하면서 JAVA의 호환성 및 확장성을 수용할 수 있는 방안을 제시하며 하나의 서버 소프트웨어에서 처리가 가능하므로 별도의 PHP운영을 위한 서버 구성을 위한 노력을 줄여 드릴 수 있습니다.

 

6. 기타

6.1 Web Service 구성방법이 변경되었습니다.
Resin은 이전버젼부터 웹서비스를 위하여 SOAP방식의 hessian을 지원하고 있습니다.
국내에서는 hessian을 사용하시는 분이 많지 않아 설명을 줄입니다.


6.2 JMX에 DB Pool Clear  method가 추가 되었습니다.
해당 메서드는 Idle상태의 불필요하게 자원을 잠식하는 접속에 대한 정리를 수동으로 수행 할 수 있도록 합니다.
프로그램을 짤때 사용할 수 있는 method이므로 그냥 정리기능을 활성화 할 수 없으나 JMX를 사용하는 관리프로그램에서 자원 회수를 위한 기능으로 사용할 수 있습니다.
당사 T-WAS의 관리 콘솔에서는 07년 Q2에 Resin 3.1 기반의 제품 출시시 이러한 기능을 수용하여 출시할 예정입니다.

 

기타 궁금하신점은 게시판에 문의해 주세요~!

행복한 하루하루 되세요