소개
본 장에서는 JEUS에 대한 기본적인 이해와 Jakarta EE 스펙에 대해서 설명하고, JEUS 시스템의 개념 및 구성 요소와 에디션별 기능에 대해 기술한다.
1. 개요
JEUS(Java Enterprise User Solution)는 웹 환경에서 애플리케이션을 개발, 운용, 실행할 수 있는 플랫폼 역할을 하면서, 포괄적인 Java 기반의 웹 애플리케이션 서비스와 관리를 제공한다. JEUS는 Jakarta EE 애플리케이션을 구동할 때 필요한 플랫폼과 다음의 같은 구성 요소를 제공한다.
-
EJB 컨테이너
-
웹 컨테이너(JSP/서블릿 엔진)
-
보안 모듈(Security Module)
-
Naming Server
-
트랜잭션 매니저
-
JDBC Connection Pool
-
세션 매니저
Jakarta EE
JEUS는 Eclipse Foundation의 Jakarta EE 스펙을 준수하며, Jakarta EE 8 인증을 획득했다.
다음은 Jakarta EE 공식 홈페이지에 있는 문구로, Jakarta EE에 대해 간략하게 소개를 하고 있다.
"Jakarta EE is a set of specifications that enables the world wide community of java developers to work on cloud native java enterprise applications. The specifications are developed by well known industry leaders that instills confidence in technology developers and consumers."
Jakarta EE에 대한 보다 자세한 정보를 알아보기 위해서는 공식 홈페이지(https://jakarta.ee)를 참고한다. |
다음은 JEUS 21에서 지원하는 기술에 대한 목록이다.
Spec | JEUS 21 |
---|---|
Jakarta EE |
Jakarta EE 8 |
JakartaTM Enterprise Beans |
3.2 |
JakartaTM Annotations |
1.3 |
JakartaTM Servlet |
4.0 |
JakartaTM WebSocket |
1.1 |
JakartaTM Server Faces |
2.3 |
JakartaTM Server Pages |
2.3 |
JakartaTM Standard Tag Library |
1.2 |
JakartaTM Expression Language |
3.0 |
JakartaTM Debugging Support for Other Languages |
1.0 |
JakartaTM Messaging |
2.0 |
JakartaTM Transaction |
1.3 |
JakartaTM Mail |
1.6 |
JakartaTM Connectors |
1.7 |
JakartaTM Enterprise Web Services |
1.4 |
JakartaTM XML RPC |
1.1 |
JakartaTM XML Registries |
1.0 |
JakartaTM RESTful Web Services |
2.1 |
JakartaTM JSON Processing |
1.1 |
JakartaTM JSON Binding |
1.0 |
JakartaTM Management |
1.1 |
JakartaTM Deployment |
1.7 |
JakartaTM Authorization |
1.5 |
JakartaTM Authentication |
1.1 |
JakartaTM Security |
1.0 |
JakartaTM Persistence |
2.2 |
JakartaTM Bean Validation |
2.0 |
JakartaTM Managed Beans |
1.0 |
JakartaTM Interceptors |
1.2 |
JakartaTM Contexts and Dependency Injection |
2.0 |
JakartaTM Dependency Injection |
1.0 |
JakartaTM Concurrency |
1.1 |
JakartaTM Batch |
1.0 |
JakartaTM Web Services Metadata |
2.1 |
JakartaTM XML Web Services |
2.3 |
WebServer |
WebtoB 5.0 |
HTTP |
1.0/1.1/2.0 |
CGI |
1.1 |
PHP |
3.x/4.x/5.x |
RMI-IIOP |
지원 |
JAF |
1.1 |
EJB to CORBA Mapping |
1.1 |
JTS |
1.0 |
JNDI |
1.2.1 |
XSLT |
1.0 |
JDBC |
4.2 |
IBM MQ |
지원 |
Sonic MQ |
지원 |
JAAS |
1.0.1 |
JAXP |
(JDK 8에 포함되어 제공) |
StAX |
(JDK 8에 포함되어 제공) |
JAXB |
2.2 |
SAAJ |
1.3 |
Implementing Enterprise Web Services |
1.3 |
UDDI |
2.0/3.0 |
SOAP |
1.1/1.2 |
WSDL |
1.1/2.0 |
WS-I Basic Profile |
1.1 |
WS-Policy |
1.5 |
WS-Policy Attachment |
1.5 |
WS-Addressing |
1.0 |
WS-Security |
1.1 |
WS-Security Policy |
1.2 |
WS-Trust |
1.4 |
WS-Secure Conversation |
1.4 |
WS-Reliable Messaging |
1.2 |
WS-AtomicTransaction |
1.2 |
WS-Coordination |
1.2 |
OTS |
지원 |
Java IDL API |
지원 |
IDE Tool |
미지원 |
GUI Tool |
미지원 |
Web Tool |
WebAdmin |
Monitoring Tool |
Console Tool, WebAdmin |
JDK |
8 (인증) |
|
2. 시스템 개념과 역할
다음은 엔터프라이즈 애플리케이션 솔루션을 제공하기 위해서 JEUS가 다른 웹 서버나 DBMS 등과 어떻게 통합되는지 보여준다.
위 그림에서 나타난 4가지 Layer는 다음과 같다.
-
Client Layer
웹 서버나 Java 애플리케이션 또는 Native 애플리케이션으로 구성된다. 최종 사용자는 WAS의 서비스를 사용하기 위해서 다양한 클라이언트를 사용하며, 이 클라이언트는 다양한 프로토콜 중에 하나를 사용해서 WAS의 서비스에 접근한다.
-
Web/Internet Layer
클라이언트와 WAS 사이에서 작동하는 웹 서버나 프로토콜로 정의된다. 이 Layer에서는 정적인 콘텐츠와 부하 분산을 처리한다.
-
JEUS/WAS Layer
Java 기반의 미들웨어로 구성되며, Web Layer나 Client Layer로부터 오는 요청을 받아서 처리한다.
-
EIS Layer
비즈니스 데이터나 기존의 Legacy 서비스를 나타낸다. WAS는 JDBC나 디렉터리 서비스, Jakarta Connector 등의 다양한 메커니즘을 통해서 Legacy 서비스와 상호 작용한다.
3. 구성 요소와 아키텍처
JEUS는 많은 서로 다른 모듈들로 구성되어 있다. 이러한 모듈들은 다음의 JEUS 웹 애플리케이션 아키텍처 다이어그램에서 클라이언트 애플리케이션과 데이터 저장장치, JEUS 사이의 통신 기술에 따라서 사용된다.
Client Layer는 다양한 형태의 클라이언트 애플리케이션과 통신 프로토콜을 보여주고 있다. Source Layer는 다양한 형태의 back-end 데이터 저장장치들이 나열되어 있다. TmaxSoft의 JEUS 제품은 WebtoB와 더불어 그림의 중간 부분인 WAS Middleware Layer를 구성한다. 웹 서버는 클라이언트 애플리케이션과 연결되어 있으며, 웹 서버는 웹 애플리케이션 서버와 밀접하게 통합되어 있다. 또한 웹 게이트웨이(WebT)는 WAS와 TP-Monitor(Tmax Server)를 연계시키며, 마지막으로 MainFrame 게이트웨이(Host-Link)는 MainFrame과 TP-Monitor 사이의 연결을 제공한다.
다음 절에서는 그림에서 보이는 3가지 Layer(Client Layer, WAS Middleware Layer, Source Layer)의 구성 요소에 대해 알아본다.
3.1. Client Layer
Client Layer(클라이언트 계층)는 JEUS를 사용할 수 있는 원격 혹은 지역 애플리케이션을 나타낸다.
다음은 Client Layer를 구성하는 유형에 대한 설명이다.
Client Layer | 설명 |
---|---|
Web browser |
가장 일반적인 클라이언트 애플리케이션은 HTML 콘텐츠를 얻기 위해 JEUS 서블릿 엔진과 WebtoB Light 웹 서버에 요청을 하는 표준 웹 브라우저이다. 통신 프로토콜은 HTTP이다. |
Web Services |
웹 서비스의 구현을 제공한다. |
Applet |
JEUS 자신의 구성 요소를 참조할 수 있는 애플릿 컨테이너를 제공한다. |
Java Application |
일반적인 독립된 Java 애플리케이션들은 JEUS에 의해 제공되는 클라이언트 컨테이너 내에서 RMI를 사용하여 실행된다. 이러한 클라이언트들을 Jakarta EE 스펙에서는 애플리케이션 클라이언트라고 한다. |
COM/DCOM |
Microsoft Windows 환경에서 EJB를 COM 형태로 호출할 수 있다. |
CORBA |
CORBA 기술을 사용한 애플리케이션도 RMI/IIOP를 통해 JEUS를 사용할 수 있다. |
NMS |
네트워크 관리 시스템은 JMX를 통해 JEUS를 관리하고 사용할 수 있다. |
JNLP |
JNLP(Java Network Lanuching Protocol) 클라이언트들은 JEUS 21에서 지원된다. |
3.2. WAS Middleware Layer
JEUS 웹 애플리케이션 아키텍처 다이어그램에서 JEUS WAS Layer는 Jakarta EE 8 스펙을 인증받은 JEUS 21 제품을 나타내며 구성 요소는 다음과 같다.
-
JEUS Master Server
도메인 내에는 Master Server라는 특별한 하나의 서버가 항상 존재한다. Master Server는 도메인 내 서버들 간의 설정과 도메인 내의 모든 애플리케이션 및 리소스를 중앙에서 관리하고, 서버들을 제어 및 모니터링하는 관리 툴(WebAdmin, jeusadmin)과 통신한다.
서비스 설명 Domain Configuration
도메인 전체의 설정을 관리한다.
Application Management
도메인 전체의 애플리케이션을 관리한다.
Administration
WebAdmin과 jeusadmin을 통해 도메인 내의 모든 서버, 서비스, 애플리케이션 및 리소스를 한 번에 모니터링 및 제어할 수 있다.
-
JEUS Managed Server(MS)
Managed Server(이하 MS)는 JEUS 시스템에서 구성될 수 있는 다양한 형태의 엔진과 서비스에 대한 기반을 제공하고 있다.
엔진 / 서비스 설명 EJB Engine
EJB 비즈니스 애플리케이션을 구동한다.
Servlet Engine
웹 컨테이너로 정적인 콘텐츠(HTML)뿐만 아니라 JSP/Servlet 애플리케이션을 구동한다.
JMS Engine
JMS 기반 구조를 제공한다.
Web Services Engine
JEUS 웹 서버의 인스턴스로서 서블릿 엔진의 front-end로 구동된다.
JNDI Service
Naming 시스템이다.
Security Service
인증과 권한 서비스이다.
JTA
웹 애플리케이션 서버에서 구동되는 다양한 애플리케이션들에 대한 완전한 트랜잭션을 제공한다.
Scheduler
미리 정해진 시간에 이벤트를 발생시키는 타이머 기능을 제공한다.
Session Manager
클러스터링이 필요한 경우 신뢰성있는 방식으로 클라이언트의 세션 정보를 저장한다.
JDBC
데이터베이스 Connection Pool이 설정될 수 있다.
Logging
JEUS 실행 중에 시스템에서 수행되었던 일련의 작업들에 대한 내용을 순서대로 보관 및 기록한다.
JMX
NMS/JMX 클라이언트가 JEUS 시스템을 관리할 수 있도록 한다.
JCA
JCA(JakartaTM Connector Architecture)는 JCA를 지원하는 EAI(Enterprise Application Integration) 솔루션들에게 JEUS의 JCA를 통한 Legacy EIS 연결을 지원한다.
-
Web Server (WebtoB, Apache)
웹 서버는 HTML과 같은 정적인 콘텐츠와 CGI와 같은 동적인 콘텐츠를 전송한다. 또한, 서블릿 엔진의 front-end로서 상호 작용한다. WebtoB는 TmaxSoft의 WebtoB 웹 서버로서 모든 기능을 지원하는 버전과 일부 축소된 기능만을 가진 JEUS 웹 서버의 2가지 버전이 있다.
JEUS 웹 서버는 JEUS에 포함되어 있으며, WebtoB에는 포함되어 있지 않다. 또한, 오픈 소스 웹 서버인 Apache를 JEUS에서 사용할 수 있다.
-
JEUS Administration Tools
JEUS는 다음과 같은 2가지의 주요한 관리 툴이 있다.
툴 설명 WebAdmin
웹 브라우저에서 사용하며 JEUS의 모듈 패키징, 설정 이외의 모든 구성 요소들을 관리할 수 있는 웹 툴이다.
콘솔 툴(jeusadmin)
그래픽 툴을 통해 사용될 수 있는 모든 기능은 명령행 기반의 콘솔 툴을 사용해서 수행될 수 있다. 이 툴은 그래픽 환경을 사용하지 않을 때 사용한다.
3.3. Source Layer
JEUS 웹 애플리케이션 아키텍처 다이어그램의 오른쪽의 Source Layer는 back-end의 리소스와 JEUS 시스템에 의해 사용될 수 있는 데이터 저장소를 나타내며, 종류는 다음과 같다.
Source Layer | 설명 |
---|---|
Database |
JEUS에서 JDBC를 통해서 접속할 수 있다. |
Directory Service |
LDAP와 같은 것들이 있으며, JNDI를 통해서 사용된다. |
Other Jakarta EE Server |
JEUS는 타 벤더의 Jakarta EE 서버와 상호 작용이 가능하다. |
Tmax Server |
TmaxSoft에서 개발한 TP-Monitor로, WebT API 라이브러리는 JEUS와 Tmax를 통합하는 데 사용된다. |
ORB |
IIOP(Internet Inter-ORB Protocol)를 통해 참조될 수 있다. |
Mainframe |
IBM MainFrame들은 특별히 Host-Link(Connector) 제품을 통해 사용된다. |
Legacy EIS |
JCA를 지원하는 Legacy EIS로 JEUS와 상호 작용이 가능하다. |
4. 상호 운용 모듈
상호 운용성이란 예상되는 결과를 얻기 위해 2개 또는 그 이상의 시스템(컴퓨터, 통신장치, 네트워크, 소프트웨어 혹은 다른 정보 기술 요소)에서 정의된 방법을 통한 데이터 교환이나 상호 작용을 의미한다(ISO ITC-215). JEUS는 서로 다른 프로토콜과 웹 서비스, JBuilder Bridge, JNLP, RMI-IIOP와 같은 기술들을 지원한다.
다음은 JEUS의 상호 운용을 위해 제공되는 모듈이다.
모듈 | 설명 |
---|---|
RMI-IIOP |
IIOP(Internet Inter-ORB Protocol) 프로토콜에서 수행되는 RMI 기술로서 JAVA 플랫폼에서 CORBA의 분산 컴퓨팅 작업을 가능하게 한다. |
JEUS |
다른 웹 애플리케이션의 사용을 가능하게 하며, 웹 서비스 또한 지원한다. |
WebT |
TP-Monitor와 JEUS를 연계하는 게이트웨이이다. |
Host-Link |
Legacy EIS에 있는 서비스를 클라이언트가 사용할 수 있도록 하는 어댑터 모듈이다. |
JCA |
JEUS와 JEUS 클라이언트가 가상적으로 어떠한 Legacy의 EIS에 대한 상호 작용도 가능하게 한다. |
5. Edition
다음은 JEUS 21의 Edition에 대한 설명이다.
Edition | 주요 특징 |
---|---|
JEUS Standard Edition |
|
JEUS Enterprise Edition |
|
|