98..Etc/Server

WAS에 대해서 모든 것을 말한다.

1010 2009. 4. 6. 14:50
반응형
이 글은 인터넷 검색을 통해서 정리했음을 밝힙니다.

WAS(Web Application Server)란?
-데이터베이스 조회나 일반적인 비즈니스 로직에 대한 처리를 위해 다양한 언어로 개발된 인터넷/인트라넷 환경의 소프트웨어를 지짗한다.
-서버기반의 application system을 위한 최적화된 실행환경을 제공하는 엔진
-Web Server와 DBMS를 연계 3-tier을 구현하는 Middle ware
-Web 비지니스 로직을 구현하는 가장 효과적인 Solution

WAS의 기능
- 환경에서의 최적의 트랜잭션 처리
- 웹 기반 애플리케이션들에 대한 분석 처리
- 분산된 웹 기반 어플리케이션 통합관리
- 웹 환경에서의 트랜잭션 모니터링

WAS의 역할
- 웹서버는 사용자(클라이언트)가 요청을 보내오면 그 명령에 대한 처리를 실행하고 다시 사용자에게 답변을 보내주는 역할을 수행합니다. 그런데 요청한 것들 중에 자체적으로 처리할 수 없는 것들을 톰캣과 같은 컨테이너나 아님 php 모듈과 같이 처리할 수 있는 곳으로 넘겨 처리 결과를 받아와서 사용자에게 넘겨주는 역할을 수행하는게 꼭 해야되는 기능 중에 하나입니다.

톰켓은 jsp를 실행 할 수 있는 컨테이너입니다. 웹서버에서 jsp를 요청하면 톰켓에서는 jsp파일을 servlet으로 변환하여 컴파일을 수행하고 서블릿의 수행 결과를 웹서버에 전달하게 됩니다.

- Tomcat
Java진영 Open Source Group인 Apache Software Foundation에서 공식적으로 사용하고 있는 Servlet-Container입니다.
또 Web server인 Apache의 기능을 내장하고 있어서, 그 자체로도 Web server기능을 할 수 있습니다. 하지만 분명히 톰캣은 WAS입니다.
(참고: IIS의 경우에는 출발은 web server이었는데, WAS로 구분하지 않고 그 자체로 WAS기능으로 포함시켜 왔습니다. 그래서 구분하자면 Web+WAS입니다.)

- 밴더별 WAS
크게 마이크로소프트 플랫폼과 비 마이크로소프트 플랫폼으로 나뉘어 볼 수 있다.
비 마이크로소프트 플랫폼은 유닉스나 솔라리스 등의 운영체제에 오라클 DBMS, 그리고 별도의 미들웨어 제품을 얹어서 사용하며, 이 때문에 비 마이크로 소프트 플랫폼은 하나같이 표준 J2EE스펙을 완벽하게 준수한다는 사실을 장점으로 내세움.

- JSP가 컴파일되어 Servlet에 적재되는 시점
더 자세한 정보는 링크를 통해..

[출처] JSP가 컴파일되어 Servlet Container에 적재되는 시점|작성자 행복마녀

http://blog.naver.com/tjddhr1168/10026420652

클라이언트에서 JSP를 요청했을 때 해당 JSP의 Servlet 객체가 Servlet 컨테이너에 있는지 없는지 검사하게 되고, 있다면 바로 실행에 들어가지만 없다면 다시 Servlet 생성루틴을 거치게 됩니다. 만약, 여러분이 JSP파일을 수정하였다면 Java Server Page는 수정 검사루틴을 가지고 있기 때문에 JSP파일이 수정되었는지 검사한 후 수정되었다면 .jsp파일을 .class로 컴파일하고 Servlet Container에 다시 적재하는 과정을 밟게 됩니다. 다음의 그림은 JSP실행루틴을 도식화한 그림입니다.

사용자 삽입 이미지
위의 그림은 JSP의 작업 흐름도를 보여 주고 있습니다. 제일 먼저 Webserver나 Servlet 엔진에서 클라이언트의 요청을 받게 됩니다. 서버에서 요청을 받게되면 바로 JSP Handler즉, JSP Container Process라고 불리우는 루틴을 거치게 되면서 Servlet 객체존재여부와 파일변경여부를 확인하게 됩니다. 변경되었다면 새로 source파일을 생성하고 그리고 compile과정을 거쳐 실행하게 되고 그리고 이미 로딩되어 있는데 변경처리되지 않았다면 기존에 존재하는 것을 이용하게 됩니다. 로딩을 하지않았다면 처음부터 로딩을 시작하여 source파일을 만들고 compile과정을 거쳐 새로 실행합니다. 다른 서블릿들도 Servlet Container에 적재하는 과정을 반복하게 됩니다.