제1장 JEUS 웹

내용 목차

1.1. 개요
1.2. JEUS 웹 구조와 주요 기능
1.2.1. 웹 컨테이너와 JEUS 시스템
1.2.2. 웹 컨테이너의 기본 컴포넌트
1.3. JEUS 웹 디렉터리 구조
1.4. JEUS 웹 툴
1.5. JEUS 웹 환경설정
1.5.1. 환경변수
1.5.2. XML 설정 파일

본 장에서는 JEUS 웹 모듈에 대한 가장 상위의 컴포넌트인 JEUS 웹 컨테이너에 대한 기본 개념과 웹 모듈을 관리할 수 있는 툴과 환경설정을 위한 기본 정보를 설명한다.

1.1. 개요

JEUS 웹 모듈은 복잡하지만 JEUS 시스템 중에서 실용성 있는 컴포넌트 중의 하나이다. 이 모듈은 사용자에게 다이내믹하고 고성능이며 안정적인 Java 기반의 웹 콘텐츠를 제공하기 위해 만들어진 JSP, Servlet, 정적 HTML과 같은 수십 개의 하위 컴포넌트들로 구성되어 있다.

본 장의 나머지 부분에서는 웹 모듈의 주요 컴포넌트들에 대하여 살펴보고 어떻게 이들이 연계되어 있는지 알아본다. 이후 장에서는 운영환경에서 어떻게 이 하위 컴포넌트들을 설정하고 제어하며 모니터링하는지에 대하여 기술적으로 상세히 설명한다.

1.2. JEUS 웹 구조와 주요 기능

JEUS 웹 모듈 관련 컴포넌트 중 가장 기본적이면서도 최상위 레벨의 컴포넌트가 JEUS 웹 컨테이너(이하 웹 컨테이너)이다. 웹 컨테이너는 Java EE 5, Servlet 2.5, JSP 2.1을 준수하고 Servlet과 JSP뿐만 아니라 HTML과 같은 정적 내용까지도 효과적으로 수행할 수 있다.

참고

JEUS 시스템의 설정 파일들과 툴에서는 웹 컨테이너(Web Container)를 웹 엔진(Web Engine)이라고 부르기도 한다.

1.2.1. 웹 컨테이너와 JEUS 시스템

다음은 JEUS 시스템 구조체 내에서 웹 컨테이너가 어떻게 연관되어 있는지 보여주고 있다.

컴포넌트들은 웹 컨테이너들의 외부에 존재하고 웹 애플리케이션과 웹 컨테이너를 운영하기 위한 환경과 기본 인프라를 제공한다.

[그림 1.1] 웹 컨테이너와 JEUS 시스템

웹 컨테이너와 JEUS 시스템


다음은 주요 컴포넌트에 대한 설명이다.

  • 클라이언트

    JEUS 시스템에 접근하는 객체이고 웹 컨테이너의 서비스를 요청한다. 웹 컴포넌트를 접근한다면 이 클라이언트는 사용자에 의해 조작되는 HTTP 기반의 웹 브라우저가 된다.

  • 부하 분산기(Load Balancer)

    클라이언트의 HTTP 요청을 웹 서버 간에 나누어 전달하여 일정한 요청 수가 시스템에 전달될 수 있도록 한다. 예를 들어 WebtoB 서버가 부하 분산기로 사용될 수 있다. 자세한 내용은 “제4장 웹 서버 연결과 클러스터링”을 참고한다.

  • Web Server

    클라이언트의 HTTP 요청을 받아 필요한 경우에 JEUS의 웹 컨테이너에 전달한다. 자세한 내용은 “제4장 웹 서버 연결과 클러스터링”을 참고한다.

  • JEUS 관리자노드

    웹 컨테이너가 동작하는 환경을 제공한다. 성능과 안정성을 극대화하기 위해서 여러 개의 노드를 클러스터링으로 묶기도 한다. 자세한 내용은 "JEUS Server 안내서"를 참고한다.

  • Web Container

    그림에서는 “Servlet Engine”으로 표기된 웹 서버나 HTTP 클라이언트로부터 서비스 요청을 받고 웹 애플리케이션을 실행시켜 궁극적으로는 HTML 응답 페이지를 통해 응답을 준다. 자세한 내용은 “제2장 웹 컨테이너”를 참고한다.

  • Session Server

    분산된 환경에서 클라이언트의 Session을 관리하고 이 Session 데이터가 모든 웹 컨테이너에서 사용되도록 한다. 자세한 내용은 “제5장 Session Tracking”을 참고한다.

  • JNDI Naming Server

    Servlet과 JSP와 같은 웹 애플리케이션이 시스템 내부의 객체나 리소스를 접근할 수 있도록 한다. EJB나 Datasource가 그 예이다. 자세한 내용은 "JEUS Server 안내서"의 JNDI 부분을 참고한다.

  • EJBJMS Engine

    웹 애플리케이션에 EJB와 JMS 서비스를 제공한다. 이 엔진들은 JNDI Naming Server를 통하여 접근된다.

  • Security Server

    웹 애플리케이션들에게 보안 정책을 적용시킨다. 자세한 내용은 "JEUS Server 안내서"의 보안 부분을 참고한다.

  • TX (트랜잭션) 관리자

    트랜잭션을 관리한다. 자세한 내용은 "JEUS Server 안내서"의 JTS 부분을 참고한다.

  • 데이터베이스

    많은 양의 데이터를 저장하는 가장 일반적인 방법이다.

  • Tmax Server

    TP 모니터링 서비스를 제공한다. Tmax 서버는 JEUSMain.xml에 설정된 WebT Connection Pool을 통해 접근된다. 그림에서는 보이지 않고 자세한 내용은 Tmax 제품의 "WebT User Guide"를 참고한다.

1.2.2. 웹 컨테이너의 기본 컴포넌트

지금까지 웹 컨테이너가 JEUS 시스템 내부의 다른 컴포넌트들과 어떻게 연계되는지 살펴보았고, 지금부터는 각각의 컴포넌트들을 구성하며 웹 컨테이너 자체에 포함된 컴포넌트들에 대해 자세히 설명한다.

물리적으로 웹 컨테이너는 다음의 컴포넌트들로 구성되어 있다.

[그림 1.2] 웹 컨테이너의 기본 컴포넌트

웹 컨테이너의 기본 컴포넌트


다음은 주요 컴포넌트에 대한 설명이다.

  • JEUS Web Container

    자체는 Java EE 기반의 웹 컨테이너이다. 자세한 내용은 “제2장 웹 컨테이너”를 참고한다.

  • Monitoring Thread

    웹 컨테이너의 다른 컴포넌트들을 감시하는 역할을 한다.

  • Web Server connections

    외부의 웹 서버(WebtoB와 Apache)와 컨테이너가 연결되기 위한 컴포넌트이다. 웹 서버 Connection은 여러 개의 웹 서버와 웹 컨테이너들이 서로 연결되어 성능과 안정성을 향상시킨 커다란 클러스터링으로 구성되도록 한다. 자세한 내용은 “제4장 웹 서버 연결과 클러스터링”을 참고한다.

    여기서 중요한 점은 웹 서버 Connectivity가 Context Group 레벨에서 설정된다는 것이다.

  • Session handling

    분산 환경에서만 사용되고, Session Routing 기술이나 Session Server를 사용하거나, 또는 두 기술을 모두 적용시켜 활용 가능하다. 자세한 내용은 “제5장 Session Tracking”을 참고한다.

  • Context group

    JEUS 웹 컨테이너에 포함된 것으로 여러 개의 Context들과 가상 호스트들을 관리 가능한 단위로 묶고, 이들에게 운영환경을 제공한다. 자세한 내용은 “제3장 Context Group”을 참고한다.

  • 가상 호스트

    특정한 Domain Name을 호출했을 때 해당 Context에 보다 강력한 제어 능력을 주기 위해 만들어졌다. Context는 가상 호스트 내에 명시적으로 설정될 수도 있고, Context Group 바로 아래에 묵시적인 기본 가상 호스트로도 설정될 수 있다. 자세한 내용은 “제7장 가상 호스트”를 참고한다.

  • Context(또는 웹 애플리케이션)

    Java EE 스펙에 준하고 컨테이너 내에서 운영된다. 이들은 본래 WAR(Web ARchive) 안에 포함되며, 웹 컨테이너 내의 Context group 또는 가상 호스트에 디플로이된다. 자세한 내용은 “제6장 Web Context(웹 애플리케이션)”를 참고한다.

위에서 제시한 모든 기능들이 본 안내의 전체적인 구성이 된다.

1.3. JEUS 웹 디렉터리 구조

다음은 JEUS 웹 모듈에 관련된 기본 디렉터리 구조이다.

[그림 1.3] JEUS 웹 모듈에 관련된 기본 디렉터리 구조

JEUS 웹 모듈에 관련된 기본 디렉터리 구조


주의 깊게 살펴봐야 할 디렉터리는 다음과 같다.

JEUS_HOME

JEUS 제품을 설치할 때 선택된다. (예: c:\jeus6\)

bin

jeusadmin, jspc를 포함하고 있는 디렉터리이다.

config\<node-name>\

JEUS 시스템에 설정되어 있는 각 웹 컨테이너에 해당하는 하위 디렉터리들을 가지고 있다.

  • <node-name>_servlet_<engine-name>\

    이 디렉터리는 웹 컨테이너의 XML 기반 설정 파일을 가지고 있다(WEBMain.xml).

    파일설명
    web.xml자신만의 web.xml 파일을 가지고 있지 않은 웹 애플리케이션을 위한 기본 web.xml 파일이다.
    webcommon.xml

    모든 웹 애플리케이션들에 적용되는 공통 설정 파일이다. 이 파일은 표준을 따르는 web.xml과 동일한 파일이다.

    Java EE XSD인 web-app_2_5.xsd에는 이 파일들에 대한 정의가 포함되어 있다.

logs\<node-name>\<node-name>_<container-name>\servlet

웹 컨테이너의 Logging 데이터를 저장하고 있다.

webhome

웹 애플리케이션을 위한 Home 디렉터리로서 다음과 같은 작업 디렉터리를 가지고 있다.

디렉터리설명
app_home

엔진 로딩 후에 디플로이 대상이 되는 웹 애플리케이션이 존재하며 그 형태는 archive 타입과 exploded 타입 모두 가능하다.

콘솔 툴(jeusadmin)이나 WebAdmin을 통해서 디플로이할 경우 이 작업 디렉터리를 사용한다.

autodeploy엔진을 기동(Booting)하는 경우 archive 타입의 웹 애플리케이션을 엔진이 자동으로 디플로이시킨다.
<nodeName_containerName>

웹 애플리케이션이 디플로이될 경우 사용하는 작업 디렉터리이다.

만일 JSP와 관련해서 생성되는 파일에 위치를 지정하고 싶을 경우 WEBMain.xml이나 jeus-web-dd.xml의 <jsp–engine> 태그를 통해서 설정 가능하다.

1.4. JEUS 웹 툴

JEUS 웹 모듈에 관련된 툴들은 다음과 같다.

1.5. JEUS 웹 환경설정

본 절에서는 웹 컨테이너를 사용하기 위해서 필요한 환경변수와 XML 파일의 설정방법에 대해서 설명한다.

1.5.1. 환경변수

JEUS 웹 모듈에서 사용하는 환경변수들은 JEUS JVM에 시스템 설정을 전달하기 위해 사용된다.

이 시스템과 JVM 사이의 변수 매핑은 JEUS_HOME\bin\ 디렉터리에 위치한 다양한 JEUS 스크립트에 존재한다. 어떤 시스템 변수들은 스크립트에 직접 반영이 되지 않은 것도 있다. 즉, 이 값들을 OS 환경변수 값을 수정함으로 또는 스크립트 외부에서 수정하는 것이 실제로 적용되지 않을 수도 있다는 것을 의미한다. 그러므로 이 값들은 항상 JEUS_HOME/config의 XML 파일에서 설정한다.

대부분의 환경변수 값들은 JEUS를 설치할 때 자동으로 설정된다. 환경변수는 수정 가능하지만 일반적으로 권장하지는 않는다. 반드시 필요한 경우에만 XML 설정 파일에서 이 환경변수들을 수정하는 것이 더 일반적이다.

다음은 JEUS 웹 모듈에 관련된 시스템 환경변수에 대한 설명이다.

[표 1.1] JEUS 웹 모듈 환경변수

환경변수설명
JEUS_HOMEJEUS가 설치된 기본 위치를 설정한다. (반드시 설정되어야 한다) (예: C:\Jeus6)
JEUS_WSDIRJEUS 웹 서버(WebtoB)의 홈 디렉터리이다. (예: C:\Jeus6\webserver (기본값))


참고

이 시스템 값들을 설정하는 방법은 OS에 따라 각기 다르다. 설정 방법에 대한 내용은 해당 OS 매뉴얼을 참고한다.

1.5.2. XML 설정 파일

다음은 JEUS 웹과 관련된 설정 파일에 대한 설명이다.

  • JEUSMain.xml (jeus-main-config.xsd)

    위치JEUS_HOME\config\<node-name>\
    목적 JEUS 시스템에 새로운 웹 컨테이너를 추가할 때 사용한다.
    상세 정보 위치 JEUS Server 안내서
  • WEBMain.xml (web-main-config. xsd)

    위치JEUS_HOME\config\<node-name>\<node-name>_servlet_<engine- name>\
    목적 웹 컨테이너 주요 설정 파일이다.
    상세 정보 위치 본 안내서
  • jeus-web-dd.xml (jeus-web-dd. xsd)

    위치<ctxroot>\WEB-INF\
    목적 웹 애플리케이션(context) Deployment Descriptor(DD)이다.
    상세 정보 위치 본 안내서
  • web.xml (web-app_2_5.xsd)

    위치<ctxroot>\WEB-INF\
    목적 Java EE 표준 웹 모듈의 Deployment Descriptor(DD)이다.
    상세 정보 위치 Servlet 2.5 스펙
  • web.xml (web-app_2_5.xsd)

    위치JEUS_HOME\config\<node-name>\<node-name>_servlet_<engine-name>\
    목적 Web.xml을 개별적으로 가지고 있지 않은 Context의 기본 web.xml 파일이다.
    상세 정보 위치 Servlet 2.5 스펙
  • webcommon.xml (web-app_2_5.xsd)

    위치JEUS_HOME\config\<node-name>\<node-name>_servlet_<engine-name>\
    목적 웹 컨테이너의 모든 Context에 적용되는 공통되는 설정 파일이다.
    상세 정보 위치 Servlet 2.5 스펙