달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2010. 10. 3. 10:23

Tomcat과 Servlet, JSP의 관계 Enjoy/JSP2010. 10. 3. 10:23

출처 : http://blog.jidolstar.com/363


RPC(Remote Procedure Call)
다른 서버에 있는 함수를 호출해서 결과값을 리턴 받는 방식
참고 : 
http://en.wikipedia.org/wiki/Remote_procedure_call

RTMP(Real Time Messaging Protocol)
Adobe Flash Player와 서버간에 오디오, 비디오, 데이타를 스트리밍 하기 위해 개발된 프로토콜이다. 
참고 : 
http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol

SOAP(Simple Object Access Protocol)
일반적으로 널리 알려진 HTTP,HTTPS,SMTP등을 사용하여 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜이다. SOAP은 웹 서비스(Web Service)에서 기본적인 메시지를 전달하는 기반이 된다
참고 : 
http://ko.wikipedia.org/wiki/SOAP

AMF(Action Message Format)

BlazeDS와 LCDS에서 RemoteObject와 메시지 서비스는 AMF3(Action Message Format version 3)를 이용해 통신하게 된다. AMF는 Flash Player에서 리모팅 및 메시징 기술에 빠른 통신방법을 제공하기 위한 일종의 바이너리 데이타 형태라고 생각하면 되겠다. 그러므로 서버에 제작된 Java Beans 함수를 호출하여 그 결과를 객체(바이너리 형태)로 받을 수 있다.

AMF3를 이용하는 RemoteObject는 XML등을 이용하는 HttpService나 WebService보다 대용량 데이터 처리가 우수하다. 속도 테스트에 관련된 내용은 예전에 내가 쓴 
"수행속도종합테스트"를 참고하자.

참고 : 
http://en.wikipedia.org/wiki/Action_Message_Format

HttpService
- RPC통신방식으로 HTTP환경에서 GET/POST방식으로 서버에 요청에 따라 XML과 같은 Text형태의 데이터를 받는 방법
- ASP/JSP/PHP든 어떤 서버사이드 스크립트 언어를 써도 상관없다.

WebService
- RPC통신방식으로 HTTP환경에서 XML로 된 SOAP 메시지를 결과로 리턴받는 개방형 방식, WSDL규정에 따라 데이터를 얻어온다.
- 웹서비스가 가능한 애플리케이션과 연동된다.

Remote Service
- RPC통신 방식으로 HTTP환경에서 Java Bean를 호출하여 AMF방식을 통해 객체 데이터를 주고 받는 형식
- 대용량 데이터를 고속 처리하는데 적합하며 암호화가 가능함
- LCDS나 BlazeDS와 같은 웹애플리케이션이 돌아갈 수 있는 WAS환경에서만 가능

Message Service
- 클라이언트의 요청없이 서버에서 클라이언트 쪽으로 데이터를 보내줄 수 있는 방식
- 새로운 뉴스 리포팅이나 실시간 자동 데이타 업데이트 등에 쓰일 수 있다.
- RTMP환경에서 AMF방식으로 데이타를 주고 받는다.
- BlazeDS나 LCDS가 있어야 사용할 수 있다.

Data Management Service
- 클라이언트와 서버간에 데이터를 쉽게 동기화하기 위한 서비스다.
- 클라이언트가 수정한 데이터를 즉시 서버에 반영할 수 있다. 
- 서버에 수정된 데이터는 다른 클라이언트에도 즉시 반영된다.
- RTMP 및 HTTP 환경에서 AMF방식으로 데이터를 주고 받는다.
- LCDS가 있어야 사용할 수 있다.


JEE(Java Enterprise Edition) : Servlet/JSP,Mail,MQ,Corba,EJB,WS
JSE(Java Standard Edition) : JRE+JDK
J2EE는 JEE의 윗버전으로 Java 2 Enterprise Edition을 지칭한다.

WAS에 대해서 살펴보자. 도데체 Tomcat이 WAS인가 헷갈릴 때가 많은데 간단하게 정리하면 보통 WAS는 J2EE규약을 준수하여 구현했는가 일부만 구현했는가에 따라서 결정하게 된다.

WAS(Web Application Server) : JEE규약을 준수한 구현체, 종류로는 웹스피어, Web Logic, Sun JEE서버등
Web Container : JEE규약의 일부분(Servlet/JSP) 구현체, 종류로는 Tomcat, Resin,JRun 등

WAS의 중요한 기능중  Servlet/JSP Container와 EJB Container이 있는데 EJB Container로서의 역할비중이 크다. 하지만 Tomcat은 EJB Container에 대한 구현을 안했기 때문에 엄밀히 말해서 WAS라고는 하지 않는 것이 보통이다. 

WAS의 역할은 Web Server와 DB Server 사에 존재하는 미들웨어 역할을 하며 그 중간에 Web Application을 탑재하여 DB Server의 데이타를 사용목적에 맞게 가공하여 Web Server에 보내주는 역할을 한다. 

WAS를 사용하는 또 다른 이유는 분산환경을 만들기 위해서이며 분산환경의 가장 큰 이슈인 트렌잭션 처리를 적은 비용으로 효과적으로 처리하는 것을 목적으로 한다.


JDK와 JRE?

Tomcat 설치 중에 JRE 설치 경로를 설정하는 부분이 있을 것이다. 여기서 JDK와 JRE의 의미를 명확히 알아보자.

① JDK

    - Java Development Kit
    - 자바 애플릿이나 각종 응용 프로그램(어플리케이션)을 개발자들이 쉽게 만들 수 있도록 
       해주는 개발자용 도구.
    - 여러 운영체제 및 응용 프로그램(어플리케이션)과 연결시킬 수 있는 자바 응용 프로그램
      인터페이스(API)와 클래스 라이브러리, 자바 가상 머신 등을 포함.
    - 자바를 사용해서 자바 응용 프로그램을 개발할 수 있도록 해주는 도구입니다. 
    - 자바 파일을 컴파일할 수 있는 컴파일러를 포함한 부분

② JRE

    - Java Runtime Environment
    - 컴파일된 자바 프로그램을 실행할 수 있도록 해주는 환경. 
    - 자바 언어로 개발된 소프트웨어를 실행하기 위해 필요한 플랫폼. 
    - 자바를 이용해 개발된 소프트웨어는 어떤 플랫폼으로부터도 독립적인 형식
       (자바 바이트 코드)으로 배포되지만, 이것을 실행하려면 그 플랫폼을 해석할 수 있는 형식
       (native code)으로 변환해야 한다. 즉, 자바 실행 환경(JRE)은 이 변환과 실행을 행하는 
       자바 가상 머신과 그 주변의 소프트웨어이다.

요약하자면 JDK는 자바개발을 위한 도구이며 JRE는 자바로 작성된 응용프로그램을 실행하기 위한 환경이다. 

JDK = JRE + 개발에 필요한 실행파일(javac.exe등)
JRE = JVM(자바가상머신) + 클래스라이브러리(Java API) 

그러므로 JDK가 설치되면 JRE는 필요 없다고 해도 무방하며 Tomcat의 경우 설치하는 과정으로부터 JRE가 설치되어있어야 동작한다는 것을 알 수 있다.




Tomcat과 Servlet, JSP의 관계

Servlet과 JSP는 PHP와 ASP와 같이 서버에서 동작하며 DB에 접근하든지 비지니스 로직처리를 수행하기 위한 Java언어를 사용하는 Server Side Script 언어이다. 

Tomcat은 웹서버상에서 Java코드를 이용하기 위한 엔진 혹은 컨테이너이다. 즉, Java기반인 JSP, Servlet을 이해하기 위해 Tomcat과 같은 자바를 이용하는 엔진이 필요한 것이다.

Servlet은 Tomcat이 이해할 수 있는 순수 Java 코드로만 이루어진 웹서버용 클래스이다. 일반적인 Java 코드와 같으며 HTML형태로 출력하기 위해 print() 메소드 같은 것을 사용한다. 이 때문에 Servlet은 PHP와 ASP에 비해 코딩하기가 복잡하다. 이러한 단점을 보완하기 위해 나온것이 JSP이다. JSP는 PHP나 ASP처럼 HTML코드와 혼용되서 사용한다. Tomcat은 JSP코드를 컴파일할때 Servlet코드로 전환하여 컴파일을 진행하게 된다. 그래서 Tomcat을 Servlet/JSP 컨테이너라고 한다.





:
Posted by 라면스프