1장
배포 계획 소개
이 백서에서는 Sun Java™ Enterprise System을 기반으로 한 대형 배포를 소개합니다. 배포 계획의 기본적인 개념과 원칙을 제공하고 엔터프라이즈 차원의 배포를 설계할 때 기준으로 삼을 수 있는 여러 프로세스를 소개합니다.
Java Enterprise System을 평가하거나 Java Enterprise System을 기반으로 대형 응용 프로그램을 작성 및 배포할 계획을 할 경우 이 백서를 기준으로 배포 계획을 세우십시오.
이 장에서는 Java Enterprise System의 간단한 개요를 제공하고 나중 장에서 설명하는 배포 계획에 대한 개념을 소개합니다. 이 장의 내용은 다음과 같습니다.
Java Enterprise System 정보
Java Enterprise System은 네트워크나 인터넷 환경을 통해 배포된 엔터프라이즈급 응용 프로그램을 지원하는 서비스를 제공하는 소프트웨어 인프라입니다. 다음 표에서는 Java Enterprise System의 구성 요소와 구성 요소에서 제공하는 인프라 서비스를 나열합니다.
표 1-1
Java Enterprise System 구성 요소
|
시스템 구성 요소
|
제공 서비스
|
|
Application Server
|
Session Bean, Entity Bean 및 Message-Driven Bean 같은 Enterprise JavaBeans™ (EJB) 구성 요소용 Java 2 Platform, Enterprise Edition (J2EE™ 플랫폼) 컨테이너 서비스를 제공합니다. 컨테이너는 밀접하게 연결된 분산 구성 요소 간 상호 작용에 필요한 인프라 서비스를 제공하여 전자 상거래 응용 프로그램과 웹 서비스의 개발 및 실행을 위한 플랫폼이 됩니다. Application Server에서도 웹 컨테이너 서비스를 제공합니다.
|
|
Calendar Server
|
최종 사용자와 최종 사용자 그룹에게 달력 및 일정 서비스를 제공합니다. Calendar Server는 서버와 상호 작용하는 브라우저 기반 클라이언트를 포함합니다.
|
|
Directory Proxy Server
|
회사 외부의 방화벽에서 Directory Server용 보안 서비스를 제공합니다. Directory Proxy Server는 여러 Directory Server 인스턴스에 대해 향상된 디렉토리 액세스 제어, 스키마 호환성, 라우팅 및 로드 균형 조정을 제공합니다.
|
|
Directory Server
|
아이디 프로필(직원, 고객, 공급자 등), 사용자 자격 증명(공개 키 인증서, 비밀번호, PIN 번호), 액세스 권한, 응용 프로그램 자원 정보 및 네트워크 자원 정보 등과 같은 인트라넷 및 인터넷 정보를 저장 및 관리하기 위한 중앙 저장소를 제공합니다.
|
|
Identity Server
|
액세스 관리 및 디지털 아이디 관리 서비스를 제공합니다. 액세스 관리 서비스는 응용 프로그램 또는 서비스에 대한 액세스를 위한 인증(단일 사인 온 포함) 및 역할 기반 권한 부여를 포함하고 관리 서비스는 개별 사용자 프로필, 역할, 그룹 및 정책의 중앙 집중화된 관리를 포함합니다.
|
|
Instant Messaging
|
인스턴트 메시징(채팅), 회의, 경고, 뉴스, 폴링 및 파일 전송 등의 최종 사용자 간에 실시간 보안 통신을 제공합니다. 서비스에는 현재 온라인 상태인 사용자를 알려 주는 존재 관리자 그리고 서버와 상호 작용하는 브라우저 기반 클라이언트가 포함되어 있습니다.
|
|
Message Queue
|
느슨하게 연결된 분산된 구성 요소와 응용 프로그램 간에 신뢰할 수 있는 비동기 메시징을 제공합니다. Message Queue는 Java Message Service (JMS) API 사양을 구현하고 보안, 확장성 및 원격 관리 같은 엔터프라이즈 기능을 추가합니다.
|
|
Messaging Server
|
전자 메일, 팩스, 호출기, 음성 및 비디오를 지원하는 안전하고 신뢰할 수 있는 대용량의 저장 후 전달(store-and-forward) 메시징을 제공합니다. 여러 메일 저장소를 동시에 액세스하고 임의의 전자 메일을 거부하고 바이러스 공격을 방지하는 데 도움을 주는 내용 필터링을 제공합니다.
|
|
Portal Server
|
비즈니스 응용 프로그램이나 서비스를 액세스하는 브라우저 기반 클라이언트에 내용 집계 및 개인화 같은 주요 포털 서비스를 제공합니다. Portal Server에서는 구성 가능한 검색 엔진도 제공합니다.
|
|
Secure Remote Access
|
회사 외부의 방화벽에서 내부 포털 및 인터넷 응용 프로그램을 포함한 Portal Server 컨텐트와 서비스에 대해 보안 인터넷 액세스를 제공합니다.
|
|
Web Server
|
Java Servlet 및 JavaServer Pages™ (JSP™) 구성 요소 같은 Java 웹 구성 요소용 J2EE 플랫폼 웹 컨테이너 서비스를 제공합니다. Web Server에서는 CGI 스크립트 및 Active Server Pages 같은 정적 및 동적 웹 컨텐트를 제공하기 위한 다른 웹 응용 프로그램 기술도 지원합니다.
|
|
Sun Cluster
|
Java Enterprise System용 고가용성 및 확장성 서비스, Java Enterprise System 인프라 위에서 실행되는 응용 프로그램 및 이 둘이 배포되는 하드웨어 환경을 제공합니다.
|
Java Enterprise System 서비스 제품군
Java Enterprise System 배포는 일반적으로 Java Enterprise System에서 제공하는 서비스로 주로 구성되는 범주와 상당수의 사용자 정의 개발 서비스 및 타사 응용 프로그램을 통합하는 범주의 두 가지 일반 범주에 해당합니다. 전자의 배포 유형은 80:20 배포(80%의 Java Enterprise System 제공 서비스)로, 후자는 20:80 배포로 간주할 수 있습니다.
|
|
주
|
실제 엔터프라이즈 배포는 필요로 하는 사용자 정의 개발 서비스의 양에 따라 매우 다양할 수 있습니다.
Java Enterprise System은 서비스 세트가 풍부하기 때문에 80:20 배포에 특히 적합합니다. 예를 들어, 엔터프라이즈 전체의 통신 시스템이나 엔터프라이즈 전체의 포털 시스템을 배포하는 것이 비교적 쉽습니다.
그러나 사용자 정의 개발이 필요한 배포의 경우 Java Enterprise System은 사용자 개발 서비스와 응용 프로그램을 작성 및 통합할 수 있는 기능을 제공합니다.
|
|
다음 표에서는 Java Enterprise System 구성 요소를 엔터프라이즈 배포를 제공할 수 있는 제품군으로 그룹화합니다. 일부 구성 요소는 둘 이상의 제품군에 속합니다.
표 1-2
Java Enterprise System 서비스 제품군
|
제품군
|
Java Enterprise System 구성 요소
|
|
네트워크 Identity 서비스
|
Identity Server Directory Server Web Server
|
|
엔터프라이즈 포털 서비스
|
Portal Server Secure Remote Access Identity Server Directory Server Application Server 또는 Web Server
|
|
엔터프라이즈 통신 및 공동 작업 서비스
|
Messaging Server Calendar Server Instant Messaging Identity Server Directory Server Application Server 또는 Web Server
|
|
웹 및 응용 프로그램 서비스
|
Application Server Message Queue Web Server
|
|
가용성 서비스
|
Sun Cluster 3.1 4/04 Sun Cluster Agents
|
위 표 1-2의 제품군은 대부분 80:20 배포 유형을 제공할 수 있습니다. 예를 들어, 엔터프라이즈 통신 및 공동 작업 서비스는 최종 사용자에게 전자 메일, 달력 및 인스턴트 메시징 서비스를 제공하여 컨텐트를 집계 및 개인화할 수 있도록 하는 배포를 작성하는 데 사용할 수 있습니다. 마찬가지로 네트워크 Identity 및 엔터프라이즈 포털 제품군을 사용하면 사용자 정의 서비스를 개발하거나 통합하지 않고도 엔터프라이즈 차원의 응용 프로그램을 설치 및 구성할 수 있습니다.
가용성 서비스 제품군은 엔터프라이즈 응용 프로그램의 대형 배포에 대해 고가용성을 제공합니다. 엔터프라이즈 응용 프로그램이 응용 프로그램 서버나 웹 서버에서 실행되는 J2EE 플랫폼 서비스의 사용자 정의 개발을 필요로 하는 경우 웹 및 응용 프로그램 서비스 제품군을 사용합니다.
Java Enterprise System 서비스 간에 상호 운용성이 있기 때문에 사용자의 특정 엔터프라이즈 요구 사항에 맞게 고유한 서비스 제품군을 작성할 수 있습니다.
Java Enterprise System의 이점
엔터프라이즈 배포 성공의 핵심 요소는 다음 세 가지입니다.
다음 표에 표시된 대로 Java Enterprise System은 이러한 각 성공 요소를 해결하기 위한 도구를 제공합니다.
표 1-3
Java Enterprise System 이점
|
이점
|
설명
|
|
간편한 사용
|
Java Enterprise System에서는 쉽게 설치, 구성 및 업그레이드할 수 있게 해주는 공통된 설치 프로그램을 제공합니다.
Java Enterprise System에서는 독립적으로 개발된 단일 제품과 미들웨어의 통합으로부터 별다른 사용자 정의 없이 배포 및 구성할 수 있는 통합된 플랫폼 서비스 시스템으로 전환할 수 있습니다.
|
|
예측 가능
|
Java Enterprise System 릴리스 주기는 Java Enterprise System 구성 요소 간의 호환성을 고려해 결정됩니다. 새 릴리스로 업그레이드할 때 구성 요소 간의 비호환성과 잘못 맞춤을 방지할 수 있습니다.
Java Enterprise System 구성 요소에서는 서비스 간의 상호 운용을 용이하게 하는 공유 플랫폼 구성 요소 집합을 사용합니다.
Java Enterprise System의 예약된 릴리스 제공 모델은 배포 계획을 예측 가능하게 해줍니다.
|
|
저렴함
|
상용 라이센스에 대한 Java Enterprise System 단일 단위 가격 모델은 배포 설치 및 업그레이드의 복잡함과 비용을 줄입니다. 단일 단위 가격에는 지원, 유지 보수 및 컨설팅 서비스가 포함됩니다.
OEM 및 교육 라이센스용의 다른 가격 모델도 사용할 수 있습니다.
|
배포 계획 정보
성공적인 배포 계획은 다음 그림에서 설명하는 일련의 단계를 통한 세밀한 준비, 분석 및 설계로 만들 수 있습니다.
그림 1-1
배포 계획 단계
그림 1-1에서 설명하는 각 단계에는 후속 단계로 전달되는 사양 및 설계를 만드는 자체의 분석 및 절차 집합이 포함되어 있습니다. 이 장의 다음 절에서는 각 배포 계획 단계에 대한 요약 설명을 제공합니다.
비즈니스 분석 단계
비즈니스 분석 단계 중에는 배포 프로젝트의 비즈니스 목표를 정의하고 해당 목표를 달성하려면 충족시켜야 하는 비즈니스 요구 사항을 기술합니다. 비즈니스 요구 사항을 기술할 때 비즈니스 목표를 달성할 수 있는 기능에 영향을 줄 수 있는 비즈니스 제약 조건을 고려합니다. 비즈니스 분석 단계에서 비즈니스 요구 사항 문서가 만들어지며 이 문서는 나중에 기술 요구 사항 단계에서 사용되고 배포 설계의 성공 여부를 측정하는 기준으로 사용됩니다.
비즈니스 분석 단계에 대한 자세한 내용은 2장, "비즈니스 분석"을 참조하십시오.
기술 요구 사항 단계
기술 요구 사항 단계는 비즈니스 분석 단계 중에 작성한 비즈니스 요구 사항으로 시작되며, 이 요구 사항을 배포 구조를 설계하는 데 사용할 수 있는 기술 사양으로 변환합니다. 기술 요구 사항 단계 동안 다음 정보를 준비합니다.
- 사용자 작업 및 사용 패턴 분석
- 사용자와 계획된 배포의 상호 작용을 모델링하는 사용 사례
- 사용자 작업 및 사용 패턴 분석을 고려하여 비즈니스 요구 사항에서 추출한 시스템 요구 사항
사용 분석, 사용 사례 및 시스템 요구 사항 문서의 결과 집합이 논리적 설계 단계로 입력됩니다.
기술 요구 사항 분석 중에 배포된 시스템이 시스템 요구 사항을 충족시키지 못하는 문제를 해결하기 제공해야 하는 고객 지원의 계약 조건인 서비스 수준 요구 사항도 지정할 수 있습니다. 서비스 수준 요구 사항은 프로젝트 승인 시 서명하는 서비스 수준 계약의 기준입니다.
기술 요구 사항 단계에 대한 자세한 내용은 3장, "기술 요구 사항"을 참조하십시오.
논리적 설계 단계
배포 설계는 논리적 설계 단계에서 시작됩니다. 이 단계에서는 기술 요구 사항 단계 중에 식별한 사용 사례를 충족시키는 Java Enterprise System 서비스와 종속성을 나타내는 논리적 구조를 설계합니다.
논리적 구조는 시스템 요구 사항 문서와 함께 배포 시나리오를 결정합니다. 논리적 구조에서는 배포 시나리오를 구현하는 데 필요한 실제 하드웨어를 지정하지 않습니다.
논리적 설계 단계에 대한 자세한 내용은 4장, "논리 구조 설계"를 참조하십시오.
배포 설계 단계
배포 설계 단계에서는 배포 시나리오를 물리적 환경에 매핑하는 것을 나타내는 배포 구조를 작성합니다. 물리적 환경은 배포에 대한 네트워크 인프라이며 컴퓨팅 노드, 각 노드에 대한 하드웨어 요구 사항, 방화벽 및 기타 네트워크 장치 등을 포함합니다.
매핑 프로세스는 시스템 요구 사항을 이행하는 데 필요한 실제 하드웨어를 지정하기 위한 배포의 크기 조정과 예산 고려 사항에 맞게 배포 구조를 최적화하기 위한 전략 결정으로 구성됩니다.
일반적으로 배포 프로젝트 승인은 배포 구조 작성 다음에 이루어집니다. 프로젝트 승인 동안에는 배포 비용을 평가하고 승인된 경우 배포 구현을 위한 계약에 서명하고 프로젝트를 구성하는 자원을 구입합니다.
자세한 설계 사양도 배포 설계 단계의 일부입니다. 설계 사양에서는 실제 하드웨어, 운영 체제, 네트워크 설계 및 물리적 환경의 기타 요소와 같은 배포 구조를 구현하는 데 필요한 세부 사항을 제공합니다. 또한 자세한 설계 사양에서는 시스템 서비스에 액세스할 사용자를 지정하는 데 필요한 디렉토리 서비스 데이터 구조도 지정합니다. 배포 프로젝트의 프로세스 및 정책에 따라 설계 사양은 프로젝트 승인 전이나 후에 수행됩니다.
배포 설계 단계에 대한 자세한 내용은 5장, "배포 구조 설계"를 참조하십시오.
구현 단계
구현 단계에서는 배포 구조를 작성합니다. 배포 프로젝트의 특성에 따라 이 단계에는 다음 단계 중 일부 또는 전부가 포함됩니다.
- 테스트 환경에서 파일럿 및 프로토타입 배포 작성 및 배포
- 시스템 요구 사항 호환성을 측정하기 위한 기능 테스트 설계 및 실행
- 최고 부하 시 성능을 측정하기 위한 스트레스 테스트 설계 및 실행
- 단계적으로 생산에 들어갈 수 있는 생산 배포 작성
배포가 생산에 들어가면 비즈니스 목표를 이행할 수 있도록 배포를 계속 모니터, 테스트 및 조정해야 합니다.
구현 단계에 대한 자세한 내용은 6장, "배포 설계 구현"을 참조하십시오.