본문으로 바로가기

WAS(WebApplicationServer)

category Server 5년 전
  1. WAS란?
  2. jar, war, ear
  3. ClassLoader
  4. WAS 계층구조
    1. Listener
    2. 도메인, 서브도메인, 컨텍스트간 세션 공유
  5. Jeus
    1. Container
    2. JEUS 설정파일
    3. WebtoB
  6. Tomcat
    1. AutoDeploy
반응형

WAS란?

WAS는 소켓을 가지고 특정 프로토콜로 소통하는 프로세스를 의미함

  • WAS = 웹 서버(CSS, Javascript, 이미지) + 웹 어플리케이션 서버

jar, war, ear

  • 압축의 해제 없이 JVM에서 각 파일들을 접근하여 사용할 수 있도록 설계됨.
  • path 설정을 번거롭게 하지 않아도 됨.
  • ear > war > jar > class
  • jar(java archive)
    • classpath 문제 해결
  • war(web archive)
    • 웹어플리케이션 지원 압축
    • jsp, servlet, gif, html, jar등을 압축하고 지원
    • WAS(Jeus, Tomcat)은 War를 잡아서 서버를 작동함.
  • ear(enterprise archive)
    • 서버 배포 단위
      • jar, war를 묶어서 각각의 기능을 지원함.

ClassLoader

  • 클래스 로딩은 런타임중에서도 가능함.
  • 클래스 로더를 통해 메모리에 클래스 정보를 로딩함.
  • ClassLoader는 계층 구조를 가지고 있다.
    • bootstrap $JAVAHOME/jre/lib/rt.tar (기본 JRE 라이브러리)
    • extension $JAVAHOME/jre/lib.ext/*.jar (확장 라이브러리)
    • system $CLASSPATH (클래스패스 입력 순서대로 로딩)
    • webapp1, webapp2
      • 어플리케이션 마다 클래스 로더가 존재하여 서로 독립적임.
  • 탐색순위
    • parent-last, child-first
    • parent-first, child-last
  • 이미 로딩된 class 정보는 중복되서 로딩되지 않음. 그러므로 classpath가 먼저인 클래스가 로드됨.

WAS 계층구조

Server (server.xml) -> Context (context.xml) -> Web설정(web.xml) -> Spring 설정(spring-*.xml)

Listener

특정 이벤트(특정한 사건)가 발생하기를 '귀 기울여' 기다리다가 실행되는 컴포넌트(메서드나 함수)

도메인, 서브도메인, 컨텍스트간 세션 공유

local.lgdisplay.com

  • 도메인

local.lgdisplay.com/lgcom

  • /lgcom 서브도메인

서브 도메인별 컨텍스트 생성
컨텍스트간 데이터를 루트 컨텍스트를 통해서 교환가능하다.(서브 도메인간 동일 JSESSION_ID 사용)

<!-- The contents of this file will be loaded for each web application -->
<Context crossContext="true">

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
...

Jeus

Container

컨테이너 별로 java.exe가 생성됨. 제우스에 의해 생성된 컨테이너인듯.

  • 컨테이너는 독립적인 형태를 보인다.
  • 컨테이너 별로 ClassLoader가 존재하여 서로 다른 클래스 리소스를 사용한다.

JEUS 설정파일

C:\WIDE_LPL\bin\jeus5.0\config\hr\JEUSMain.xml

  • 웹 서버 설정

  • 엔진 설정

  • application 설정

    • 프로젝트 war 경로 설정

    • Target Container 지정

      yangyag /home/jeus/jeus6/webhome/app_home/test.war COMPONENT / ca-dev_container1

C:\WIDE_LPL\bin\jeus5.0\config\hr[engine]\WEBMain.xml

  • 엔진설정
  • 포트설정

WebtoB

웹서버 기능 제공, Jeus Web Container와 인터페이스 웹 어플리케이션 서버 기능 제공

TMAX에서 개발한 소프트웨어로 웹 서버의 성능을 향상시키기 위한 프록시 서버로 사용된다.

  • 클라이언트 요청 → WebtoB → WebServer(JEUS)

Tomcat

AutoDeploy

톰캣 최신버전은 AutoDeploy를 제공하는 것 같음. 낮은 버전은JLabel을 구입해서 적용해야 AutoDeploy가 작동함. (Jeus는 내장기능인데.. ㅜ)

반응형