본문으로 바로가기

WAS(WebApplicationServer)

category Server 2020. 1. 29. 20:20
    반응형

    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는 내장기능인데.. ㅜ)

    반응형