WAS(Web Application Server)란?
- WAS는 일종의
미들웨어로 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 어플리케이션이 동작하도록 지원하는 목적을 가진다. - WAS는 3가지의 중요한 기본 기능을 가진다.(이 외에도 다양한 기능을 제공)
- 프로그램 실행 환경과 Database 접속 기능을 제공한다.
- 여러개의 트랜잭션(논리적인 작업 단위)을 관리한다.
- 업무를 처리하는 비즈니스 로직을 수행한다.
- WAS도 보통 자체적으로
웹 서버기능을 내장하고 있다. - java를 이용하여 작성된 웹 어플리케이션은 WAS가 있어야만 실행할 수 있다.
웹서버는 보통정적인 콘텐츠를 웹브라우저에 전송하는 역할을 수행하고,WAS는 프로그램의동적인 결과를 웹 브라우저에게 전송하는 역할을 수행한다. (프로그램이 동작해서 얻은 결과를 보통 동적인 콘텐츠라고 한다.)- 현재는 WAS가 가지고 있는 웹 서버도 정적인 컨텐츠를 처리하는데 있어서 성능상 큰 차이가 없다.
- 규모가 커질수록 웹 서버와 WAS를 분리한다. 그 목적은 장애 극복 기능(failover)인 경우가 많다.
- WAS만 있어도 정적인 콘텐츠와 동적인 콘텐츠를 제공 할 수 있지만, 현업에서는 다음과 같은 형태로 구성하는 경우가 많다.
- 사람들이 많이 접속하는 대용량 웹 어플리케이션의 경우에는 보통 다수의 서버를 사용하는데, WAS에서 동작하는 프로그램에 오작동이 발생해서 WAS를 재시작 해야하는 경우가 있다.
문제가 있는 WAS를 재시작 할 때, 앞 단의 웹 서버에서 먼저 해당 WAS를 이용하지 못하도록 하고, WAS를 재시작 한다면 해당 웹 어플리케이션의 이용자들은 WAS의 문제 발생 여부와 상관없이 계속 웹 어플리케이션을 사용할 수 있을 것이다. - 이러한 처리를 장애 극복 기능이라고 하며,
장애 극복 기능은 대용량 웹 어플리케이션을 무중단으로 운영하기 위한 중요한 기능이다. 이러한 기능 때문에 웹 서버가 WAS 앞 단에서 동작하도록 하는 경우가 많다.
참고 URL
'Web' 카테고리의 다른 글
Session이란? (0) | 2020.07.17 |
---|---|
쿠키란? (0) | 2020.07.17 |
상태정보란? (0) | 2020.07.17 |
Web API란? (0) | 2020.07.01 |
REST API란? (0) | 2020.07.01 |