Sun Java Enterprise System 2005Q4 기술 개요

1장 Java Enterprise System 소개

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

Java Enterprise System은 소프트웨어 릴리스이자 전달 방법이며 비즈니스 및 가격 설정 전략이기도 합니다. 그러나 이 설명서에서는 Java Enterprise System의 소프트웨어 구성 요소 및 해당 서비스 제공에 초점을 맞춥니다.

이 장에서는 Java Enterprise System 및 이 시스템 사용과 관련된 작업을 소개합니다. 이 장은 다음 내용으로 구성되어 있습니다.

Java Enterprise System이 필요한 이유

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

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

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

전체 계층 스키마는 다음 그림에 나와 있습니다. 대개 Java Enterprise System은 그림 1–1에 표시된 분산된 인프라서비스 계층을 제공합니다. 그러나 Java Enterprise System 서비스에는 최종 사용자가 액세스할 수 있는 여러 응용 프로그램 수준의 서비스도 포함되어 있습니다.

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

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

Java Enterprise System에서 제공하는 기능 서비스는 다음과 같습니다.

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

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

Java Enterprise System 구성 요소

Java Enterprise System은 별개의 소프트웨어 제품과 구성 요소를 하나의 소프트웨어 시스템으로 통합한 것입니다. 이 시스템의 구성 요소는 테스트를 통해 상호 운용성이 확인되었습니다. 이러한 통합은 다음과 같은 여러 시스템 수준 기능을 통해 가능합니다.

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

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

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

시스템 서비스 구성 요소

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

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

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

구성 요소 

제공된 시스템 서비스 

Sun Java System Access Manager

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

Sun Java System Application Server

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

Sun Java System Calendar Server

최종 사용자와 최종 사용자 그룹에게 달력 및 일정 서비스를 제공합니다. Calendar Server는 서버와 상호 작용하는 브라우저 기반 클라이언트를 포함합니다. 

Sun Java System Directory Server

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

Sun Java System Instant Messaging

최종 사용자 간에 인스턴트 메시징(채팅), 회의, 경고, 뉴스, 폴링, 파일 전송과 같은 실시간 보안 통신을 제공합니다. 서비스에는 현재 온라인 상태인 사용자를 알려 주는 존재 관리자 그리고 서버와 상호 작용하는 브라우저 기반 클라이언트가 포함되어 있습니다. 

Sun Java System Message Queue

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

Sun Java System Messaging Server

전자 메일, 팩스, 호출기, 음성 및 비디오를 지원하는 안전하고 신뢰할 수 있는 대용량의 저장 후 전달(store-and-forward) 메시징을 제공합니다. Messaging Server는 여러 메시지 저장소에 동시에 액세스할 수 있으며 임의의 전자 메일을 거부하고 바이러스 공격을 방지하는 데 도움을 주는 내용 필터링을 제공합니다. 

Sun Java System Portal Server

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

Sun Java System Web Server

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

Sun Java System Service Registry 

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

서비스 품질 구성 요소

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

가용성 구성 요소

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

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

구성 요소 

제공된 가용성 서비스 

Sun Cluster

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

HADB(High Availability Session Store)

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

액세스 구성 요소

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

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

구성 요소 

제공된 액세스 서비스 

Sun Java System Directory Proxy Server

회사 방화벽 외부에서 Directory Server에 대한 보안 서비스를 제공합니다. Directory Proxy Server는 디렉토리 액세스 제어와 여러 Directory Server 인스턴스의 경로 지정을 제공합니다.  

Sun Java System Web Proxy Server 

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

Sun Java System Communications Express 

구성에 따라 Messaging Server, Calendar Server 및 Directory Server에 대한 웹 기반 액세스를 제공합니다. 

Sun Java System Portal Server Secure Remote Access

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

 

Sun Java System Connector for Microsoft Outlook

Messaging Server 및 Calendar Server 모두에 인터페이스 기능이 있는 Microsoft Outlook을 사용하는 데스크탑 클라이언트를 제공합니다.  

관리 구성 요소

관리 구성 요소는 시스템 서비스에 대하여 구성 및 모니터링 같은 관리 기능을 제공합니다. 다음 표에서는 Java Enterprise System에 포함된 관리 구성 요소와 이 구성 요소에서 제공하는 서비스를 보여줍니다. 구성 요소에 대한 자세한 내용은 관리 구성 요소 설명을 참조하십시오.

표 1–4 Java ES 관리 구성 요소

구성 요소 

제공된 관리 서비스 

Sun Java System Administration Server(및 콘솔)

Directory Server 및 Messaging Server를 구성 및 관리할 수 있게 해주는 그래픽 관리 도구를 제공합니다.  

Sun Java System Directory 준비 도구

Messaging Server 및 Calendar Server에 대한 사용자를 지정하는 데 필요한 스키마로 Directory Server를 구성하기 위한 스크립트를 제공합니다. 

Sun Java System Delegated Administrator

Messaging Server 및 Calendar Server에 필요한 사용자 속성으로 Directory Server의 사용자 항목을 채우기 위한 명령줄 및 GUI 도구를 제공합니다. 

공유 구성 요소

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

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

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

Java Enterprise System 작업

Java Enterprise System 소프트웨어 기반 비즈니스 솔루션 생성에는 여러 표준 작업이 포함되어 있습니다.이러한 작업의 범위 및 난이도는 Java Enterprise System을 도입한 시점과 생성 및 배포하려는 솔루션의 특성에 따라 다릅니다.

이 절에서는 일반적으로 연관된 Java Enterprise System의 두 가지 면, 즉 Java Enterprise System 솔루션 라이프 사이클과 다양한 도입 시나리오에 대해 설명합니다.

Java Enterprise System 솔루션 라이프 사이클

Java ES 소프트웨어를 기반으로 비즈니스 솔루션을 만드는 일에 관련된 작업은 그림 1–3과 같이 몇 가지로 나눌 수 있습니다. 여기서는 여러 가지 작업을 수행하는 Java Enterprise System 사용자의 범주도 보여줍니다.

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

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

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

그림 1–3에 표시된 솔루션 라이프 사이클 및 각 단계의 작업에 대해서는 4 장, Java Enterprise System 솔루션 라이프 사이클 작업에서 자세히 설명합니다.

그림 1–3에서는 라이프 사이클 단계에 대한 작업을 일반적으로 수행하는 Java ES 사용자를 나타냅니다. Java ES 작업을 할 경우 작업은 그림 1–3에 표시된 사용자 범주 중 하나 이상에 적합해야 합니다. 다음 표에서는 각 사용자 범주의 기술 및 배경 지식을 설명합니다.

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

사용자 

기술 및 배경 지식 

단계 

비즈니스 계획자

시스템 분석가 

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

기업의 전략적 방향 이해 

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

비즈니스 분석 

기술 요구 사항 

논리 설계 

설계자

높은 기술적 지식 습득 

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

최신 기술 숙지 

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

논리 설계 

배포 설계 

시스템 통합자

현장 엔지니어 

시스템 관리자 

시스템 관리자 

높은 기술적 지식 습득 

정보 기술 환경 숙지 

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

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

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

배포 설계 

배포 구현 

전문 시스템 관리자

위임된 관리자 

지원 엔지니어 

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

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

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

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

작업 

Java Enterprise System 도입 시나리오

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

모든 도입 시나리오에는 각각의 고려 사항과 위험이 있습니다. 사용자 상황의 특성을 묘사하는 도입 시나리오에 상관없이 그림 1–3에 표시된 솔루션 라이프 사이클 프로세스가 적용됩니다. 그러나 도입 시나리오에 따라 라이프 사이클 단계에서 투자해야 할 자원과 처리해야 할 문제가 다를 수 있습니다.

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

다음 표에서는 모든 Java ES 도입 시나리오에 적용되는 고려 사항의 기본적인 특성을 요약합니다.

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

도입 시나리오 

마이그레이션 

통합 

교육 

하드웨어 

새로운 시스템 

고려 사항이 아님 

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

일반적인 중요한 고려 사항 

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

기능 향상 

주요 고려 사항이 될 수 있음 

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

주요 고려 사항이 될 수 있음 

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

기능 확장 

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

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

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

일반적으로 새로운 시스템과 동일하게 상쇄되는 새로운 하드웨어가 필요함 

업그레이드 

주요 고려 사항이 될 수 있음 

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

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

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

이 장의 주요 용어

이 절에서는 이 장에서 사용된 주요 기술 용어를 설명하며, 용어 간의 관계와 Java Enterprise System 컨텍스트 내의 사용법에 중점을 두면서 설명합니다.

도입 시나리오

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

구성 요소

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

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

논리가 네트워크 또는 인터넷 환경에 걸쳐 있고(분산측면) 범위와 규모가 작업 환경이나 서비스 공급자의 요구를 충족시키는(엔터프라이즈 측면) 응용 프로그램입니다.

최종 사용자

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

서비스

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

서비스 품질 구성 요소

Java Enterprise System에 포함된 여러 종류의 시스템 구성 요소 가운데 하나입니다. 시스템 서비스 구성 요소 및 분산된 응용 프로그램 구성 요소의 가용성, 보안, 확장성, 서비스 가증성 및 기타 품질을 향상시키는 구성 요소입니다.

공유 구성 요소

Java Enterprise System에 포함된 여러 종류의 시스템 구성 요소 가운데 하나입니다. 대개 라이브러리인 공유 구성 요소들은 다른 시스템 구성 요소에 로컬 서비스를 제공합니다. 반대로 시스템 서비스 구성 요소는 다른 시스템 구성 요소(또는 응용 프로그램 구성 요소)에 분산된 인프라 서비스를 제공합니다.

시스템 구성 요소

Java Enterprise System에 포함된 소프트웨어 패키지 또는 패키지 집합이며 Java Enterprise System 설치 프로그램에 의해 설치됩니다. 여러 종류의 시스템 구성 요소가 있는데, 분산된 인프라 서비스를 제공하는 시스템 서비스 구성 요소, 액세스 및 관리 서비스를 제공하여 시스템 서비스 구성 요소를 지원하는 서비스 품질 구성 요소 및 다른 시스템 구성 요소에 로컬 서비스를 제공하는 공유 구성 요소가 있습니다.

시스템 서비스

Java Enterprise System에서 제공하는 고유 기능을 정의하는 하나 이상의 분산 서비스입니다. 시스템 서비스는 일반적으로 여러 서비스 품질 구성 요소 및/또는 공유 구성 요소를 지원해야 합니다.

시스템 서비스 구성 요소

Java Enterprise System에 포함된 여러 종류의 시스템 구성 요소 가운데 하나입니다. 시스템 서비스 구성 요소는 포털 서비스, 통신 및 공동 작업 서비스, 아이디 및 보안 서비스, 웹 및 응용 프로그램 서비스 및 가용성 서비스와 같은 주요 Java Enterprise System 인프라 서비스를 제공합니다.