WAS
- Web Application Server
- 데이터 입력/조회 등의 동적 컨텐츠 전달하기 위해서는 프로그래밍 필요
- 브라우저와 DBMS사이에서 동작하는 미들웨어
- 기능
- 프로그램 실행 환경, 데이터베이스 접속 기능 제공
- 여러 개의 트랜잭션 관리
- 업무를 처리하는 비즈니스 로직 수행
- 웹 서버의 역할도 함
- 프로그램의 동적인 결과를 웹브라우저에 전송
- 톰캣이 이 WAS에 해당됨
미들웨어
- dbms에 접속해 동작하는 클라이언트 프로그램의 단점을 극복하기 위해 등장
- 단점
📉 클라이언트의 로직 증가, 프로그램 크기 증가
📉 프로그램 로직 변경 시 클라이언트가 매번 배포되어야 함, 대부분의 로직이 클라이언트에 포함되어 보안 문제 발생
- 비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 함
- 프로그램 로직이 변경되어도 미들웨어만 변경하면 됨
Web Server vs WAS
- 웹서버: 정적인 콘텐츠를 웹 브라우저에 전송, WAS에 비해 로직이 간단
- WAS: 동적인 콘텐츠를 웹 브라우저에 전송
- WAS에서 보통 자체적으로 웹 서버 기능을 내장
- 현재 WAS가 가지고 있는 웹 서버는 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다
- 규모가 커질수록 웹 서버와 WAS 분리 -> 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성이 목적
- 웹서버가 WAS 앞단에 존재하면 장애 극복 기능의 역할을 할 수 있음
- 여러 대의 서버에서 동작하는 WAS 중 일부가 장애가 발생해 재시작해야 할 때, 웹서버에서 미리 해당 WAS를 이용하지 못하게 한 후 WAS를 재시작함