개념: J2EE 전개 형상
주제
소개 
J2EE 플랫폼은 다양한 표준 전개 형상의 개발 및 전개를 지원합니다.
이것은 어플리케이션 개발에서 많은 추측을 하게 되는 표준 전개 형상입니다.
다음 섹션에 가장 일반적인 전개 형상 및 각각에 대한 장단점이 소개되어 있습니다.
J2EE 개념에 아직 익숙하지 않은 경우
계속하기 전에 개념: J2EE 개요에 설명된 내용을
참조하십시오.
독립형 전개 형상
첫 번째 전개 형상은 그림 1에 표시됩니다. 이 형상에는
웹 컨테이너 및 EIS 컨테이너가 없습니다. 클라이언트는 EIS 자원을
직접 액세스하며 프리젠테이션 논리, 비즈니스 논리 및 통합 논리 자체를 처리하는
책임이 있습니다.

그림 1: 독립형 전개
형상
얼핏 보면 이 형상은 EIS 자원에 보유된 데이터의 간단한 조작을
제공하는 어플리케이션에 대한 매력적인 제안처럼 보일 수 있습니다.
그러나 이 형상에는 몇 가지 잠재적인 약점이 있습니다.
EIS 자원을 변경하면 종종 데이터베이스 테이블 구조와 같은 각 EIS 자원의 내부 구조에
직접적으로 종속되는 어플리케이션 구현에 큰 영향을 미칠 수 있습니다. 어플리케이션 자체를
변경하려면 모든 사용자가 완전하게 롤아웃해야 합니다. 클라이언트가
최신 수정사항에 즉시 액세스하도록 어플리케이션을 전개하는 중앙 서버가 없습니다.
또한 이 전개 형상은 책임 분할을 조장하지 않습니다.
예를 들어, 프리젠테이션 논리 및 비즈니스 논리가 밀접하게 결합되어 어플리케이션 전개 및
유지보수를 지원하기 어려운 경우가 자주 있습니다.
그러나 이 전개 형상에 대한 실제적인 사안은 어플리케이션의 크기를 조정하도록
결정할 때 표면화되기 시작합니다. 클라이언트 워크스테이션이 성능 특성을 제한했으므로,
이상적으로는 많은 시스템에 걸쳐 처리를 분산시켜야 합니다. 그러나 독립형 형상은 분산 처리를
지원하도록 설계되지 않았습니다. 또한 더 많은 클라이언트가 동시에 EIS 자원을 액세스하도록
지원하려고 하면 동시 데이터베이스 연결 수와 같은 EIS 자원 자체에 의해 어플리케이션이
제한되었음을 알 수 있습니다.
EJB 중심 전개 형상
EJB 중심 전개 형상은 그림 2에 표시됩니다.
이 형상에서 EJB 컨테이너는 클라이언트 컨테이너 및 EIS 자원 사이에 있으며
웹 컨테이너는 없습니다. 프리젠테이션 논리는 EJB에 비즈니스 논리가 있는
클라이언트에 있습니다. 직접 EIS 자원을 액세스하기 보다는 클라이언트의 모든 요청을
해당 EJB에서 관리합니다. 그러므로 클라이언트는 EIS 자원의 변경사항으로부터 보호됩니다.

그림 2: EJB 중심 전개
형상
EJB 중심 전개 형상은 독립형 전개 형상에서 제공하는
여러 사안을 처리하도록 설계되었습니다. 확장성 Perspective에서 J2EE 플랫폼 구현은 여러 시스템으로 처리를 분산시킬 수 있습니다.
또한 EJB 컨테이너는 데이터베이스 연결과 같이 제한된 자원을 효율적으로 사용하도록 하는
책임을 맡습니다.
어플리케이션 전개 및 유지보수 Perspective에서 이 형상은 프리젠테이션 논리 및 비즈니스
논리의 분리를 조장합니다.
그러나 EJB 중심 전개 형상의 약점은 사용자 인터페이스를 조금만 변경해도
모든 사용자가 어플리케이션을 완전하게 롤아웃해야 한다는 것입니다.
EJB에서 캡슐화된 비즈니스 논리는 서버에서 다시 전개될 수 있지만(사용자에게
변경사항에 대한 즉각적인 액세스 제공), 프리젠테이션 논리는 그렇지 않습니다.
어플리케이션의 룩앤필은 빈번하게 변경될 수 있으므로 이것은 부적절한 것입니다.
웹 중심 전개
형상
웹 중심 전개 형상은 그림 3에 표시됩니다.
이 형상에서 웹 컨테이너는 클라이언트 컨테이너 및 EIS 자원 사이에 있으며
EJB 컨테이너는 없습니다. 프리젠테이션 논리 및
비즈니스 논리 모두가 웹 컨테이너의 요소로 처리됩니다(JSP 및 servlet).
그와 동시에 XML 또는 WML일 수 있지만 이 형상에서는 HTML과 같이 단순한 마크업 언어가 클라이언트에서 사용됩니다.

그림 3: 웹 중심 전개 형상
일반적으로 웹 중심 전개 형상은 결과 어플리케이션의 룩앤필 지원을 강조하고
비즈니스 논리 지원은 덜 강조하는 결과를 가져옵니다.
이러한 형상은 어플리케이션의 모양의
빈번한 변경을 지원하며 현재 널리 사용되고 있습니다.
웹 중심 전개 형상은 여러 가지 장점을 제공합니다.
우선, 클라이언트가 직접 EIS 자원에 액세스하지 않으므로 EIS 자원의 변경에 영향을 받지 않습니다.
두 번째, 어플리케이션은 전적으로 서버에 상주하므로 사용자에게 롤아웃을
요구하지 않고 전체 어플리케이션을 다시 전개할 수 있습니다.
그러나 EJB의 사용은 때때로 가까운 장래에 작업 과잉이 될 것으로
간주되지만, EJB의 누락은 독립형 전개 형상에서 발생하는 몇 가지 사안을 가져옵니다.
특히 이 형상이 프리젠테이션 논리 및 비즈니스 논리 간의 명백한 책임 분할을 조장하지
않지만, 종종 밀접하게 결합된 요소를 발생시켜 어플리케이션 전개 및 유지보수를 방해합니다.
또한 독립형 전개 형상에 나타나는 모든 확장성 사안이 웹 중심 구조에 적용됩니다.
다중 층 전개 형상
다중 층 전개 형상은 그림 4에 표시됩니다.
이 형상은 웹 컨테이너 및 EJB 컨테이너 둘 다를 포함하며, 약점이 없는 기타 전개 형상에 대해
설명된 모든 장점을 나타냅니다. 프리젠테이션 논리는 웹 컨테이너의 요소로 처리되며
비즈니스 논리는 EJB 컨테이너의 EJB로 처리됩니다.

그림 4: 다중 층 전개 형상
EIS 자원이 직접 액세스되지 않으므로 클라이언트는 EIS 자원의 변경사항에
영향을 받지 않습니다. 또한 어플리케이션은 전적으로 서버에 상주하므로 사용자에게 롤아웃을
요구하지 않고 전체 어플리케이션을 다시 전개할 수 있습니다.
확장성 Perspective에서 동시 처리를 지원하도록 처리를 분산시킬 수
있습니다. 또한 확장성 Perspective에서 EJB 컨테이너는 데이터베이스 연결과 같이 제한된 자원을 효율적으로
사용하도록 하는 책임을 맡습니다.
어플리케이션 전개 및 유지보수 Perspective에서 이 형상은 확실한 책임
분리를 조장합니다. 프리젠테이션 논리는 EIS 자원에서 분리되며 비즈니스 논리는
룩앤필에서 분리됩니다. 이 확실한 분리는 숙련 정도가 다른 개발자에게 작업을 할당하는 데
도움을 줄 수 있으며 프리젠테이션 논리 및 비즈니스 논리를 동시에 개발할 수
있습니다.
또한 다중 층 전개 형상은 하나의 클라이언트 장치(예: 웹 브라우저)에서
다른 클라이언트 장치(예: PDA)로의 이주를 용이하게 할 수 있습니다. EJB에 캡슐화된
비즈니스 논리는 변경되지 않은 채로 남아 있으며 있는 그대로 사용될 수 있으므로
어플리케이션의 전체 재작성이 필요하지 않습니다.
요약하자면, 여러 가지 전개 형상이 있으며 각각에는
장단점이 있습니다. J2EE 플랫폼의 목표 중 하나는 조직에 적절하다고 간주되는
어떤 전개 형상이든 충분히 지원할 수 있도록 유연성을 가지고 동시에 엔터프라이즈 관련사항을
처리하는 것입니다.
|