apache tomcat(아파치 톰켓)
전 세계적으로 가장 많이 사용하고 있는 was 서버 종류 중 하나다. 관공서에서도 많이 사용하고있으며, 큰 기업에서도 마찬가지로 널리 사용되고 있기 때문에 신뢰성 있고, 검증된 어플리케이션 이라고 할 수 있다.
아래는 용어에 대해서 간단히 정리해봤다.
아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단에서 개발된 서블릿 컨테이너 또는 웹 컨테이너 라고 부르며 이것을 웹 애플리케이션 서버이다.
톰캣은 web 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.
톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 한다.
웹 서버와의 연동
아파치 톰캣에 내장된 웹 서버로만 웹 시스템을 구성할 수 있지만, 대규모의 사용자가 사용하는 시스템을 구축하려면 웹 서버와 연동하는 안정적인 시스템을 구축해야 된다.
이때, 웹 서버인 아파치 웹 서버와는 연동모듈을 사용하여 연동하고, 연동모듈로는 버전 1.3, 2.0은 mod_jk를 이용하고, 버전 2.2 이후는 mod_proxy_ajp 모듈을 사용한다.
톰캣의 단점
톰캣은 웹 서버로 사용되기보다는 웹 애플리케이션 서버(WAS)로 사용되는데, 톰캣은 html 같은 정적 페이지를 로딩하는데 웹 서버보다 수행 속도가 느리다고 할 수 있다.
이를 해결하기 위해서 아파치와 연동하며, 아파치는 단독으로 사용될 경우 html 같은 정적인 페이지를 로드하는데 사용되는 web 서버 이기 때문에 tomcat 과 함께 사용하는게 좋다.
원리는 아파치가 실행되면 아파치는 html 파일은 자신이 수행하고 jsp 파일은 톰캣으로 넘겨서 톰캣이 수행하게 만들게 된다. 톰캣 특성상 java 언어만 해석이 가능하기 때문에 톰캣에 자체 내장되어 있는 http 서버를 사용하더라도 php 언어로 작성된 서버 페이지는 실행이 불가능하기 때문이다.
따라서 php와 jsp 모두를 사용하고 싶다면 아파치에서 php를 호출하고 톰캣에서 jsp를 호출 하도록 구성하여 상호 보완적 동작을 수행하도록 구성 하는것이 좋다.
JEUS
JEUS는 국내 기업인 Tmax 에서 만든 것으로 제품 완성도나 지명도에서 떨어진다고 할 수 있다. 하지만 국내 시장에서 1위를 차지하는건 정말 대단하다고 말할 수 있다.
국산 os 를 선보인 적도 있는데, 일각에서는 그냥 was 서버나 판매할 것이지, 왜 os 까지 뛰어드는지 모르겠다고 이야기한다. 인터넷에 떠도는 영상을 보게되면 프린젠테이션 과정에서 os 가 강제 리부팅 되는등 문제가 많았던거 같다.
자 다시 was 얘기로 돌아온다면 그렇다면 jeus 의 성능은 어떤지 확인해보자.
다양한 프리젠테이션 로직 지원
- Servlet – 동적 HTML 문서 작성을 위한 Java 프로그래밍 모델을 지원하며, Servlet 엔진이 Multi-threading으로 구현되어 성능이 우수하고, EJB 등과 부드러운 연동이 가능하다.
- JSP (Java Server Page) – Servlet 사용을 통해 웹 페이지의 내용이나 모양을 제어하며, 웹 서버에 의해 실행될 자바 프로그램을 호출 하는게 가능하다.
- XML – 웹 상에서 구조화된 문서를 전송 가능하도록 설계된 표준화된 텍스트 형식으로, 안전한 전자상거래 구축을 가능하게 하는 등 웹을 좀 더 다양한 목적으로 이용할 수 있게 되어 있다.
편리한 비즈니스 로직 지원
- EJB (Enterprise Java Beans) – 자바 기반의 객체지향 프로그래밍 모델로서 새로운 프로그램 컴포넌트가 추가되거나 변경될 때마다 각 개별 컴퓨터를 갱신하지 않고서도 서버에서 변화를 통제할 수 있도록 하는 이점을 제공한다.
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 – 데이터베이스와의 연결을 효율적으로 관리 할 수 있다.
부하 조절
다음과 같은 다양한 부하 조절 방식을 제공한다.
- 각 서버(호스트)로의 동적 부하 조절 – 서버들의 Load를 실시간으로 수집해 클라이언트의 요청을 처리 가능한 최적의 서버로 분배하여 부하를 조절 할 수 있다.
- 각 서비스별 처리능력의 동적 조절 – 클라이언트 요청의 증가에 따라 각 서비스 루틴이 자동적으로 증가하게 되어 서비스 처리 능력을 동적으로 조절 할 수 있다.
- 하드웨어 성능에 따른 정적 부하 조절 – 예를 들자면, 메인프레임급에는 80%의 Load를, 워크스테이션급에는 20% Load를 배분하는 식으로 하드웨어 성능에 따라 부하를 조절 할 수 있다.
장애 대책
- 서버(호스트)간의 상호 감시 – 장애 발생시 서비스를 백업 서버로 이전시켜 중단없는 서비스 처리가 가능하다.
- 어플리케이션 프로세스에 대한 감시 – 프로세스 모니터가 어플리케이션 프로세스를 감시하여 장애 발생시 프로세스를 자동적으로 재시작하게 된다.
다양한 보안 기능 제공
다음과 같은 다양한 보안 기능들을 사용할 수 있다.
- Login Name & Password
- 각 서비스에 대한 Access 권한 제한
- 클라이언트의 IP 어드레스 또는 도메인 제한
- CA (Certificate Agent)를 통한 사용자 인증
- SSL (Secure Socket Layer)의 사용
편리한 관리자 도구의 제공
- 리소스 배치를 간편하게 할 수 있다.
- 실시간으로 시스템을 모니터링할 수 있다.
- 멀티 서버 (호스트) 시스템을 통합적으로 제어할 수 있다.
WebInOne과의 연동 기능
- JEUS는 WebInOne과 통합하여 사용되어 질 때, CORBA 클라이언트, TP-Monitor 클라이언트 등 다양한 클라이언트들로부터 서비스 요청을 받아들일 수 있게 된다. WebInOne의 다른 구성요소인 WebtoB (웹 서버), Tmax (TP모니터), CORBA ORB와 함께 사용되어 미들웨어 요소들 간에 연동을 필요로 하는 시스템 구성시에 강력한 솔루션을 제공하게 된다.
WebLogic
웹로직은 미국의 거대 기업인 BEA 가 만든 것으로 역사도 길고 제품 완성도도 JEUS 보다 괜찮다고 할 수 있다.
가격이 엄청 비싸지만 최근에는 대부분 덤핑가로 들어간다고 하는데, 아무래도 jeus 의 영향 때문인거 같다. 기술지원의 속도나 수준이 낮은 것이 국내 상황에서의 최대 단점이다.
IIS
마이크로소프트 인터넷 정보 서비스(Internet Information Services, IIS)는 마이크로소프트 윈도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임 이라고 할 수 있다.
이전 이름은 인터넷 정보 서버(Internet Information Server)였다. 전반적인 웹사이트 용어에서, 아파치 웹 서버에 이어 세계에서 두 번째로 가장 잘 알려진 웹 서버이다.
넷크래프트에 따르면, 2007년 10월 기준으로 전 세계 웹사이트의 37.13%와 전 세계 활성화 웹사이트들의 38.23%가 인터넷 정보 서비스를 사용하고 있다고 한다. 서버는 현재 FTP, SMTP, NNTP, HTTP/HTTPS를 포함하고 있다.