Sun JavaTM Enterprise System(Java ES)은 네트워크 또는 인터넷 환경에 분산된 엔터프라이즈급 응용 프로그램들을 지원하는 데 필요한 서비스를 제공하는 소프트웨어 구성 요소 집합입니다. 이 설명서에서는 이러한 응용 프로그램을 분산형 엔터프라이즈 응용 프로그램이라고 합니다.
Java Enterprise System은 소프트웨어 릴리스이자 전달 방법이며 비즈니스 및 가격 설정 전략이기도 합니다. 그러나 이 설명서에서는 Java Enterprise System의 소프트웨어 구성 요소 및 해당 서비스 제공에 초점을 맞춥니다.
이 장에서는 Java Enterprise System 및 이 시스템 사용과 관련된 작업을 소개합니다. 이 장은 다음 내용으로 구성되어 있습니다.
오늘날의 비즈니스 요구 사항에서는 네트워크 또는 인터넷 환경에 분산되고 높은 수준의 성능, 가용성, 보안, 확장성 및 서비스 가능성을 보유한 소프트웨어 솔루션이 필요합니다.
Java Enterprise System은 일반적으로 다음과 같은 특성을 갖는 응용 프로그램, 즉 분산된 엔터프라이즈 응용 프로그램을 지원하는 데 필요한 인프라 서비스를 제공합니다.
분산. 이 응용 프로그램은 지리적으로 멀리 떨어진 지역이 포함되는 네트워크 환경을 통해 배포된 상호 작용 소프트웨어 구성 요소로 구성됩니다. 환경의 다양한 컴퓨터에서 실행되는 분산된 구성 요소는 함께 작용하여 최종 사용자와 다른 비즈니스 응용 프로그램에 특정 비즈니스 기능을 제공합니다.
엔터프라이즈급 기능. 이 응용 프로그램의 범위와 규모는 작업 환경 또는 인터넷 서비스 공급자의 요구를 충족시킵니다. 이 응용 프로그램은 일반적으로 기업 전체에 걸쳐 있으며 많은 부서, 작업 및 프로세스를 단일 소프트웨어 시스템으로 통합합니다. 이 응용 프로그램은 성능, 가용성, 보안, 확장성 및 서비스 가능성과 관련하여 높은 서비스 품질 요구 사항을 충족해야 합니다.
분산된 엔터프라이즈 응용 프로그램에는 해당 분산된 구성 요소가 상호 통신, 작업 조정, 보안 액세스 구현 등을 수행할 수 있도록 하는 기본 인프라 서비스 집합이 필요합니다. 그리고 다시 이 인프라 서비스는 컴퓨터 및 네트워크 링크로 구성되는 하드웨어 환경의 지원을 받습니다. 이러한 하드웨어 환경에는 SPARC® 및 x86(Intel 및 AMD) 하드웨어 구조가 포함됩니다.
전체 계층 스키마는 다음 그림에 나와 있습니다. 대개 Java Enterprise System은 그림 1–1에 표시된 분산된 인프라서비스 계층을 제공합니다. 그러나 Java Enterprise System 서비스에는 최종 사용자가 액세스할 수 있는 여러 응용 프로그램 수준의 서비스도 포함되어 있습니다.
Java Enterprise System에서 제공하는 기능 서비스는 다음과 같습니다.
포털 서비스. 이 서비스를 통해 직원, 컴퓨터 재택 근무자, 지식 노동자, 비즈니스 파트너, 공급업체 및 고객들은 기업 네트워크의 내부 및 외부 어디서나 기업 자원에 액세스할 수 있습니다. 이 서비스에서는 언제 어디서나 액세스할 수 있는 기능을 사용자 커뮤니티에 제공하는데, 여기에는 개인화된 통합, 집계, 보안, 모바일 액세스 및 검색 서비스가 포함됩니다.
통신 및 공동 작업 서비스. 이 서비스는 다양한 사용자 커뮤니티 간에 정보를 안전하게 교환할 수 있도록 지원합니다. 사용자의 비즈니스 환경 컨텍스트에서 인스턴트 메시징 및 회의와 같은 실시간 공동 작업 메시징과 달력 일정 등이 특수한 기능의 일부입니다.
네트워크 아이디 및 보안 서비스. 이 서비스는 모든 커뮤니티, 응용 프로그램 및 서비스에서 적절한 액세스 제어 정책이 전역적으로 시행되게 함으로써 주요 회사 정보 자산에 대한 보안과 보호 기능을 개선합니다. 이러한 서비스는 아이디 프로필, 액세스 권한, 응용 프로그램 정보 및 네트워크 자원 정보를 저장하고 관리하기 위한 저장소에서 사용됩니다.
웹 컨테이너 및 응용 프로그램 서비스. 이 서비스를 통해 분산된 구성 요소들은 런타임에 서로 통신하고 광범위한 서버, 클라이언트 및 장치를 위한 응용 프로그램의 개발, 배포 및 관리를 지원할 수 있습니다. 이 서비스의 기반은 Java 2 Platform, Enterprise Edition(J2EETM) 기술입니다.
Java Enterprise System은 가용성, 확장성, 서비스 가능성 및 기타 응용 프로그램 또는 시스템 품질을 향상시키는 서비스를 제공합니다. Java Enterprise System에서 제공하는 서비스 품질 기능 가운데 일부는 다음과 같습니다.
가용성 서비스. 이 서비스에서는 응용 프로그램 구성 요소 및 해당 구성 요소를 지원하는 인프라 구성 요소에 대해 연속성 있는 가용성을 제공합니다.
액세스 서비스. 이 서비스에서는 Java Enterprise System 서비스에 인터넷 또는 브라우저 기반 액세스를 제공합니다.
관리 서비스. 이 서비스는 Java Enterprise System에서 지원하는 응용 프로그램의 성능을 유지하고 조절하는 데 유용합니다.
하나 이상의 Java Enterprise System 서비스를 배포할 수 있으며, 해당 서비스마다 여러 Java Enterprise System 구성 요소가 포함될 수 있습니다.
Java Enterprise System은 별개의 소프트웨어 제품과 구성 요소를 하나의 소프트웨어 시스템으로 통합한 것입니다. 이 시스템의 구성 요소는 테스트를 통해 상호 운용성이 확인되었습니다. 이러한 통합은 다음과 같은 여러 시스템 수준 기능을 통해 가능합니다.
이 설명서의 후속 장에서 이 기능들을 설명합니다. 이 절에서는 Java Enterprise System으로 통합된 여러 가지 구성 요소들을 소개하는 데 초점을 맞추고 있습니다. 다음 그림에 표시된 것처럼 이러한 시스템 구성 요소는 세 개의 주요 범주로 분류할 수 있습니다.
시스템 서비스 구성 요소. 이 구성 요소들은 분산된 엔터프라이즈 응용 프로그램을 지원하는 주요 Java Enterprise System 인프라 서비스를 제공합니다.
서비스 품질 구성 요소. 이 구성 요소들은 시스템 서비스 구성 요소 및 분산된 응용 프로그램 구성 요소의 가용성, 보안, 확장성, 서비스 가능성 및 기타 구성 요소를 향상시킵니다.
공유 구성 요소. 이 구성 요소들은 많은 시스템 서비스 구성 요소 및 서비스 품질 구성 요소들이 실행되는 환경을 제공합니다.
여러 Java ES 구성 요소는 분산된 소프트웨어 솔루션을 지원하는 주요 서비스를 제공합니다. 이 시스템 서비스에는 포털 서비스, 통신 및 공동 작업 서비스, 아이디 및 보안 서비스, 웹 컨테이너 서비스, J2EE 응용 프로그램 서비스 등이 포함됩니다.
다음 표에서는 이러한 분산 서비스를 제공하는 시스템 서비스 구성 요소 및 제공되는 해당 서비스에 대해 간략하게 설명합니다. 각 시스템 서비스 구성 요소는 많은 클라이언트를 지원할 수 있는 다중 스레드 서버 프로세스입니다. 구성 요소에 대한 자세한 내용은 시스템 서비스 구성 요소 설명을 참조하십시오.
표 1–1 Java ES 시스템 서비스 구성 요소
표 1–1에 표시된 시스템 서비스 구성 요소 외에도 Java Enterprise System에는 시스템 서비스 구성 요소에서 제공하는 시스템 품질을 향상시키기 위해 사용한 여러 구성 요소가 포함됩니다. 서비스 품질 구성 요소로는 사용자 정의 개발 응용 프로그램 서비스도 향상시킬 수 있습니다. 서비스 품질 구성 요소는 다음 범주로 분류됩니다.
가용성 구성 요소
액세스 구성 요소
관리 구성 요소
가용성 구성 요소는 시스템 서비스 구성 요소 및 사용자 정의 응용 프로그램 서비스에 대한 연속성 있는 가동 시간을 제공합니다. 다음 표에서는 Java Enterprise System에 포함된 가용성 구성 요소 및 가용성 구성 요소에서 제공하는 서비스를 보여줍니다. 구성 요소에 대한 자세한 내용은 가용성 구성 요소 설명을 참조하십시오.
표 1–2 Java ES 가용성 구성 요소
구성 요소 |
제공된 가용성 서비스 |
---|---|
Java Enterprise System용 고가용성 및 확장성 서비스, Java Enterprise System 인프라 위에서 실행되는 응용 프로그램 및 이 둘이 배포되는 하드웨어 환경을 제공합니다. |
|
장애 발생시에도 응용 프로그램 데이터 특히 세션 상태 데이터를 사용 가능하도록 하는 데이터 저장소를 제공합니다. |
액세스 구성 요소는 시스템 서비스에 대한 프런트엔드 액세스를 제공하며 종종 엔터프라이즈 방화벽 외부의 인터넷 위치에서 안전한 액세스를 제공합니다. 이러한 액세스 이외에 대부분 라우팅 기능도 제공합니다. 다음 표에서는 Java Enterprise System에 포함된 액세스 구성 요소 및 해당 구성 요소에서 제공하는 서비스를 보여줍니다. 구성 요소에 대한 자세한 내용은 액세스 구성 요소 설명을 참조하십시오.
표 1–3 Java ES 액세스 구성 요소
구성 요소 |
제공된 액세스 서비스 |
---|---|
회사 방화벽 외부에서 Directory Server에 대한 보안 서비스를 제공합니다. Directory Proxy Server는 디렉토리 액세스 제어와 여러 Directory Server 인스턴스의 경로 지정을 제공합니다. |
|
Sun Java System Web Proxy Server |
보내고 받는 인터넷 요청 모두에 대해 웹 컨텐트의 캐싱, 필터링, 배포를 제공합니다. |
Sun Java System Communications Express |
구성에 따라 Messaging Server, Calendar Server 및 Directory Server에 대한 웹 기반 액세스를 제공합니다. |
내부 포털을 포함한 Portal Server 컨텐트와 서비스에 대해 회사 방화벽 외부에서의 보안 인터넷 액세스를 제공합니다. |
|
|
|
Messaging Server 및 Calendar Server 모두에 인터페이스 기능이 있는 Microsoft Outlook을 사용하는 데스크탑 클라이언트를 제공합니다. |
관리 구성 요소는 시스템 서비스에 대하여 구성 및 모니터링 같은 관리 기능을 제공합니다. 다음 표에서는 Java Enterprise System에 포함된 관리 구성 요소와 이 구성 요소에서 제공하는 서비스를 보여줍니다. 구성 요소에 대한 자세한 내용은 관리 구성 요소 설명을 참조하십시오.
표 1–4 Java ES 관리 구성 요소
구성 요소 |
제공된 관리 서비스 |
---|---|
Directory Server 및 Messaging Server를 구성 및 관리할 수 있게 해주는 그래픽 관리 도구를 제공합니다. |
|
Messaging Server 및 Calendar Server에 대한 사용자를 지정하는 데 필요한 스키마로 Directory Server를 구성하기 위한 스크립트를 제공합니다. |
|
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 ES 소프트웨어를 기반으로 비즈니스 솔루션을 만드는 일에 관련된 작업은 그림 1–3과 같이 몇 가지로 나눌 수 있습니다. 여기서는 여러 가지 작업을 수행하는 Java Enterprise System 사용자의 범주도 보여줍니다.
그림 1–3에 표시된 라이프 사이클 단계는 다음과 같은 일반적인 그룹으로 분류할 수 있습니다.
배포 전. 이 단계에서 비즈니스 요구 사항이 배포 시나리오 즉, 논리 구조 및 서비스 품질 요구 사항 집합으로 변환됩니다. 배포 시나리오는 배포 구조 설계를 위한 사양으로 사용됩니다.
배포. 이 단계에서 배포 시나리오는 배포 구조로 변환됩니다. 이 구조는 프로젝트 승인 및 예산 편성을 위한 기초로 사용할 수 있습니다. 이 배포 구조는 소프트웨어를 작업 환경에 배포(빌드 테스트 및 롤아웃)하는 데 필요한 세부 정보를 제공하는 구현 사양의 기초이기도 합니다.
배포 후. 운영 단계에서 배포된 솔루션은 프로덕션 조건에서 실행되고 모니터링되어 성능에 최적화됩니다. 배포된 솔루션도 필요한 새 기능을 포함하도록 업그레이드됩니다.
그림 1–3에 표시된 솔루션 라이프 사이클 및 각 단계의 작업에 대해서는 4 장, Java Enterprise System 솔루션 라이프 사이클 작업에서 자세히 설명합니다.
그림 1–3에서는 라이프 사이클 단계에 대한 작업을 일반적으로 수행하는 Java ES 사용자를 나타냅니다. Java ES 작업을 할 경우 작업은 그림 1–3에 표시된 사용자 범주 중 하나 이상에 적합해야 합니다. 다음 표에서는 각 사용자 범주의 기술 및 배경 지식을 설명합니다.
표 1–5 라이프 사이클 작업용 Java ES 사용자 범주
사용자 |
기술 및 배경 지식 |
단계 |
---|---|---|
시스템 분석가 |
심도 있는 기술 지식이 아닌 일반적인 지식 습득 기업의 전략적 방향 이해 비즈니스 프로세스, 목적 및 요구 사항 파악 |
비즈니스 분석 기술 요구 사항 논리 설계 |
높은 기술적 지식 습득 배포 구조에 대한 폭넓은 지식 습득 최신 기술 숙지 비즈니스 요구 사항 및 제약 조건 이해 |
논리 설계 배포 설계 |
|
현장 엔지니어 시스템 관리자 시스템 관리자 |
높은 기술적 지식 습득 정보 기술 환경 숙지 분산된 소프트웨어 솔루션 구현 경험 네트워크 구조, 프로토콜, 장치 및 보안 이해 스크립트 및 프로그래밍 언어 이해 |
배포 설계 배포 구현 |
위임된 관리자 지원 엔지니어 |
전문 기술 또는 제품 지식 보유 하드웨어, 플랫폼, 디렉토리 및 데이터베이스 숙지 소프트웨어 모니터링, 문제 해결 및 업그레이드 기능 숙달 운영 체제 플랫폼에 대한 시스템 관리 이해 |
작업 |
Java ES 도입에 이르게 되는 비즈니스 요구 사항은 다양합니다. 그러나 거의 모든 Java ES 배포에 대한 높은 수준의 목표는 다음 도입 시나리오 가운데 하나에 해당합니다.
새 시스템. 기존 소프트웨어 시스템 없이 시작하는 경우, 새로운 비즈니스 솔루션 지원을 위해 Java Enterprise System 소프트웨어를 배포합니다.
기능 향상. 기존의 정보 기술(IT) 인프라로 시작할 경우 해당 시스템의 한 부분, 많은 부분 또는 모든 부분을 Java ES 소프트웨어로 대체합니다. 대개는 시스템이나 하위 시스템이 너무 복잡하거나 너무 제한적이거나 또는 유지 관리 비용이 너무 비싸서 교체합니다. 예를 들어 더 나은 보안, 고가용성, 확장성 및 융통성, 더 적은 복잡도, 추가 기능(예: 단일 사인 온) 또는 IT 자원의 효율적인 사용이 필요할 수 있습니다. 즉 기존 시스템에서 제공하는 것보다 더 나은 투자 수익을 원할 수 있습니다.
기능 확장. 기존 IT 인프라로 시작하는 경우, 현재 해당 시스템의 일부가 아닌 Java Enterprise System 소프트웨어를 배포합니다. 새로운 비즈니스 요구 사항을 충족시킬 필요가 있기 때문에 일반적으로 소프트웨어 시스템을 이런 방식으로 확장합니다. Java ES 포털을 통한 기존 서비스의 개인화된 집계 또는 기존 서비스에 대한 Java 인증 및 권한 부여와 같은 새로운 기능이 필요할 수 있습니다.
업그레이드. Java Enterprise System의 이전 버전 또는 Java Enterprise System 보다 전에 출시된 Sun 제품으로 구성된 IT 인프라로 시작하는 경우Java Enterprise System 구성 요소의 최신 버전으로 업그레이드합니다.
모든 도입 시나리오에는 각각의 고려 사항과 위험이 있습니다. 사용자 상황의 특성을 묘사하는 도입 시나리오에 상관없이 그림 1–3에 표시된 솔루션 라이프 사이클 프로세스가 적용됩니다. 그러나 도입 시나리오에 따라 라이프 사이클 단계에서 투자해야 할 자원과 처리해야 할 문제가 다를 수 있습니다.
다음과 같은 고려 사항이 도입 시나리오에 다양하게 적용됩니다.
마이그레이션. 기존 인프라를 새로운 소프트웨어로 기능 향상 또는 업그레이드하려면 종종 데이터를 기존 시스템에서 새로운 시스템으로 마이그레이션해야 합니다. 구성 정보, 사용자 정보 또는 응용 프로그램 정보 등이 이러한 데이터에 해당할 수 있습니다. 새로운 프로그래밍 인터페이스로 인해 비즈니스 또는 프리젠테이션 논리를 마이그레이션해야할 수도 있습니다.
통합. 기존 시스템에 새로운 소프트웨어를 추가하거나 또는 소프트웨어 하위 시스템을 교체하려면 새로운 소프트웨어 구성 요소를 나머지 하위 시스템에 통합해야 합니다. 새로운 인터페이스 계층 개발, J2EE 커넥터 또는 자원 어댑터 사용, 기존 구성 요소 재구성 및 데이터 변환 스키마 구현 등이 통합에 포함될 수 있습니다.
교육. 거의 모든 인프라 변경은 IT 절차 및 기술 세트의 변경을 의미합니다. Java Enterprise System 기술을 지원하려면 IT 부서에 새로운 기술을 확보하거나 또는 이전 기술을 이전하기 위한 적절한 시간이 필요합니다.
하드웨어. 기존 시스템이나 하위 시스템을 교체하거나 기능을 향상시킬 경우 비즈니스 제약 조건으로 인해 기존 하드웨어를 재사용해야 할 수도 있습니다. 도입 시나리오에 따라 하드웨어 자원이 중요한 요소가 될 수도 있습니다.
다음 표에서는 모든 Java ES 도입 시나리오에 적용되는 고려 사항의 기본적인 특성을 요약합니다.
표 1–6 Java ES 도입 시나리오 고려 사항
이 절에서는 이 장에서 사용된 주요 기술 용어를 설명하며, 용어 간의 관계와 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 인프라 서비스를 제공합니다.