Apache Software Foundation | Jakarta Project | Apache Tomcat
JK가 무엇이니??

JK 는 오래된 mod_jserv 를 대신하는 녀석이다. JK는 새로운 Tomcat과 Apache 사이의 통신을 다룬다.

가장 새로운 JK2 JK 의 refactoring 이다. 네이티브 부분은 완전히 재구성 되었으며 설정은 많은 부분이 간단해 졌다

JK 는 메이저급 웹서버와 사용될수 있었기 때문에 단순히 Apache 모듈 이상이다 :

  • mod_jk Apache 1.3 2.0 Webserver들과 사용될 Apache 모듈이다.
  • isapi IIS 와 사용될 변경분이다.
  • nsapi Netscape/iPlanet 과 사용될 변경분이다.
  • dsapi Domino 와 사용될 변경분이다.

왜 내가 JK를 써야하나??

JK는 그 조상격인 mod_jserv 의 많은 한계를 극복하기 위해 발전되어 왔다.

mod_jserv 는 Apache/JServ로 부터 포팅되었기 때문에 많은 문제가 있었다.그래서 Apache 에게 필요하지 않은 많은 특정부분들을 JServ로 부터 가지고 오게되었다.

mod_jserv 는 Unix 상의 Apache 웹서버만을 지원했다, JK JK library 라는 호환성 계층을 통해서 더욱 많은 OS와 웹서버들을 지원한다. JK 라이브러리에 의해 제공되는 계층화된 접근방법 들은 다양한 웹서버와 OS를 더욱 쉽게 지원할수 있게한다.

JK는 mod_jserv 의 문제점 이었던 HTTP 나 HTTPS를 통한 신뢰성을 확인하기 힘든 요청에 대해 더욱 향상된 SSL 지원을 제시한다.

JK 는 Servlet2.2 와 2.3 스펙에 의해 정해진 많은 SSL 정보를 대체 해주는 Ajpv13 프로토콜을 사용할수 있게 한다.

JK 는 웹서버와 Tomcat Servlet 엔진간의 다양하고 유연성있는 커뮤니케이션을 제공했고 오늘날 3.2.x , 3.3.x , 4.0.x , 4.1.x and 5.x 등 모든 ASF Tomcat 엔진들에 사용할수 있게되었다.


JK랑 JK2랑 차이점이 무엇이냐??

JK2는 JK의 refactoring 이며 훨씬 파워풀 하다.

Apache 1.3에서도 작동하더라도 JK2는 Apache 2.0을 기준으로 개발되었으며 IIS 나 NES/iPlanet 등의 멀티쓰레드 서버들에서도 아주 잘 올라간다. 그리고 다른 어플리케이션에 내장될수있고 자바를 통해 사용될수도 있다.

JK2는 모듈방식을 향상시키고 확실하게 프로토콜과 물리적 계층을 분리 시킨다. 이러한 JK2는 fast unix-socket을 지원하고 다른 communication channel들로 확장이 가능하다. JNI와 더궁합이 잘맞으며 (앞으로의 버전에서)JDK1.4 NIO 패키지에서 사용될수 있다.

자바에서 JMX와 같이 similar,monitoring 을 추가적으로 지원한다. similar 모듈같이 mod_status가 제공되고 추가되는 어댑터들은 인터페이스와 제공 상태 그리고 runtime설정구성 등으로 사용될 수 있다.

구성이 컴포넌트 모델에 따르기 위해 바뀌어졌다. 다중구성 소스들은 향상된 embed 방식의 어플리케이션과의 통합이 (파일추가등의 방식으로) 지원된다. 구성 계층은 관리 계층 API들을 이용하며, 변경된 설정등을 위해 runtime구성을 통한 상태유지가 지원된다.

또다른 특징은 JNI 모드이다. JK2는 JNI 라이브러리로 이용될수 있고, native 특징에 대한 엑세스를 자바에게 제공한다. 예를들면 JK2는 Unix 도메인 소켓의 공유메모리를 (멀티프로세스 환경에서 설정과 모니터링을 사용하여) 제어할수 있다 JK2는 신호들과 chuid , 윈도우 레지스트리 역시 제어할수 있게한다. 같은 통신 메카니즘 그리고 in-process 와 out-of process 모드를 둘다 지원하는 모든 부분에서 사용된다. All using the same communication mechansim, and supporting both in-process and out-of process modes.


Apache와 Tomcat을 연결할 다른 방법이 있을까나??

다른 방법은 mod_webapp 문서에 설명이 잘되어있다.

만약에 읽어보고 싶다면 webapp 사이트를 확인해봐라.

The big advantage of mod_webapp 의 큰 장점은 설정이 매우 간단하다는 점이다 그리고 WARP 이라고 불리는 프로토콜이 멋지게 정의되어 있다 그리고 Tomcat 3.X 대에서 사용되어지던 쓰잘때 없는 낡은 프로토콜들은 신경쓰지 말자. 하지만 JK2 프로토콜에서 WARP 프로토콜을 구현 할수는 있다 (웃음 ^^)

다만 안좋은 점은 Apache 2.0와의 연결을 쉽게 해주는 유일한 방법인 Apache Portable Runtime 이라는 놈을 필요로 한다는 것이다. 그리고 그렇게 되면 IIS나 NES/iPlanet 혹은 Domino와 같은 웹서버들은 지원하지 않게 된다는 것이다