Java Enterprise Edition, Java EE

Java SE가 PC에서 동작하는 표준 플랫폼이라면, 자바EE는 자바를 이용한 서버 측 개발(WAS, 웹 애플리케이션 서버)을 위한 플랫폼이다. 따라서 자바EE 스펙에 따라 구현한 제품은 WAS라 불리운다.

Java EE 플랫은 Enterprise 수준 응용 프로그램에 필요한 확장성, 액세스 가능성 및 관리 효율성을 제공하는 다중 계층 응용 프로그램 서비스를 구현하기 위한 아키텍처를 정의합니다.

3-tier 구조

Presentation tier : 브라우저에게 HTML/JS/CSS 등과 같은 형식으로 내용을 보내는 계층이다. React Angular 등과 같은 프레임워크를 활용할 수 있다. Application tier : 응용 프로그램 서버를 사용하고 응용 프로그램의 비즈니스 로직을 처리하는 계층. C#, Java, C++ 등으로 작성될 수 있다. Data tier : 데이터베이스에 액세스해서 읽거나 쓰는 것을 관리하는 계층.

3계층 구조로 가져가면서 얻을 수 있는 이점 5가지

  • 다른 영역에 영향을 주지 않으면서 현재 계층의 기술을 업데이트 할 수 있다.
  • 계층을 나눔으로서 전문 분야를 나누어 개발할 수 있게 되었다..
  • 스케일 아웃, 스케일 업이 가능하게 된다.
  • 기본 서버 또는 서비스의 안정성과 독립성을 높인다.
  • 코드 베이스의 유지 보수가 쉬워진다. 예로 비즈니스 로직이 변경되더라도 프레젠테이션 영역에 영향을 미치지 않는다.

Java EE Components

자바 EE 애플리케이션은 component들로 구성된다.

  • 클라이언트에서 동작될 Applet과 Application Client
  • 웹 컴포넌트인 Java Servlet, JavaServer Faces, JSP
  • 서버위에서 동작하는 비즈니스 컴포넌트인 Enterprise JavaBeans(EJB)

</img>

Java EE Clients(Client Tier)

자바 EE Client는 Web Client 혹은 Application Client가 될 수 있다.

Web Client : 웹 계층에서 실행되는 component에 의해 생성된 동적 웹 페이지과 서버로부터 받은 페이지를 랜더링할 웹 브라우저로 구성되어 있다.

Applets : 작은 애플리케이션으로 웹 브라우저에 인스톨된 JVM에 의해 실행.

Application Client : 클라이언트 시스템에서 실행되며 사용자가 markup language에 의해 제공 될 수 있는 것보다 풍부한 사용자 인터페이스를 요구하는 작업을 처리할 수 있도록 한다. 비즈니스 계층에서 실행중인 EJB에 직접 액세스한다. 만약 어플리케이션이 신뢰의 보증을 요구한다면 실행중인 웹 계층의 서블릿과 HTTP 연결을 통해서 커뮤니케이션을 확립한다.

Web Components(Web Tier)

Servlet : 동적으로 요청을 처리하고 응답하는 자바 class. JSP : Servlet으로 실행되는 텍스트 기반 문서(동적 웹 페이지) JavaServer Faces : Servlet 및 JSP 기술을 기반. web applications을 위한 유저 인터페이스 컴포넌트를 제공.

Business Components(Business Tier)

특정 비즈니스 도메인의 요구를 해결하거나 충족시키는 위한 로직dls 비즈니스 코드는 비즈니스 계층에서 실행되는 엔터프라이즈 빈에 의해 처리된다.

Java EE Container

</img>

Java EE Container

컴포넌트와 플랫폼에서 제공하는 low-level 기능(트랜젝션, 상태 관리, Multi Threading, 자원 풀링 등) 간의 인터페이스.

컨테이너의 기능은 플랫폼에 의해 정의되며 각 컴포넌트 유형에 따라 달라지나, 서버는 여러 컴포넌트 유형이 함께 작성하여 엔터프라이즈 응용 프로그램의 기능을 제공한다.

Web Container

Java EE 응용 프로그램 용 JSP 페이지 및 서블릿 컴포넌트의 실행을 관리. Java EE 서버에서 실행된다.

EJB Container

엔터프라이즈 빈의 실행을 관리. Java EE 서버에서 실행된다.