웹 애플리케이션 서버

웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로 볼 수 있다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다. 한국에서는 일반적으로 "WAS" 또는 "WAS S/W"로 통칭하고 있으며 공공기관에서는 "웹 응용 서버"로 사용되고, 영어권에서는 "Application Server" (약자 AS)로 불린다.

웹 애플리케이션 서버는 대부분이 자바 기반으로 주로 자바 EE 표준을 수용하고 있으나, 자바 기반이지만 자바 EE 표준을 따르지 않는 제품과 .NET이나 Citrix 기반인 비 자바 계열도 존재한다.

개요 
웹 애플리케이션 서버의 기본 기능은 3가지이다.
 프로그램 실행 환경과 데이터베이스 접속 기능을 제공한다.
 여러 개의 트랜잭션을 관리한다.
 업무를 처리하는 비즈니스 로직을 수행한다.
다만, 웹 애플리케이션의 정확한 정의는 존재하지 않아서 일부 기능을 제공하지 않는 웹 애플리케이션 서버도 존재한다. 업체들은 이러한 3가지 기능 말고도 여러 기능을 추가하고 강화하고 있다.

역사 
1990년대 초반 클라이언트/서버(C/S) 시스템에서는 클라이언트에 화면을 구성하는 각종 기능을 제공하는 Thick 클라이언트 구조가 대세였다. 하지만, RDBMS를 포함하는 서버 가격은 매우 고가이고 변경이 편리하지 않은 단점이 있었다. 따라서, 업무 프로세스를 변경할 경우 화면 프로그램을 교체하는 경우가 있었으나, 그 당시는 사용자가 주로 인트라넷이었기 때문에 큰 어려움이 없었다.

1990년대 후반 인터넷이 보급되면서 웹 브라우저를 사용한 전자상거래의 요구가 생기기 시작했다. 웹 브라우저를 주로 사용하는 시스템은 사용자가 불특정 다수이기 때문에 시스템의 변경에 따라 사용자의 화면을 수정하는 것은 거의 불가능하다. 이러한 요구와 함께 서버의 고성능화(UNIX서버 등의 저가의 고성능 서버 등장)와 초고속 네트워크 등장, 자바 등의 프로그램 언어의 처리능력 향상으로 애플리케이션의 위치가 클라이언트에서 서버로 전환되었다. 1990년대 후반에는 웹 브라우저를 화면으로 사용하면서 서버에서 애플리케이션을 수행하는 시스템이 일반화되었다.

분류

자바 EE 표준준수 웹 애플리케이션 서버

정의 
자바 EE는 자바의 기본적인 기능을 정의한 자바 SE에 웹 서버 역할을 추가한 것으로 자바 애플리케이션을 동작시킬 수 있는 컨테이너 등을 표준화한 스펙이다. 자바 EE 표준준수 웹 애플리케이션 서버는 자바 EE 스펙을 수용하는 웹 애플리케이션 서버이다.

구성 요소 
자바 EE 표준기반 웹 애플리케이션에서 동작하는 프로그램 언어는 자바이다. 일반적으로 웹 모듈은 자바 서블릿 또는 JSP(Java Server Page)로 구성하고, 비즈니스 모듈은 EJB(Enterprise Java Beans)로 구성한다.

자바 기반이나 비표준준수 웹 애플리케이션 서버

기타 웹 애플리케이션 서버

제품

자바 EE 표준 준수 웹 애플리케이션 서버

자바 기반이나 자바 EE 비준수 웹 애플리케이션 서버 
 아파치 톰캣(Apache Tomcat): 오픈 소스 재단 아파치 소프트웨어 재단의 오픈 소스 소프트웨어
 레진(Resin): Caucho사의 제품
 제이런(JRun): 매크로미디어사의 제품.

기타 등등 
 닷넷 애플리케이션 서버: 미국 마이크로소프트사의 제품
 Winstone Servlet Container ( http://winstone.sourceforge.net/ )
 Jetty ( https://web.archive.org/web/20111108170514/http://jetty.codehaus.org/jetty/ )

같이 보기 
 미들웨어
 웹 서버
 클라이언트 서버 시스템

각주 

서버
컴퓨터 네트워킹
미들웨어