WAS(Web Application Server) - Tomcat, Jeus, JBoss 등이 대표적

- 동적 컨텐츠를 제공하기 위해 만들어진 Application Server

- 동적인 처리가 필요한 요청을 처리하기 위해 만들어짐(ex: DB조회, 사용자 입력을 받아 가변적인 로직 수행하는 경우 등)

- Web Container의 JSP/Servlet 구동 환경을 제공하고 JSP, ASP, PHP등으로 작성한 뒤 HTML문서로 만들고 Web Server로 전달한다.

 

WAS의 기능

- 프로그램 실행 환경과 데이터베이스 접속 기능을 제공

- 여러 개의 트랜잭션을 관리

- 업무를 처리하는 프로그래밍 언어의 비즈니스 로직을 수행

- Web Server 플랫폼으로서의 역할 병행

 

WAS 작동 프로세스

1. Web Server로 클라이언트의 요청이 오면 컨테이너가 응답

2. 컨테이너는 web.xml을 참조하여 해당 서불릿에 대한 쓰레드를 생성하고 httpServletRequest와 httpServletResponse개체를 생성하여 전달

3. 컨테이너는 JSP/Servlet 호출

4. 호출된 Servlet의 작업을 담당하게 된 쓰레드는 doPist()또는 doGet()을 호출한다.

5. 호출된 doPost(), doGet() 메소드는 생성된 동적 페이지를 Response객체에 담아 컨테이너에 전달한다.

6. 컨테이너는 전달받은 Response객체를 httpResponse형태로 바꿔 WebServer에 전달하고 생성되었던 쓰레드를 종료하고 httpServletRequest, httpServletResponse 객체를 소멸시킨다.

 

 

WS 와 WAS를 분리해 놓은 이유

 

사실 WAS Server가 정적인 컨텐츠를 처리하지 못하는 것은 아니다. 정적인 컨텐츠와 동적인 컨텐츠까지 함께 처리할 수 있도록 설계된 Server이다. 그렇기 때문에 트래픽이 적다면 오히려 WAS 하나만 사용하여 서비스하는 것이 복잡하지 않아서 유지 보수하기도 편하다. 하지만 WAS는 DB조회나 프로그램이 로직처리로 인해 많은 트래픽 처리량에 있어서 약점을 보인다. 이렇게 트래픽이 많아질때는 (대표적으로 사용자가 많아질 때) WAS앞에 WebServer를 하나 더 두어 정적인 요청은 Web Server가 처리하도록 하여 트래픽을 분산시키는 것이 좋다.

 

 

 

 

참조사이트 : https://coding-factory.tistory.com/741

 

'WebBase' 카테고리의 다른 글

[WebBase] JSP (Java Server Page)  (0) 2022.06.17
[WebBase] Servlet (서블릿)  (0) 2022.06.16
[WebBase]WebServer  (0) 2022.05.31
[WebBase]HTTP(Hypertext Transfer Protocol)  (0) 2022.05.30
[WebBase]웹프로그래밍(풀스택) 기초부터 다시  (0) 2022.05.30

+ Recent posts