Programming/java

[java] J2EE

성일만 2014. 9. 18. 09:44

J2EE



J2EE의 이해

  • Java TM

    • 목적 : To Ensure "Write Once, Run Anywhere"
    • 플랫폼 : J2SE, J2EE, J2ME
  • J2EE란?

    • 엔터프라이즈 환경에서 자바를 이용한 어플리케이션 개발을 위한 표준

      • 데이타베이스 처리(JDBC, JTS, JTA)
      • 비동기 메시지 처리(JMS)
      • 분산 트랜잭션 컴포넌트(EJB)
      • 분산 객체(RMI)
      • 웹 어플리케이션(Servlet, JSP)
    • J2EE의 모든 스펙들은 벤터들에 의해서 구현되며 개발자들은 표준 API를 이용하여 개발한다.
  • J2EE - JDBC

    • Java DataBase Connectivity
    • 표준화된 데이타베이스 접근 방법(API)을 제공한다.
  • J2EE - JNDI

    • Java Naming And Directory Interface
    • Naming and Directory 서비스를위한 자바 API
    • 네트워크상에 존재하는 도든 리소스들에 대해서 물지적인 위치를 몰라도 디렉토리와 이름 구조로 접근할 수 있다.
    • DNS, NDS(노벨), LDAP 등의 Naming & Directory 서버에 대한 표준화된 접근 방식 제공
  • J2EE - RMI

    • Remote Method Invocation
    • 리모트 상에 존재하는 객체의 method를 호출하는 프로토콜
    • stub, skeleton은 네트워크에 관련된 처리와 해당 프랫폼에 맞는 데이터 형식으로 변환하는 작업을 처리한다.

      • 로컬 method를 호출하는 것과 같은 느낌
      • 다른 네트워크 프로토콜과도 인터페이스 할 수 있다.
      • RMI-IIOP 프로토콜은  RMI 클라이언트가 코바 객체를 호출하거나 코바 클라이언트가 RMI객체를 호출할 수 잇다.
  • J2EE - Servlet

    • 동적인 HTML을 생성한다 (CGI와 같은 개념을 가지는 자바기반의 표준)
    • 클라이언트와는 HTTP 프로토콜을 기반을 두고 인터페이스한다.
    • 클라이언트(브라우저)입장에서는 하나의 웹 페이지를 호출하는 것과 같아.
    • 브라우저의 호출에 의해 데이타베이스나 레거시 시스템과의 연계를 할 수 있고 비즈니스 로직을 처리할 수 있다.
    • 멀티 쓰레드로 동작, CGI보다 부하가 적으며 세션 관리를 위한 자체 메커니즘을 제공
    • Jeus는 동적일 파일을 처리 하고, WebToB는 정적인 파일을 처리한다.
  • J2EE - JSP

    • 서블릿의 개발상의 단점 보완(HTML과 JAVA 코드를 분리, 웹 어플리케이션 개발시 컨탠츠 변경 및 관리가 쉽다)
    • 텍스트 기반의 HTML문서에 자바코드를 삽입하는 형태를 가진다.(XML기반의 태그에 자바코드를 삽입. 컨텐츠 생성을 위한 로직 처리의 캡슐화)
    • 하나의 JSP 파일은 하나의 서블릿으로 변경, 실시간에 바로 적용된다.
  • J2EE - EJB

    • 비즈니스 로직에 대한 서버측 컴포넌트
    • 비즈니스 로직에 대한 재사용성
    • 다른 EJB 서버로도 쉽게 적용될 수 있다.
    • 트랜잭션 처리, 보안, 동시 사용자 처리 등을 EJB서버가 처리함으로써 업무 로직에 집중할 수 있다.
    • 배치 디스크립터를 통해 배치에 관련된 사항이나 환경에 관련된 사항을 소스와 분리시킴으로써 다른 환경에 쉽게 적용할 수 있다.
  • Java 기반의 인터넷 플랫폼

    • 클라이언트 층

      • 클라이언트는 웹 브라우저나 모바일 폰과 같은 무선 장비상의 다양한 Markup Language 브라우저를 통해 주로 UI(User Interface)를 담당하거나, Applet 또는 Java application 형태로 구현될 수도 있다.
    • 프리젠테이션 층

      • 주로 JSP, Servlet 응용 프로그램으로 클라이언트의 요구를 받아 어플리케이션 층에 전달하고 수행결과를 받아 다양한 클라이언트 측 응용 프로그램의 요구에 맞게끔 결과를 전달하는 역할을 한다.
    • 어플리케이션 층

      • 비즈니스 로직을 포함하고 있는 엔터프라이즈 자바 빈즈(EJB) 컴포넌트들의 집합으로 데이터베이스나 EPR 등이 포함된 기업 정보 시스템(EIS)에 직접 접근하고 그 결과만을 프리젠테이션 층에 전달한다.
  • J2EE의 장점

    • OS 등 플랫폼에 영향을 받지 않는다
    • 표준 API을 이용하여 개발을 함으로써 서버 플랫폼 변경 시에도 포팅이 쉽다.
    • 복잡한 트랜잭션 처리, 비동기 처리, 동시사용자 처리 등에 대한 부담을 개발자로부터 덜어주고, 표준화된 분산 컴포넌트의 사용으로 확장성을 높인다.





'Programming > java' 카테고리의 다른 글

[java] WebUtils 및 FileUtils  (0) 2014.11.18
[java] 문서 파싱 및 추출(pdf, doc, docx, xls, xlsx, ppt, pptx)  (0) 2014.11.13
[java] 스레드(Thread)  (0) 2014.09.17
[java] 예외처리(Exception)  (0) 2014.09.17
[java] Generic  (0) 2014.09.17