본문 바로가기
WAS(Web Application Server)

WAS(Web Application Server)란?

by 샤워하다돌면워싱턴 2022. 8. 30.
반응형
◆ 웹 애플리케이션 서버(Web Application Server, WAS)
: 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)이다. WAS는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 DB서버와 같이 수행이 된다.
WAS는 대부분이 자바 기반으로 주로 자바 EE 표준을 수용하고 있으나, 자바 기반이지만 자바 EE 표준을 따르지 않는 제품과 .NET이나 Citrix 기반인 비 자바 계열도 존재한다.
※ 3티어의 중간 계층으로 명칭되는 미들웨어 Client와 Server 간의 통신이나 데이터 전달을 수행하는 SW를 상징하는데, 기업환경과 웹 환경에서 서비스를 제공할 수 있는 미들웨어 소프트웨어가 WAS이다.(=Web Container)
◆ WAS기본 기능 3가지
- 프로그램 실행 환경과 DB접속 기능을 제공
- 여러 개의 트랜잭션을 관리
- 업무를 처리하는 비즈니스 로직을 수행
- Web 환경을 위한 n-tier Architecture 플랫폼
- Presentation(GUI)과 Business Logic의 분리 운영
- Thread 관리
- 부하조절(Load Balancing) 기능 지원
- 장애대책(Fail-Over) 기능 지원
- Transaction 처리 자동화
- Web Service 플랫폼으로써의 역할
◆자바 EE 표준준수 WAS.
: 자바 EE는 자바의 기본적인 기능을 정의한 자바 SE에 웹 서버 역할을 추가한 것으로 자바 애플리케이션을 동작시킬 수 있는 컨테이너 등을 표준화한 스펙이다.
- 구성 요소
 일반적으로 웹 모듈은 자바 서블릿 또는 JSP(Java Server Page)로 구성하고, 비즈니스 모듈은 EJB(Enterprise Java Beans)로 구성한다
 
※ 웹 컨테이너
: 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 결과를 만들어내고 이것을 다시 클라이언트에 전달해주는 역할을 하는 것
 웹 서버와 차이는 이 컨테이너 기능이 가능하냐의 차이가 가장 크다고 생각한다.
1. 스위치 - WAS
모든 컨텐츠를 WAS에 모아 놓고, WAS가 웹서버와 WAS역할을 동시에 수행. 트래픽이 많지 않고, 간단한 웹 사이트 서비스를 제공하거나, 개발 및 테스트 시스템 구성 시 활용
스위치로 로드밸런싱을 하기 때문에 쉽게 다른 WAS를 설치하여, 부하를 분산 시킬 수 있는 장점이 있는 반면에, WAS가 웹서버와 웹 애플리케이션 서버 역할을 동시에 수행하기 때문에 각각의 기능이 다른 기능 수행 시 부하를 발생 시킬 수 있기 때문에 성능 저하가 나타날 수 있는 단점.
2. 스위치 - 웹 서버 - WAS
웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도한 형태라고 합니다. 정적인 데이터는 웹 서버가, 동적인 데이터는 WAS가 담당->1번구조보다 더 나은 성능을 발휘 합니다.
3. (스위치 - 웹 서버 - WAS) + 이미지를 위한 웹 서버
초고속 인터넷이 발달함에 따라 고화질의 이미지나 동영상을 제공하는 페이지가 증가하고 있습니다. 이러한 페이지는 네트워크 비중의 상당 부분을 차지합니다. 그래서 고화질 이미지나 동영상 데이터 제공을 위한 웹서버를 따로 추가하여, 기존 네트워크 비중도 줄이고, 기존의 웹 서버와 WAS를 좀 더 효율적으로 사용할 수 있도록 하는 구성입니다.
이러한 구조는 다양한 환경의 대한 네트워크 이슈를 좀 더 용이하게 대처할 수 있지만, 구조를 정확하게 이해하지 않았을 경우 개발 및 테스트에 많은 시간이 소요 됩니다.
4. 스위치 - 웹 서버 - WAS(프리젠테이션) - WAS(비즈니스)
이 구조는 2번째 구조를 변경한 형태입니다. WAS단의 프로그램들이 많은 비중을 차지할 때, Presentation Logic을 담당하는 프로그램과 Business Logic을 담당하는 프로그램을 구분하여 각각의 WAS가 처리하도록 분리하는 형태입니다.
이러한 구조는 계층 구조의 부하를 적절히 분산할 수 있는 반면, 구조가 복잡해 유지보수가 어려워지는 단점을 가지고 있습니다.
∴두 개의 서버를 연동해서 사용하면 사용자 요청은 http 웹 서버를 통해 받고 내부 프로그램은 was를 통해 처리하는 식으로 하여 정적인 데이터와 동적인 데이터를 효과적으로 처리가 가능
1) 다양한 프리젠테이션 로직 지원
· Servlet
동적 HTML 문서 작성을 위한 Java 프로그래밍 모델을 지원하며, Servlet 엔진이 Multi-threading으로 구현되어 성능이 우수하고, EJB 등과 부드러운 연동이 가능합니다.
· JSP (Java Server Page)
Servlet 사용을 통해 웹 페이지의 내용이나 모양을 제어하며, 웹 서버에 의해 실행될 자바 프로그램을 호출하게 합니다.
· XML(Extensible Markup Language)
웹 상에서 구조화된 문서를 전송 가능하도록 설계된 텍스트 형식으로, 안전한 전자상거래 구축을 가능하게 하는 등 웹을 좀 더 다양한 목적으로 이용할 수 있게 합니다.
2) 편리한 비즈니스 로직 지원
· EJB (Enterprise Java Beans)
자바 기반의 객체지향 프로그래밍 모델로서, 새로운 프로그램 컴포넌트가 추가되거나 변경될 때마다 각 개별 컴퓨터를 갱신하지 않고서도 서버에서 변화를 통제할 수 있도록 하는 이점을 제공
3) J2EE (Java 2 Enterprise Edition) 플랫폼과 호환
· JMS (Java Messaging Service)
메시지 기반의 프로그래밍 기초를 제공합니다.
· JNDI (Java Naming and Directory Interface)
네이밍 서비스를 제공합니다.
· JTS (Java Transaction Service)
이기종 데이터베이스에 걸친 글로벌 트랜잭션을 제공합니다.
· JDBC (Java Database Connectivity) Connection Pool
데이터베이스와의 연결을 효율적으로 관리합니다.
4) 부하 조절 방식
· 각 서버(호스트)로의 동적 부하 조절
서버들의 Load를 실시간으로 수집해 클라이언트의 요청을 처리 가능한 최적의 서버로 분배하여 부하를 조절합니다.
· 각 서비스별 처리능력의 동적 조절
클라이언트 요청의 증가에 따라 각 서비스 루틴이 자동적으로 증가하게 되어 서비스 처리 능력을 동적으로 조절
· 하드웨어 성능에 따른 정적 부하 조절
예를 들자면, 메인프레임급에는 80%의 Load를, 워크스테이션급에는 20% Load를 배분하는 식으로 하드웨어 성능에 따라 부하를 조절합니다.
 
5) 장애 대책
· 서버(호스트)간의 상호 감시
장애 발생 시 서비스를 백업 서버로 이전시켜 중단 없는 서비스 처리가 가능합니다.
· 어플리케이션 프로세스에 대한 감시
프로세스 모니터가 어플리케이션 프로세스를 감시하여 장애 발생 시 프로세스를 자동적으로 재시작하게 합니다.
6) 다양한 보안 기능 제공
· Login Name & Password
· 각 서비스에 대한 Access 권한 제한
· 클라이언트의 IP 어드레스 또는 도메인 제한
· CA (Certificate Agent)를 통한 사용자 인증
· SSL (Secure Socket Layer)의 사용
 7) 편리한 관리자 도구의 제공
· 리소스 배치를 간편하게 할 수 있습니다.
· 실시간으로 시스템을 모니터링할 수 있습니다.
· 멀티 서버 (호스트) 시스템을 통합적으로 제어할 수 있습니다.

 

반응형

'WAS(Web Application Server)' 카테고리의 다른 글

JSP 컴파일과정  (0) 2022.08.31

댓글