애플리케이션 서버와 서블릿 컨테이너의 차이점은 무엇입니까?


115

완전한 애플리케이션 서버 (예 : Weblogic, JBoss 등)와 서블릿 컨테이너 (Tomcat, Jetty 등)의 차이점을 이해하려고합니다.

그것들은 어떻게 다르며 언제 사용합니까?

감사,



@Jigar : 이것이 중복되는 정확한 질문 을 알고 있다면 , 실제로 투표하여 중복으로 종료해야합니다.
Joachim Sauer

1
@Joachim 닫기 투표 하지 않았습니다 .
Jigar Joshi

2
중복이 아니기 때문입니다. :)
Bozho

1
죄송합니다 ... 저를 무시해도 좋습니다. 아직 필요한 카페인 수준에 도달하지 못한 것 같습니다.
Joachim Sauer

답변:


171

서블릿 컨테이너는 서블릿 API (JSP, JSTL 포함) 만 지원합니다.

애플리케이션 서버는 전체 JavaEE (EJB, JMS, CDI, JTA, 서블릿 API (JSP, JSTL 포함) 등)를 지원합니다.

서블릿 컨테이너에서 대부분의 JavaEE 기술을 실행할 수 있지만 특정 기술의 독립 실행 형 구현을 설치해야합니다.


1
내 쪽에서 +1, 좋은 차이. 더 많은 차이 @Bozho
Deepak

1
@Bozho : +1 : 지금까지 내가 당신에 대해 알아 차린 한 가지는 당신이 종종 놀라운 답변에 포함시키는 단순한 용어입니다.
Shirgill Farhan 2014

1
그것은 매우 유용 @Bozho입니다
Xstian

@Bozho 서블릿-컨테이너는 * 애플리케이션 서버의 기능 하위 집합을 가진 서버로 호출 될 수 있습니다. "그리고 두 가지 모두에 공통적 인 사용 사례의 경우 동일하게 작동합니다.
Kuldeep Yadav

15

대체로 서블릿 컨테이너는 J2EE 서블릿 사양의 구현으로 다소 제한됩니다. 또한 추가 도구를 제공하는 것이 아니라 런타임 환경에 중점을 둡니다.

대조적으로, 완전한 애플리케이션 서버는 전체 J2EE 스택을 구현합니다. 또한 모든 엔터프라이즈 도구 및 통합 가능성이 함께 제공됩니다. 응용 프로그램 서버에는 일반적으로 고급 관리 인터페이스가 있으며 주로 고급 시스템 개발에 사용되는 클러스터링 및 기타 기능을 지원합니다.

초보자에게는 학습 곡선이 훨씬 덜 가파르 기 때문에 간단한 서블릿 컨테이너를 사용하는 것이 좋습니다.


편집하다

@Apache Fan : 기존 시스템 및 향후 계획과 같은 상황의 특성에 따라 다릅니다. 여기에는 일반적인 순서도 접근 방식이 적용되지 않는다고 생각합니다.

플랫폼 선택은 일반적으로 고려중인 시스템에 대한 직접적인 지식과 특정 요구 사항을 비교하여 수행됩니다.

그러나 질문은 평가 기준이 무엇인지에 대한 단서를 제공하지 않습니다. 오픈 소스 여야합니까? 24 시간 공급 업체 지원이 필요합니까? 시스템을 어떤 종류의 엔터프라이즈 환경과 통합해야합니까? 라이센스 비용이 문제입니까? 필수 기술이나 도구가 있습니까? 기타.

위의 내용을 모르면 어둠 속에서 촬영하는 것과 같습니다.


나는 기업의 관점에서 요구하고 있습니다.
Pushkar

11

기본적으로 Java EE 컨텍스트 의 애플리케이션 서버서버 에 설치되고 하나의 Java EE 사양 (예 : Java EE 7)을 구현하는 소프트웨어입니다. 이는 그러한 소프트웨어 (애플리케이션 서버)가 Java EE 애플리케이션을 실행할 수 있어야 함을 의미합니다.

Java EE는 소위 컨테이너 라고하는 4 개의 도메인을 정의합니다 .

  • 애플릿 컨테이너,
  • 애플리케이션 클라이언트 컨테이너,
  • 웹 컨테이너 및
  • EJB 컨테이너.

두 개의 컨테이너는 애플리케이션 서버 (EJB 및 웹 컨테이너)의 일부이고 나머지 두 개는 클라이언트 컴퓨터의 일부입니다.

JBoss와 Weblogic은 애플리케이션 서버이고 Tomcat과 Jetty는 웹 컨테이너입니다. 이것이 JBoss와 Weblogic이 웹 컨테이너보다 더 많은 기술을 다룰 수있는 이유입니다. Application Server는 EJB를 관리 할 수 ​​있습니다.

서블릿 컨테이너는 더 제한적이기 때문에 자격을 갖춘 Tomcat 및 Jetty에 적합한 표현식이 아닙니다 . Tomcat은 서블릿뿐만 아니라 JSP 및 JSF도 실행할 수 있습니다.


2

afaik, websphere 및 jboss는 EJB와 같은 서블릿을 넘어서 실행할 수있는 완벽하게 호환되는 j2ee-server 인 반면 Tomcat은 서블릿 컨테이너 일 뿐이며 EJB를 실행할 수 없습니다.


그러면 Apache 서버가 어떤 범주에 속합니까?
Rolling Stone

Apache HTTP Server는 완전한 웹 서버 입니다.
asgs 2015-08-05

2

Layman 용어로 : 웹 서버는 HTTP 요청 처리 (일반적으로 브라우저에서)를 의미합니다.

서블릿 컨테이너 (예 : Tomcat)는 서블릿 및 JSP를 처리 할 수 있음을 의미 합니다.

애플리케이션 서버 (예 : GlassFish)는 다음을 의미합니다. * Java EE 애플리케이션 (일반적으로 서블릿 / JSP 및 EJB 모두)을 관리 할 수 ​​있습니다.

초보자에게는 간단한 서블릿 컨테이너를 사용하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.