Sun Java Enterprise System 5 기술 개요

1장 Java Enterprise System 소개

Sun JavaTM Enterprise System(Java ES)은 네트워크 또는 인터넷 환경에 분산된 엔터프라이즈급 응용 프로그램들을 지원하는 데 필요한 서비스를 제공하는 소프트웨어 구성 요소 집합입니다. 이러한 응용 프로그램을 분산형 엔터프라이즈 응용 프로그램이라고 합니다. 이 설명서는 Java ES의 소프트웨어 구성 요소 및 제공되는 관련 서비스에 초점을 맞추고 있습니다.

이 장에서는 Java ES 및 이 시스템의 사용과 관련된 작업을 소개합니다. 이 장의 내용은 다음과 같습니다.

Java ES가 필요한 이유

오늘날의 비즈니스 요구 사항에는 네트워크 또는 인터넷 환경에 분산되고 높은 수준의 성능, 가용성, 보안, 확장성 및 서비스 가능성을 보유한 소프트웨어 솔루션이 필요합니다.

Java ES는 일반적으로 다음과 같은 특성을 가지고 있는 분산된 엔터프라이즈 응용 프로그램을 지원하는 데 필요한 인프라 서비스를 제공합니다.

분산된 엔터프라이즈 응용 프로그램에는 분산된 구성 요소가 상호 통신, 작업 조정, 보안 액세스 구현 등을 수행할 수 있도록 하는 기본 인프라 서비스가 필요합니다. 이러한 인프라 서비스는 컴퓨터와 네트워크 링크로 구성되는 하드웨어 환경의 지원을 받습니다. 이러한 하드웨어 환경에는 SPARC® 및 x86(Intel 및 AMD) 하드웨어 구조가 포함됩니다.

전체 계층 스키마는 다음 그림에 나와 있습니다. 대개 Java ES는 그림과 같은 분산된 인프라 서비스 계층을 제공합니다.

그림 1–1 분산된 엔터프라이즈 응용 프로그램에 필요한 지원

분산된 엔터프라이즈 응용 프로그램이 분산된 인프라 서비스 위에 놓이고 다시 이 서비스가 네트워크 하드웨어 환경 위에 놓인 것을 보여주는 다이어그램

Java ES에서 제공되는 서비스는 다음과 같습니다.

또한 Java ES는 가용성, 확장성, 서비스 가능성 및 기타 응용 프로그램 또는 시스템 품질을 향상시키는 서비스를 제공합니다. Java ES에서 제공되는 서비스 품질 기능 중 일부는 다음과 같습니다.

하나 이상의 Java ES 서비스를 배포할 수 있으며, 해당 서비스마다 여러 Java ES 구성 요소가 포함될 수 있습니다.

Java ES 구성 요소

Java ES는 별개의 소프트웨어 제품과 구성 요소를 하나의 소프트웨어 시스템으로 통합한 것입니다. 이러한 통합은 다음과 같은 시스템 수준의 여러 기능을 통해 가능합니다.

이 설명서의 후속 장에서 이 기능들을 설명합니다. 이 절에서는 Java ES로 통합된 구성 요소들을 소개하는 데 초점을 맞추고 있습니다. 이러한 시스템 구성 요소는 다음 그림과 같이 세 가지 주요 범주로 분류될 수 있습니다.

그림 1–2 Java ES 구성 요소의 범주

Java ES 구성 요소의 범주 및 상호 관계를 보여주는 다이어그램

서비스를 제공하는 구성 요소는 다음과 같습니다.

Java ES 구성 요소에 대한 목록은 부록 A, Java ES 구성 요소를 참조하십시오.

시스템 서비스 구성 요소

여러 Java ES 구성 요소는 분산된 소프트웨어 솔루션을 지원하는 주요 서비스를 제공합니다. 이 시스템 서비스에는 포털 서비스, 아이디 및 보안 서비스, 웹 컨테이너 서비스, J2EE 응용 프로그램 서비스, 지속성 서비스가 포함됩니다.

다음 표에서는 이러한 분산된 서비스를 제공하는 시스템 서비스 구성 요소 및 제공되는 해당 서비스가 알파벳 순으로 간략하게 설명됩니다. 각 시스템 서비스 구성 요소는 많은 클라이언트를 지원할 수 있는 다중 스레드 서버 프로세스입니다. 각 구성 요소에 대한 자세한 내용은 시스템 서비스 구성 요소를 참조하십시오.

표 1–1 Java ES 시스템 서비스 구성 요소

구성 요소 

제공되는 시스템 서비스 

Sun Java System Access Manager

액세스 관리 및 디지털 아이디 관리 서비스를 제공합니다. 액세스 관리 서비스는 응용 프로그램 및/또는 서비스에 대한 액세스를 위한 인증(단일 사인 온(SSO) 포함) 및 역할 기반 권한 부여를 포함하고관리 서비스는 개별 사용자 계정, 역할, 그룹 및 정책에 대한 중앙 집중화된 관리를 포함합니다.

Sun Java System Application Server

Session Bean, Entity Bean, 메시지 구동 Bean 같은 EJB(Enterprise JavaBeansTM) 구성 요소용 J2EE 컨테이너 서비스를 제공합니다. 컨테이너는 밀접하게 연결된 분산 구성 요소들이 상호 작용하는 데 필요한 인프라 서비스를 제공하여 Application Server가 전자 상거래 응용 프로그램 및 웹 서비스의 개발과 실행을 위한 플랫폼이 되도록 합니다. Application Server는 또한 웹 컨테이너 서비스를 제공합니다.

Sun Java System Directory Server

아이디 프로필 직원, 고객, 공급자 등 사용자 자격 증명(공개 키 인증서, 비밀번호, PIN 번호) 액세스 권한, 응용 프로그램 자원 정보 및 네트워크 자원 정보 등과 같은 인트라넷 및 인터넷 정보를 저장 및 관리하기 위한 중앙 저장소를 제공합니다. 

Java DB [Java ES 5는 제품 구성 요소로 Java DB가 최초로 포함된 릴리스입니다. Java DB는 처음에 Derby Database라는 이름의 공유 구성 요소로 릴리스되어 Java ES 2005Q4에 포함되었습니다.]

Java 응용 프로그램을 개발하기 위한 경량 수준의 데이터베이스를 제공합니다. Java DB는 Sun에서 지원하는 Apache Derby 오픈 소스 데이터베이스 기술을 완전히 배포한 데이터베이스입니다.

Sun Java System Message Queue

느슨하게 연결된 분산 구성 요소와 응용 프로그램 사이에 신뢰할 수 있는 비동기 메시징을 제공합니다. Message Queue는 JMS(JavaTM Message Service) API 사양을 구현하고 보안, 확장성, 원격 관리 등과 같은 엔터프라이즈 기능을 추가합니다.

Sun Java System Portal Server

비즈니스 응용 프로그램이나 서비스를 액세스하는 브라우저 기반 클라이언트에 내용 집계 및 개인화 같은 주요 포털 서비스를 제공합니다. Portal Server에서는 구성 가능한 검색 엔진도 제공합니다. 

Sun Java System Service Registry

웹 SOA(Service-Oriented Architeture) 응용 프로그램을 지원하는 레지스트리와 저장소를 제공합니다. Service Registry는 XML 스키마, 비즈니스 프로세스 규칙, 액세스 제어, 버전 제어 등과 같은 관련 정보와 아티팩트 관리 외에도 웹 서비스 등록 및 검색에 사용되는 업계 표준을 구현합니다. 

Sun Java System Web Server

Java 서블릿 및 JavaServer PagesTM(JSPTM) 구성 요소와 같은 Java 웹 구성 요소를 위한 J2EE 웹 컨테이너 서비스를 제공합니다. Web Server는 또한 CGI 스크립트 및 Sun Java System Active Server Pages와 같은 정적/동적 웹 컨텐트를 제공하기 위한 다른 웹 응용 프로그램 기술도 지원합니다.

서비스 품질 구성 요소

표 1–1에 표시된 시스템 서비스 구성 요소 외에도 Java ES에는 시스템 서비스 구성 요소에서 제공하는 서비스 품질을 향상시키기 위해 사용한 여러 구성 요소가 포함됩니다. 서비스 품질 구성 요소로는 사용자 정의 개발 응용 프로그램 서비스도 향상시킬 수 있습니다. 서비스 품질 구성 요소는 다음 범주로 분류됩니다.

가용성 구성 요소

가용성 구성 요소는 시스템 서비스 구성 요소 및 사용자 정의 응용 프로그램 서비스에 대한 연속성 있는 가동 시간을 제공합니다. 다음 표에서는 Java ES에 포함된 가용성 구성 요소 및 해당 구성 요소에서 제공하는 서비스를 보여줍니다. 각 구성 요소에 대한 자세한 내용은 가용성 구성 요소를 참조하십시오.

표 1–2 Java ES 가용성 구성 요소

구성 요소 

제공되는 가용성 서비스 

HADB(High Availability Session Store)

장애 발생시에도 응용 프로그램 데이터 특히 세션 상태 데이터를 사용 가능하도록 하는 데이터 저장소를 제공합니다. 

Sun Cluster

Java ES용 고가용성 서비스 및 확장성, Java ES 인프라 위에서 실행되는 응용 프로그램 및 이 두 서비스가 배포되는 하드웨어 환경을 제공합니다. 

Sun Cluster Geographic Edition [Java ES 5는 Java ES 제품 구성 요소로 Sun Cluster Geographic Edition이 최초로 포함된 릴리스입니다.]

지리적으로 분리된 여러 클러스터와 이러한 클러스터 간에 데이터를 복제하는 중복 인프라를 사용함으로써 발생되는 예기치 않은 문제로부터 응용 프로그램을 보호합니다. Sun Cluster Geographic Edition은 계층적으로 확장된 Sun Cluster 소프트웨어입니다. 

액세스 구성 요소

액세스 구성 요소는 시스템 서비스에 대한 프런트엔드 액세스를 제공하며 종종 엔터프라이즈 방화벽 외부의 인터넷 위치에서 안전한 액세스를 제공합니다. 이러한 액세스 이외에 대부분 라우팅 및 캐싱 기능을 제공합니다. 다음 표에서는 Java ES에 포함된 액세스 구성 요소 및 해당 구성 요소에서 제공하는 서비스를 보여줍니다. 각 구성 요소에 대한 자세한 내용은 액세스 구성 요소를 참조하십시오.

표 1–3 Java ES 액세스 구성 요소

구성 요소 

제공되는 액세스 서비스 

Sun Java System Portal Server(Secure Remote Access 포함)

내부 포털을 포함한 Portal Server 컨텐트와 서비스에 대해 회사 방화벽 외부에서의 보안 인터넷 액세스를 제공합니다.  

Sun Java System Web Proxy Server

보내고 받는 인터넷 요청 모두에 대해 웹 컨텐트의 캐싱, 필터링 및 배포를 제공합니다. 

모니터링 구성 요소

Java ES에는 실시간 시스템 상태와 사용자 정의 가능한 모니터링 작업을 제공하는 새로운 모니터링 기능이 포함되어 있습니다. 이러한 모니터링은 Sun Java System Monitoring Framework 공유 구성 요소로 지원되는 Sun Java System Monitoring Console 제품 구성 요소에서 구현됩니다. 자세한 내용은 모니터링 구성 요소를 참조하십시오.

공유 구성 요소

Java ES에는 많은 시스템 서비스 구성 요소 및 서비스 품질 구성 요소에서 사용하는 여러 로컬 설치 공유 라이브러리가 포함되어 있습니다. Java ES 공유 구성 요소는 동일한 호스트 컴퓨터에서 실행되는 Java ES 제품 구성 요소에 대한 로컬 서비스를 제공합니다.

상이한 운영 체제에서 이식성을 제공하기 위해 공유 구성 요소를 사용할 수도 있습니다. Java ES 공유 구성 요소의 예로Java 2 Platform, Standard Edition(J2SE), Netscape Portable Runtime(NSPR), Network Security Services(NSS), Java Security Services for Java(JSS) 등이 있습니다. 전체 목록은 공유 구성 요소를 참조하십시오.

공유 구성 요소는 설치된 시스템 서비스 및 서비스 품질 구성 요소에 맞게 Java ES 설치 프로그램에서 자동으로 설치합니다.

Sun Java 제품군 구성 요소

Java ES는 단일, 엔드 투 엔드 인프라 소프트웨어 배포와 핵심 비즈니스 요구 사항을 목표로 하는 개별 제품군 배포로 모두 사용할 수 있습니다. Java ES에는 Java ES 구성 요소가 모두 포함되지만 Sun Java System 제품군에는 특정 비즈니스 요구 사항을 충족시키기 위해 이러한 구성 요소 중에서 선택한 하위 집합이 포함됩니다. Java ES 설치 프로그램과 제거 프로그램은 모든 제품군 배포에 포함되지만 제품군의 구성 요소만 처리하도록 축소됩니다. 또한 모든 공유 구성 요소는 제품군 배포에 모두 포함됩니다.

다음 표에서는 각 제품군 목차 및 각 제품군으로 충족될 비즈니스 요구 사항을 보여줍니다.

표 1–4 Sun Java 제품군 구성 요소

제품군 

비즈니스 요구 사항 

목차 

Sun Java Application Platform Suite

차세대 SOA(Service-Oriented Architecture)에 대한 개발, 배포 및 관리 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Portal Server(Secure Remote Access 및 Mobile Access 포함) 

Service Registry 

Web Proxy Server 

Web Server 

Sun Java Availability Suite

핵심 업무 응용 프로그램을 위한 재난 복구 및 고가용성 

Sun Cluster 소프트웨어 

Sun Cluster Agents 

Sun Cluster Geographic Edition 

Sun Java Communications Suite [별표(*)가 있는 구성 요소는 더 이상 Java ES에 포함되지 않거나 Java ES 설치 프로그램으로 설치되지 않는 통신 구성 요소입니다. 이러한 구성 요소는 Sun Java Communications Suite의 일부로 제공됩니다.]

안전하고 신뢰성 있는 메시징 및 공동 작업 서비스 

Access Manager 

Application Server 

Calendar Server* 

Communications Express* 

Delegated Administrator* 

Directory Server 

HADB 

Instant Messaging* 

Java DB 

Message Queue 

Messaging Server* 

Monitoring Console 

Web Proxy Server 

Web Server 

Sun Java Identity Management Suite

컴퓨팅 인프라 및 응용 프로그램 환경 전체에 걸친 사용자 아이디 관리 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Web Server 

Sun Java Web Infrastructure Suite

중소기업을 위한 웹 응용 프로그램 및 서비스 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Service Registry 

Web Proxy Server 

Web Server 

Java ES 작업

Java ES 소프트웨어 기반 비즈니스 솔루션을 만들 때는 많은 표준 작업이 관련됩니다.이러한 작업의 범위 및 난이도는 Java ES를 도입한 시점과 만들고 배포할 솔루션의 특성에 따라 다릅니다.

이 절에서는 일반적으로 Java ES 작업과 관련된 두 가지 요소, 즉 Java ES 솔루션 라이프 사이클과 다양한 도입 시나리오에 대해 설명합니다.

Java ES 솔루션 라이프 사이클

Java ES 소프트웨어 기반 비즈니스 솔루션을 만드는 데 관련된 작업은 다음 그림과 같이 몇 가지 단계로 분류할 수 있습니다. 여기서는 일반적으로 작업을 수행하는 Java ES 사용자의 범주도 보여줍니다.

그림 1–3 솔루션 라이프 사이클 단계 및 사용자 범주

라이프 사이클 단계 및 각 단계와 연관된 작업을 수행하는 Java ES 사용자 범주를 표시하는 다이어그램

앞 그림에 표시된 라이프 사이클 단계는 다음과 같은 일반적인 그룹으로 분류할 수 있습니다.

그림 1–3에 표시된 각 라이프 사이클 단계에 대한 작업은 4 장, Java ES 솔루션 라이프 사이클에서 자세히 설명됩니다.

그림 1–3에서는 일반적으로 라이프 사이클 단계에 대한 작업을 수행하는 Java ES 사용자를 보여줍니다. 다음 표에서는 각 사용자 범주의 기술 및 배경 지식을 설명합니다.

표 1–5 라이프 사이클 작업에 대한 Java ES 사용자 범주

사용자 

기술 및 배경 지식 

단계 

비즈니스 계획자

시스템 분석가 

심도 있는 기술 지식이 아닌 일반적인 지식 습득 

기업의 전략적 방향 이해 

비즈니스 프로세스, 목적 및 요구 사항 파악 

비즈니스 분석 

기술 요구 사항 

논리적 설계 

설계자

높은 기술적 지식 습득 

배포 구조에 대한 폭넓은 지식 습득 

최신 기술 숙지 

비즈니스 요구 사항 및 제약 조건 이해 

기술 요구 사항 

논리적 설계 

배포 설계 

시스템 통합자

현장 엔지니어 

시스템 관리자 

시스템 관리자 

높은 기술적 지식 습득 

정보 기술 환경 숙지 

분산된 소프트웨어 솔루션 구현 경험 

네트워크 구조, 프로토콜, 장치 및 보안 이해 

스크립트 및 프로그래밍 언어 이해 

배포 설계 

배포 구현 

전문 시스템 관리자

위임된 관리자 

지원 엔지니어 

전문 기술 또는 제품 지식 보유 

하드웨어, 플랫폼, 디렉토리 및 데이터베이스 숙지 

소프트웨어 모니터링, 문제 해결 및 업그레이드 기능 숙달 

운영 체제 플랫폼에 대한 시스템 관리 이해 

작업 

Java ES 도입 시나리오

Java ES 도입에 이르는 비즈니스 요구 사항은 매우 다양합니다. 그러나 거의 모든 Java ES 배포에 대한 높은 수준의 목표는 다음 도입 시나리오 가운데 하나에 해당합니다.

모든 도입 시나리오에는 각각의 고려 사항과 과제가 있습니다. 그러나 도입 시나리오에 따라 그림 1–3의 라이프 사이클 단계에서 처리해야 할 문제와 투자해야 할 자원이 다를 수 있습니다.

도입 시나리오에 다양하게 적용되는 고려 사항은 다음과 같습니다.

다음 표에는 각각의 Java ES 도입 시나리오에 적용되는 고려 사항의 기본적인 특성이 요약되어 있습니다.

표 1–6 Java ES 도입 시나리오 고려 사항

도입 시나리오 

마이그레이션 

통합 

교육 

하드웨어 

새 시스템 

고려 사항이 아님 

새로운구성 요소 통합에 상대적으로 용이 

주요 고려 사항이 될 수 있음 

장비 비용과 노동 비용 간의 상쇄 [일반적으로 성능이 강한 몇 대의 컴퓨터를 사용하면 장비 비용은 증가하지만 필요한 IT 자원은 감소합니다. 일반적으로 성능이 약한 컴퓨터를 여러 대 사용하면 장비 비용은 감소하지만 필요한 IT 자원은 증가합니다.]

기능 향상 

주요 고려 사항이 될 수 있음 

새로운 구성 요소를 기존 시스템에 통합 필요 

주요 고려 사항이 될 수 있음 

기존 장비로 인해 중요한 제약 조건이 포함될 수 있음 

기능 확장 

일반적으로 고려 사항이 아님 

새로운 구성 요소를 기존 시스템에 통합할 필요성이 있음 

주요 고려 사항이 될 수도 있음 

대개의 경우 새로운 시스템과 동일하게 상쇄되는 새로운 하드웨어가 필요함 

업그레이드 

주요 고려 사항이 될 수 있음 

업그레이드된 구성 요소 통합에 상대적으로 용이 

상대적으로 사소한 고려 사항 

상대적으로 사소한 고려 사항 

이 장의 주요 용어

이 절에서는 이 장에서 사용된 주요 기술 용어에 대해 Java ES 환경에서 사용되는 방식에 중점을 두어 설명합니다.

도입 시나리오

실행하는 소프트웨어 시스템과 달성하려는 목표를 규정하는 Java ES 소프트웨어 배포에 대한 총체적 설명입니다. 새 시스템, 교체, 확장 및 업그레이드의 네 가지 기본 Java ES 도입 시나리오가 있습니다.

구성 요소

분산 응용 프로그램이 구성되는 소프트웨어 논리 단위입니다. 구성 요소는 Java ES에 포함된 시스템 구성 요소 중 하나이거나 사용자 정의 개발된 응용 프로그램 구성 요소 중 하나일 수 있습니다. 응용 프로그램 구성 요소는 대개 분산 구성 요소 모델(CORBA 또는 J2EETM 플랫폼 등)을 따르며 특정 컴퓨팅 기능을 수행합니다. 구성 요소는 단독 또는 공동으로 비즈니스 서비스를 제공하며 웹 서비스로 캡슐화될 수 있습니다.

분산된 엔터프라이즈 응용 프로그램

네트워크 환경 또는 인터넷 환경 전반에 적용되는 논리(분산 측면) 및 작업 환경이나 서비스 공급자의 요구 사항을 충족시키는 범위와 규모(엔터프라이즈 측면)를 갖춘 응용 프로그램입니다.

최종 사용자

인터넷 브라우저 또는 모바일 장치 GUI와 같은 그래픽 사용자 인터페이스를 통해 분산 응용 프로그램을 사용하는 사람입니다. 응용 프로그램에서 지원하는 동시 최종 사용자 수는 응용 프로그램의 배포 구조를 결정하는 중요한 요소입니다.

서비스

하나 이상의 클라이언트에 대해 수행되는 소프트웨어 기능입니다. 이 기능은 메모리 관리와 같이 매우 낮은 수준이거나 신용 검사 비즈니스 서비스와 같이 높은 수준의 기능일 수 있습니다. 높은 수준의 서비스는 개별 서비스의 집합으로 구성될 수 있습니다. 서비스는 로컬 클라이언트가 사용 가능한 로컬일 수도 있고 원격 클라이언트가 사용 가능한 분산일 수도 있습니다.

제품 구성 요소

주요 Java ES 인프라 서비스를 제공하는 Java ES 시스템 서비스 구성 요소 및 이러한 시스템 서비스를 향상시키는 Java ES 서비스 품질 구성 요소입니다. 제품 구성 요소는 Java ES 설치 프로그램에서 선택할 수 있습니다.

서비스 품질 구성 요소

Java ES에 포함된 여러 유형의 시스템 구성 요소 중 하나입니다. 이 구성 요소는 시스템 서비스 구성 요소 및 분산된 응용 프로그램 구성 요소의 가용성, 보안, 확장성, 서비스 가능성 및 기타 품질을 향상시킵니다.

공유 구성 요소

Java ES에 포함된 여러 유형의 시스템 구성 요소 중 하나입니다. 다른 시스템 구성 요소에 로컬 서비스를 제공하는 공유 구성 요소이며, 대개의 경우 라이브러리에 해당합니다.

시스템 구성 요소

Java ES에 포함된 소프트웨어 패키지 또는 패키지 집합이며, Java ES 설치 프로그램으로 설치됩니다. 여러 종류의 시스템 구성 요소가 있으며, 이러한 요소 중 하나로 Java ES 인프라 서비스를 제공하는 제품 구성 요소 및 다른 시스템 구성 요소에 로컬 서비스를 제공하는 공유 구성 요소가 있습니다.

시스템 서비스

Java ES에서 제공되는 고유 기능을 정의하는 하나 이상의 분산 서비스입니다. 시스템 서비스는 일반적으로 다양한 서비스 품질 구성 요소, 공유 구성 요소 또는 두 구성 요소 중 일부를 지원해야 합니다.

시스템 서비스 구성 요소

Java ES에 포함된 여러 유형의 시스템 구성 요소 중 하나입니다. 시스템 서비스 구성 요소는 포털 서비스, 아이디 및 보안 서비스, 웹 및 응용 프로그램 서비스 및 가용성 서비스와 같은 주요 Java ES인프라 서비스를 제공합니다.