검수요청.png검수요청.png

와스

해시넷
kskim5223 (토론 | 기여)님의 2020년 8월 21일 (금) 17:17 판 (비교)
이동: 둘러보기, 검색

와스(WAS)란 Web Application Server의 약자로서, 웹 응용 프로그램이 설치되어 작동하는 웹 애플리케이션 서버를 말한다. 미들웨어의 일종이자 시스템 소프트웨어의 일종이다. 웹서버에는 HTML 문서가 저장되고, WAS에는 Java 등 응용 프로그램 파일이 저장된다.

개요

와스는 과 기타 클라이언트 인터페이스를 지원하는 다계층 아키텍쳐에서 안정적인 트랜잭션 처리를 가능하게 해주고, 분산 시스템을 개발 도와주는 역할을 하는 미들웨어의 일종으로 이해할 수 있다. 이와 같은 개념은 새로운 것이 아니며, 이미 기존의 TP 미들웨어나 RDBMS 제품 혹은 클라이언트 서버 제품에서 부분적으로 이미 제공되고 있던 것이 웹 기반을 강화하면서 와스로 새롭게 소개되고 있는 것이다. 와스는 그 기능과 발달단계에 따라 크게 네 가지로 구분이 가능하다. 웹 사이트 툴(Web Site Tool)은 서버단의 프로그램이나 컴포넌트가 HTML 스크립트를 전송하고 받을 수 있도록 하는 기능을 제공하는 것으로, 복잡한 웹 애플리케이션의 통합 기능은 제공하지 않는다. 이는 실제로는 운영 체계나 프로그램의 인터페이스인 API와 큰 차이가 없으며, 다만 기존의 애플리케이션이 인터넷 환경에서 인터페이스를 갖게 하기 방편으로 이해될 수 있다. 기본 애플리케이션 서버(Modest Application Server)는 웹 환경 아래서 애플리케이션간의 통신 등의 기본적인 애플리케이션 서버 기능을 제공하며, 기존의 트랜잭션 미들웨어 제품들이 이에 속한다. 기업용 애플리케이션 서버(Enterprise Application Server) 같은 경우는 단순히 엔드 투 엔드(End-to-End) 방식의 통신을 넘어서 애플리케이션 간에 인터랙티브한 정보교환이 이루어지게 하는 기반 구조를 가지고 있다. 이 제품들은 기본 통합 기능 이외에도 애플리케이션 간의 상호 차별적 인증과 정보교환, 보안 등의 부가기능도 제공한다는 특징이 있다. 패키지 애플리케이션 서버 수트(Packaged Application Server Suites)는 e 비즈니스를 위해 기업 내 애플리케이션 통합 뿐 아니라 기업 간 애플리케이션 통합을 전제로 설계된 애플리케이션 서버들이다. 이는 다른 기업의 애플리케이션과의 통신을 위해 되도록 적은 커스터마이징을 하도록 설계되어 있으며, B2Bi를 위한 통합 엔진으로써 사용되는 것을 목적으로 설계된 것들이 대부분이다. 또한 WAS 개발 업체들은 각자 컴포넌트 모델을 구현해 제품을 출시하고 있는데, 이가 어떤 개발 프레임워크로 개발되었는가에 따라 DCOM/COM 기반 와스, CORBA 기반 와스, EJB 기반 와스 등으로 구분이 가능하다. 초기의 제품들은 CORBA(Common Object Request Broker Architecture)를 기본으로 개발된 것들이 많으며, 비지브로커, 오빅스가 대표적이다. DCOM(Distribute Component Object Model)은 마이크로소프트에서 제시한 프레임워크로 마이크로소프트 제품군이 이 방식을 따르고 있다. 그러나 J2EE 표준이 만들어지면서 최근의 대부분의 기업용 WAS 제품들은 EJB(Enterprise JavaBeans) 방식으로 개발되고 있으며, 대표적인 것으로는 웹로직, 웹스피어 등이 있다. 주의할 것은 J2EE을 기반으로 한 제품들이라고 해서 모든 기업 상황에 다 적합한 것은 아니라는 점이다. 어떤 기반의 와스를 선택하는가 하는 것은 기업의 어떤 목적으로 와스를 도입하려는가에 달려있다. 기업 내의 애플리케이션 통합과 통신만이 목적인 경우는 DCOM이나 EJB 기반이 유리하며, B2B 통합과 같은 기업 간 통합을 위한 프로젝트에는 EJB 기반의 와스가 유리한 것으로 알려져 있다. 한편, 많은 양의 트래픽을 안정적으로 처리하는 시스템을 구축하고자 하는 경우에는 CORBA 기반의 제품이 추천되고 있다.[1]

역사

1990년대 초반 클라이언트/서버(C/S) 시스템에서는 클라이언트에 화면을 구성하는 각종 기능을 제공하는 Thick 클라이언트 구조가 대세였다. 하지만, RDBMS를 포함하는 서버 가격은 매우 고가이고 변경이 편리하지 않은 단점이 있었다. 따라서, 업무 프로세스를 변경할 경우 화면 프로그램을 교체하는 경우가 있었으나, 그 당시는 사용자가 주로 인트라넷이었기 때문에 큰 어려움이 없었다. 1990년대 후반 인터넷이 보급되면서 웹 브라우저를 사용한 전자상거래의 요구가 생기기 시작했다. 웹 브라우저를 주로 사용하는 시스템은 사용자가 불특정 다수이기 때문에 시스템의 변경에 따라 사용자의 화면을 수정하는 것은 거의 불가능하다. 이러한 요구와 함께 서버의 고성능화(UNIX서버 등의 저가의 고성능 서버 등장)와 초고속 네트워크 등장, 자바 등의 프로그램 언어의 처리능력 향상으로 애플리케이션의 위치가 클라이언트에서 서버로 전환되었다. 1990년대 후반에는 웹 브라우저를 화면으로 사용하면서 서버에서 애플리케이션을 수행하는 시스템이 일반화되었다.[2]

특징

와스는 플랫폼 기능, 런타임 매니지먼트 서비스, 통합 기능, 툴 개발 등의 기능을 제공한다.

  • 플랫폼 기능(Platform service)

다양한 기반으로 구축된 클라이언트와의 인터페이스를 제공하는 기능을 말한다. 클라이언트가 웹 브라우저기반일 경우 대부분의 WAS는 HTTP 서버에 게이트웨어 인터페이스인 CGI(Common Gateway Interface)나 마이크로 소프트의 인터넷 AIP (IAPI), 넷 스케이프의 NSAPI 등의 리퀘스터를 통해 어프리케이션과의 연결기능을 제공한다. 최근에는 리퀘스터를 통해서 뿐만 아니라 다계층 아키텍쳐로 이러한 기능을 제공하는 경우가 많다. 이러한 기능을 클라이언트 연결(Client connectivity services)이라고 한다. 원래 HTTP 문서들은 문서의 정보를 입력하고 있는 태그(tag)가 정의되어 있지 않은 것이 대부분이다. 이러한 특징은 HTTP 자체를 가볍게 하는데는 효과적이지만, 어플리케이션과의 통신에는 적합하지 않다. 스테이트 메니지먼트 서비스(Stated Management)는 HTTP 문서와의 의사소통이 가능하도록 만들어주는 역할을 하는 것으로, HTTP 클라이언트에 대한 정보를 붙여줌으로써 이들이 다른 어플리케이션과의 통신이 가능하도록 하는 역할을 한다.

  • 런타임 매니지먼트 서비스(Runtime management services)

와스의 구동을 실시간으로 감시하고 리포팅하는 기능이며, 어플리케이션간의 실시간 연결, 데이터베이스 연결, 등의 여러 부가 기능들을 제공한다. 특히 트렌젝션 프로세싱 서비스(Transaction processing service)는 컴포넌트와 컴포넌트(혹은 어플리케이션과 어플리케이션)가 효과적인 통신이 가능하도록 만들어주는 역할을 한다. 많은 정보량이 한꺼번에 몰릴 수 있는 서버의 부하를 효율적으로 조절함으로써 시스템의 안정성을 높여주는 역할이 트랜젝션 프로세싱의 역할이다.

  • 통합 서비스(Integration services)

기존의 시스템과 새로운 어플리케이션간의 통합기능을 제공한다. 이들은 기존의 패키지 어플리케이션, 데이터 베이스와 이들을 연결해 주었던 미들웨어들은 각각의 설치 환경에 따라 각기 구축되어 있는 경우가 많다. 통합 기능은 이러한 파편화된 어플리케이션들을 통합함으로써 서로간의 연동이 가능한 구조로 만드는 역할을 한다.

  • 툴 개발(Tool development)

와스의 환경 안에서 기업에게 필요한 다른 응용프로그램을 개발할 수 있는 툴을 제공하는 것을 의미한다. 와스 업체들은 자신들이 개발한 툴을 와스의 아키텍처에 넣어놓거나, 전문 툴 개발업체에서 개발한 표준화한 툴이 연동될 수 있도록 설계하고 있다. 그 기업에 맞는 프로그램을 기업들이 스스로 개발할 수 있도록 와스를 통해 여러 정보가 통합되면 보안도 매우 중요해 진다. 와스에서 특히 중요한 것은 통합된 정보들은 정보 사용자에 따라 각기 다른 수준의 정보가 제공되어야 한다는 점이다. 이를 위해서 와스는 정보사용자 뿐만 아니라 그 디바이스에 대한 인증 기능을 갖추어야 하며 이를 통해 차별화된 정보 제공을 할 수 있게 된다. 현재 하나의 와스 솔루션이 이러한 다양한 기능을 모두 완벽하게 지원하는 것은 현실적으로 불가능하다. 따라서 와스 업체들은 기존에 자신들이 강점을 자기고 있던 분야를 중심으로 자신의 제품을 와스로 규정하고 시장에 진출하고 있다.[1]

종류

블록라인.png
이 그림에 대한 정보
글래스피시 로고.png
글래스피시
레진 (서버) 로고.png
레진
와일드플라이 로고.png
와일드플라이
웹로직 로고.png
웹로직
웹스피어 로고.png
웹스피어
제우스 로고.png
제우스
톰캣 로고.png
톰캣

비교

구분 역할 프로그램 명
웹 서버 웹 클라이언트의 요청을 받아서 요청을 처리하고, 그 결과를 웹 클라이언트에게 응답한다. 주로 정적 페이지인 HTML, 이미지, CSS, 자바스크립트 파일을 웹 클라이언트에 제공할 때 웹 서버를 사용한다. 만약 동적 페이지 처리가 필요하다면 웹 애플리케이션 서버에 처리를 넘긴다. Apache httpd, Nginx, Iighttpd, IIS 등
웹 애플리케이션 서버 웹 서버로부터 동적 페이지 요청을 받아서 요청을 처리하고, 그 결과를 웹 서버로 반환한다. 주로 동적 페이지 생성을 위한 프로그램 실행과 데이터베이스 연동 기능을 처리한다. Apache Tomcat, JBoss, WebLogic, WebSphere, Jetty, Jeus 등

웹 서버는 정적 데이터를 처리하고, 웹 애플리케이션 서버는 동적 데이터를 처리한다. 이 특징으로, 실무에서는 이 둘을 연동하여 사용하는데, 와스는 동적 처리에 최적화 되어 있는 서비스이기 때문에 처리 속도를 위해, 정적 처리는 웹서버에서 처리를 하고, 동적 컨텐츠는 와스에서 처리한다. 웹 서버에 웹 문서를 처리하는 기능을 분배하여 서버의 부담을 줄일 수 있고, 이로 인해 웹 애플리케이션에서 정적 데이터 처리를 위해 지연되는 시간이 줄어들어 동적 컨텐츠의 처리 속도가 빨라진다.

각주

  1. 1.0 1.1 심동철, 〈[file:///C:/Users/envy/Downloads/%EC%9B%B9%20%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%20%EC%84%9C%EB%B2%84(Web%20Application%20Server)%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9D%B4%ED%95%B4%EC%99%80%20%EA%B8%B0%EC%97%85%EC%9D%98%20%EC%86%94%EB%A3%A8%EC%85%98%20%EC%84%A0%ED%83%9D%20%EC%A0%84%EB%9E%B5.pdf 웹 어플리케이션 서버 (Web Application Server)에 대한 이해와 기업의 솔루션 선택 전략]〉, 《정보통신정책연구원》, 2001-09
  2. 웹 애플리케이션 서버 위키백과 - https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EC%84%9C%EB%B2%84

참고자료

  • 심동철, 〈[file:///C:/Users/envy/Downloads/%EC%9B%B9%20%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%20%EC%84%9C%EB%B2%84(Web%20Application%20Server)%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%9D%B4%ED%95%B4%EC%99%80%20%EA%B8%B0%EC%97%85%EC%9D%98%20%EC%86%94%EB%A3%A8%EC%85%98%20%EC%84%A0%ED%83%9D%20%EC%A0%84%EB%9E%B5.pdf 웹 어플리케이션 서버 (Web Application Server)에 대한 이해와 기업의 솔루션 선택 전략]〉, 《정보통신정책연구원》, 2001-09
  • 웹 애플리케이션 서버 위키백과 - https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EC%84%9C%EB%B2%84

같이 보기


  검수요청.png검수요청.png 이 와스 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.