Sun Java Enterprise System 5 기술 개요

2장 Java ES 솔루션 구조

이 장에서는 Java ES 솔루션의 기반이 되는 구조적 개념을 간략하게 설명하며,분산된 엔터프라이즈 솔루션을 지원하기 위해 시스템 서비스 구성 요소와 서비스 품질 구성 요소가 어떻게 사용되는지 보여줍니다.

Java ES 솔루션 구조에는 두 가지 측면, 즉 논리적 구조배포 구조가 있습니다. 논리적 구조는 솔루션의 논리적 빌딩 블록 소프트웨어 구성 요소 사이의 상호 작용을 보여줍니다. 배포 구조는 물리적 컴퓨팅 환경에 대한 논리적 구조의 매핑을 보여줍니다. Java ES 구성 요소는 논리 구조 및 배포 구조에서 중요한 역할을 수행합니다.

이 장에서는 Java ES 솔루션 구조를 설계하기 위한 구조적 프레임워크를 설명한 다음 해당 프레임워크에 기반한 구조 예제를 제공합니다. 이 장의 내용은 다음과 같습니다.

Java ES 구조 프레임워크

Java ES 구성 요소는 분산된 소프트웨어 솔루션의 배포를 지원합니다. 비즈니스 요구 사항에서 요구하는 성능, 가용성, 보안, 확장성 및 서비스 가능성의 수준에서 필요한 기능을 얻으려면 해당 소프트웨어 솔루션을 적합하게 설계해야 합니다.

분산된 엔터프라이즈급 소프트웨어 솔루션 설계에는 여러 구조적 차원들이 포함됩니다. 이 차원은 해당 시스템 빌드를 위해 사용한 많은 소프트웨어 구성 요소의 상호 작용을 표시하는 상이한 관점을 나타냅니다. 특히 분산된 시스템 설계에는 다음과 같은 세 개의 구조적 차원이 포함됩니다.

다음 그림에서 솔루션 구조의 세 차원을 표시합니다.

그림 2–1 Java ES 솔루션 구조의 차원

논리적 계층, 인프라 서비스 수준 및 서비스 품질의 3차원 프레임워크를 보여주는 다이어그램.

이러한 세 차원은 소프트웨어 솔루션에 요구되는 서비스 기능 및 서비스 품질을 얻기 위해 필요한 소프트웨어 구성 요소 즉, 응용 프로그램 구성 요소 및 인프라 구성 요소 사이의 관계를 통합하는 단일 프레임워크를 표현합니다.

다음 절에서는 세 가지 차원을 각각 설명하고, 세 차원을 통합 프레임워크로 통합한 예를 제공합니다.

차원 1: 인프라 서비스 종속성

분산된 엔터프라이즈 응용 프로그램에서 상호 작용하는 소프트웨어 구성 요소에는 상호 통신, 작업 조정, 보안 액세스 구현 등이 분산된 구성 요소에서 수행될 수 있도록 하는 기본 인프라 서비스가 필요합니다. 이 절에서는 이러한 인프라 서비스를 제공할 때 여러 Java ES 구성 요소에서 수행되는 핵심 역할을 설명합니다.

인프라 서비스 수준

분산된 소프트웨어 시스템을 설계하는 경우 시스템이 사용자 정의 개발 구성 요소로 구성되는지 또는 즉시 실행 가능한 Java ES 구성 요소로 구성되는지의 여부와 상관없이 여러 인프라 서비스를 통합해야 합니다. 이 서비스는 여러 수준에서 작동합니다.

그림 2–2에서는 솔루션 구조의 인프라 서비스 종속성을 보여줍니다. 이 그림에서 보여주는 차원은 그림 1–1의 인프라 서비스 계층이 확장된 것입니다. 그림 2–2의 서비스 계층 및 해당 계층 간의 종속성은 논리적 솔루션 구조의 중요한 차원을 구성합니다. 이러한 인프라 서비스는 Java ES 시스템 서비스 구성 요소를 이해하기 위한 개념적 기초를 제공합니다( 시스템 서비스 구성 요소 참조).

일반적으로 다음 그림에서 보여주는 서비스는낮은 수준의 플랫폼 서비스, 높은 수준의 응용 프로그램 서비스 및 다른 두 그룹 간의 위치로 이름이 지정된 미들웨어 서비스 그룹의 세 가지 그룹으로 분류됩니다.

그림 2–2 차원 1: 인프라 서비스 수준

가장 낮은 수준의 운영 체제 플랫폼 서비스에서 가장 높은 수준의 통합 서비스에 이르기까지 분산된 서비스 인프라 수준을 보여주는 다이어그램.

서로 다른 인프라 서비스 수준을 설명하는 다음 설명에서는 해당되는 경우 Java 프로그래밍 언어 아티팩트를 참조하며 그림 2–2에서 보여주듯이 가장 낮은 수준에서 가장 높은 수준까지의 서비스를 나열합니다.

그림 2–2의 서비스 수준은 가장 낮은 수준의 운영 체제 서비스에서 가장 높은 수준의 응용 프로그램 및 통합 서비스에 이르기까지 인프라 서비스 상호 간의 종속성을 반영하고 있습니다. 각 서비스는 일반적으로 아래에 있는 서비스에 종속되고 위에 있는 서비스를 지원합니다. 그러나 그림 2–2에서는 인프라 서비스의 엄격한 계층화를 보여주지 않습니다. 높은 수준의 서비스는 중간 수준에 의존하지 않고 낮은 수준의 서비스와 바로 상호 작용할 수 있습니다. 예를 들어 일부 런타임 서비스는 사이에 있는 다른 서비스 수준 없이도 플랫폼 서비스에 바로 종속될 수 있습니다. 모니터링 또는 관리 서비스와 같은 다른 서비스 수준도 이 개념적인 그림에 포함될 수 있습니다.

Java ES 인프라 서비스 구성 요소

Java ES 구성 요소는 그림 2–2에서 보여주는 분산된 인프라 서비스 수준을 구현합니다. 다른 수준에 있는 시스템 서비스 구성 요소의 위치는 다음 그림에서 보여줍니다.

그림 2–3 Java ES 시스템 서비스 구성 요소

분산된 인프라 서비스의 여러 수준에 대해 Java ES 시스템 서비스 구성 요소의 위치를 보여주는 다이어그램.


주 –

그림에서 음영 표시된 상자는 Java ES에 포함되지 않는 구성 요소를 나타냅니다. 사용자 공동 작업 구성 요소는 Java ES의 일부가 아니며 종종 Java ES 구성 요소와 함께 배포되어 Java ES 구조에서 사용됩니다. 이러한 구성 요소는 Sun Java Communications Suite의 일부이며 이 설명서에서 설명하기 위해 참조될 뿐입니다. 또한 운영 체제 플랫폼은 공식적으로 Java ES의 일부가 아니지만 Java ES 구성 요소가 지원되는 운용 체제 플랫폼을 보여주기 위해 포함되었습니다.


Java ES 인프라 서비스 종속성

일반적으로 그림 2–3에서 각각의 Java ES 시스템 서비스 구성 요소는 인프라에서 하위의 구성 요소에 종속되는 동시에 상위의 구성 요소를 지원합니다. 이러한 종속성 및 지원 관계는 논리 구조 설계의 핵심 요소입니다.

다음 표에는 그림 2–3에서 보여주듯이 Java ES 시스템 서비스 구성 요소 간의 특정 관계가 최상위 수준에서 최하위 수준까지 나열되어 있습니다.

표 2–1 Java ES 시스템 서비스 구성 요소 사이의 관계

구성 요소 

종속 대상 

지원 대상 

Portal Server 

Application Server 또는 Web Server 

Access Manager 

Directory Server 

해당 채널을 사용하도록 구성한 경우: Calendar Server, Messaging Server 및 Instant Messaging [Calendar Server, Messaging Server 및 Instant Messaging 구성 요소는 Sun Java Communications Suite의 일부로 사용될 수 있습니다.]

없음 

Access Manager 

Application Server 또는 Web Server 

Directory Server 

Portal Server 

단일 사인 온을 위해 구성하는 경우: Calendar Server, Messaging Server 및 Instant Messaging 

Application Server 

Message Queue 

Directory Server(관리 대상 객체용) 

Portal Server 

Access Manager 

Message Queue 

Directory Server(관리 대상 객체용) 

Application Server 

Web Server 

Access Manager(액세스 제어용) 

Portal Server 

Access Manager 

Directory Server 

없음 

Portal Server 

Access Manager 

Calendar Server 

Messaging Server 

Instant Messaging 

Service Registry 

Java DB 

Applcation Server 기반 구성 요소 

Java DB 

없음 

Service Registry 

차원 2: 논리적 계층

분산된 엔터프라이즈 응용 프로그램의 상호 작용하는 소프트웨어 구성 요소는 여러 논리적 계층에 상주하는 것으로 표시될 수 있습니다. 이러한 계층은 소프트웨어 구성 요소가 제공하는 서비스의 특성에 따라 해당 구성 요소의 논리적 및 물리적 독립성을 나타냅니다.

다음 그림에서는 솔루션 구조의 논리적 계층 차원을 보여줍니다.

그림 2–4 차원 2: 분산된 엔터프라이즈 응용 프로그램의 논리적 계층

왼쪽에서 차례대로클라이언트 계층, 표현 계층, 비즈니스 서비스 계층 및 데이터 계층의 네 가지 논리적 계층을 보여주는 다이어그램.

대개 논리적 계층 구조는 그림 1–1의 분산된 엔터프라이즈 응용 프로그램 계층을 나타냅니다. 인프라 서비스 수준에서 설명한 Java ES 시스템 서비스 구성 요소는 그림 2–4에서 보여주는 모든 논리적 계층의 응용 프로그램 구성 요소를 지원합니다. 논리적 계층 개념은 대개 엔터프라이즈 응용 프로그램을 사용자 정의하는 데 적용되지만 Sun Java Communications Suite 구성 요소에서 제공하는 공동 작업 서비스와 일부 포털 서비스에도 적용됩니다.

논리적 계층 설명

이 절에서는 그림 2–4에서 보여주는 네 가지 논리적 계층을 간략하게 설명합니다. 여기서는 J2EE 플랫폼 구성 요소 모델을 사용하여 구현된 응용 프로그램 구성 요소를 참조합니다. 그러나 CORBA와 같은 다른 분산된 구성 요소 모델에서도 이 구조를 지원합니다.

논리적 및 물리적 독립성

그림 2–4에서 보여주는 구조적 차원은 구성 요소의 논리적 및 물리적 독립성을 강조하며 별도의 네 가지 계층으로 표시됩니다. 이러한 계층은 네트워크 환경에 있는 다양한 컴퓨터 전반에 적용되는 응용 프로그램 논리의 분할을 나타냅니다.

시스템 구성 요소에 적용되는 계층 구조

그림 2–3에서 보여주듯이 Java ES 인프라 서비스 구성 요소는 분산된 소프트웨어 솔루션에 대한 기본 인프라 지원을 제공합니다. 이러한 솔루션 중 일부에는 Sun Java Communications Suite 구성 요소와 일부 Java ES 구성 요소에서 제공하는 응용 프로그램 수준의 서비스가 포함됩니다. 이 솔루션에서는 논리 계층 설계 접근 방법을 사용합니다.

예를 들어 Messaging Server에서 제공하는 전자 메일 통신 서비스는 Messaging Server의 여러 논리적인 구성을 사용하여 구현됩니다. 이러한 특정 구성에서 각각의 특정 서비스 세트를 제공합니다. 메시징 솔루션을 설계하는 경우 구성 요소를 연결하는 선이 상호 작용을 나타내는 다음 그림에서 보여주듯이 이러한 특정 구성은 서로 다른 논리적 계층에 있는 별도의 구성 요소로 표현됩니다.


주 –

다음 그림은 완전한 논리적 구조를 나타내는 것이 아니며여러 Java ES 구성 요소를 생략하여 단순하게 나타낸 것입니다.


그림 2–5 Messaging Server: 계층 구조 예

네 가지 논리 계층으로 분산된 Messaging Server 구성 요소를 보여주는 다이어그램.


주 –

통신 구성 요소는 Java ES의 일부가 아니지만 종종 Java ES 구성 요소와 함께 배포되어 Java ES 구조에서 사용됩니다. 이러한 통신 구성 요소는 Sun Java Communications Suite의 일부이며 이 설명서에서 설명하기 위해 참조될 뿐입니다.


Messaging Server 기능을 논리적으로 상이한 계층으로 분할하면 Messaging Server가 물리적 환경의 서로 다른 컴퓨터에 배포되도록 논리적으로 구성할 수 있습니다. 물리적으로 분할하면 서비스 품질 요구 사항을 유연하게 충족시킬 수 있습니다 ( 차원 3: 서비스 품질 참조). 예를 들어 인스턴스마다 서로 다른 가용성 솔루션을 제공하며 Messaging Server 기능마다 서로 다른 보안 구현을 제공합니다.

차원 3: 서비스 품질

앞의 두 가지 구조적 차원(인프라 서비스 독립성 및 논리 계층)이 주 대상으로 삼는 것은 구조의 논리적 측면입니다. 즉 최종 사용자에게 서비스를 전달하기 위해 어떤 방법으로든 상호 작용하는 데 필요한 구성 요소입니다. 마찬가지로 배포되는 솔루션에서 중요한 차원은 솔루션에서 서비스 품질(QoS) 요구 사항을 충족시킬 수 있는 능력입니다.

솔루션 구조의 서비스 품질 차원은 Java ES 서비스 품질 구성 요소에서 수행하는 역할을 강조합니다.

서비스 품질

인터넷 및 전자 상거래 서비스가 비즈니스 운영에 매우 중요하게 되면서 이러한 서비스의 성능, 가용성, 보안, 확장성 및 서비스 가능성이 대규모 고성능 배포 구조의 핵심적인 서비스 품질 요구 사항이 되었습니다.

소프트웨어 솔루션을 성공적으로 설계하려면 관련된 서비스 품질 요구 사항을 결정하고 이러한 요구 사항을 충족시키는 구조를 설계해야 합니다. 중요한 서비스 품질이 서비스 품질 요구 사항을 지정하는 데 많이 사용됩니다. 다음 표에서는 이러한 서비스 품질을 요약합니다.

표 2–2 솔루션 구조에 영향을 주는 서비스 품질

시스템 서비스 품질 

설명 

성능

사용자 로드 조건에 따라 응답 시간 및 대기 시간을 측정한 값입니다. 

가용성

최종 사용자가 시스템의 자원과 서비스에 액세스할 수 있는 빈도(시스템 가동 시간)에 대한 측정입니다.

보안

시스템과 해당 사용자의 무결성을 설명하는 요소들의 복잡한 조합입니다. 보안에는 안전한 정보 전달뿐만 아니라 물리적인 시스템 보안, 네트워크 보안, 응용 프로그램 및 데이터 보안(사용자 인증 및 권한 부여) 등이 포함됩니다. 

확장성

시간에 따라 배포된 시스템에 용량을 추가할 수 있는 기능입니다. 확장성은 일반적으로 시스템에 자원을 추가하는 것을 포함하지만 배포 구조 변경을 요구해서는 안 됩니다. 

잠재 용량

추가 자원 없이 비정상적인 최고 로드 사용을 처리할 수 있는 시스템의 기능입니다. 

서비스 가능성

시스템 모니터링, 발생한 문제 복구, 하드웨어 및 소프트웨어 구성 요소 업그레이드 등을 포함하여 배포된 시스템의 유지 보수 용이성을 나타냅니다. 

서비스 품질 차원은 솔루션의 배포 구조에 강력한 영향을 미칩니다. 즉 물리적인 환경에 응용 프로그램 구성 요소와 인프라 구성 요소를 배포하는 방법에 영향을 미칩니다.

배포 구조에 영향을 미치는 서비스 품질은 서로 밀접하게 관계됩니다. 대개는 하나의 서비스 품질에 대한 요구 사항이 다른 서비스 품질의 설계에 영향을 미칩니다. 예를 들어 높은 수준의 보안은 성능에 영향을 미칠 수 있고 성능은 가용성에 영향을 미칠 수 있습니다. 중복을 통해 가용성 문제를 처리하기 위해 컴퓨터를 추가하면 유지 보수 비용(서비스 가능성)에 영향을 미칠 수 있습니다.

시스템 품질이 어떻게 연관되어 있고 다른 품질 간의 균형을 조절하는 방법을 이해하는 것이 비즈니스 요구 사항과 제약 조건을 모두 충족시키는 구조를 설계하는 비결입니다.

Java ES 서비스 품질 구성 요소

일부 Java ES 구성 요소는 주로 시스템 서비스 구성 요소 또는 분산된 응용 프로그램 구성 요소에서 제공하는 서비스 품질을 향상시키는 데 사용됩니다. 이러한 소프트웨어 구성 요소는 대개 로드 밸런서 및 방화벽과 같은 하드웨어 구성 요소와 함께 사용됩니다.

서비스 품질 구성 요소에서 소개된 Java ES 서비스 품질 구성 요소는 다음과 같습니다.

다음 표에는 영향을 가장 많이 받는 시스템 품질에 관한 구조적 관점에서 가장 중요한 Java ES 서비스 품질 구성 요소가 나열되어 있습니다.

표 2–3 서비스 품질 구성 요소 및 영향 받는 시스템 품질

구성 요소 

영향 받는 시스템 품질 

고가용성 세션 저장소 

가용성 

Monitoring Console 

서비스 가능성 

Portal Server Secure Remote Access

보안 

가용성 

Sun Cluster 

가용성 

확장성 

Sun Cluster Geographic Edition 

가용성 

확장성 

Web Proxy Server 

보안 

성능 

확장성 

Sun Cluster 소프트웨어

Sun Cluster 소프트웨어는확장성 Java ES 인프라에서 지원하는 응용 프로그램 및 Java ES 구성 요소에 대한 고가용성서비스를 제공합니다. 클러스터는 서비스, 시스템 자원 및 데이터에 대한 단일 클라이언트 보기를 집합적으로 제공하며 느슨하게 연결된 컴퓨터 집합입니다. 내부적으로 클러스터는 중복 컴퓨터, 상호 연결, 데이터 저장소 및 네트워크 인터페이스를 사용하여 클러스터 기반 서비스 및 데이터에 고가용성을 제공합니다.

Sun Cluster 소프트웨어는 구성원 노드 및 기타 클러스터 자원의 상태를 지속적으로 모니터합니다. 장애가 발생할 경우 Sun Cluster 소프트웨어가 개입하여 모니터 대상 자원의 페일오버를 시작하며, 내부 중복을 사용하여 해당 자원에 대한 지속성 있는 액세스를 제공합니다.

Sun Cluster 데이터 서비스 패키지(Sun Cluster 에이전트라고도 함)는 모든 Java ES 시스템 서비스 구성 요소에 사용 가능합니다. 사용자 정의 개발 응용 프로그램 구성 요소에 대한 에이전트를 작성할 수도 있습니다.

Sun Cluster 소프트웨어는 제어를 통해 확장 가능한 서비스를 제공할 수도 있습니다. 클러스터의 전역 파일 시스템과 다중 노드 기능을 사용하여 인프라 또는 응용 프로그램 서비스를 실행하면 이러한 서비스에 대해 증대되는 요구와 해당 서비스의 다중 동시 인스턴스 간에 균형 조정할 수 있습니다. Sun Cluster 소프트웨어를 올바르게 구성하면 분산된 엔터프라이즈 응용 프로그램에 고가용성과 확장성을 모두 제공할 수 있습니다.

Sun Cluster 환경을 지원하는 데 필요한 중복 때문에 솔루션에 Sun Cluster를 포함하면 물리적 환경에 필요한 컴퓨터 수와 네트워크 링크 수가 크게 늘어납니다.

다른 Java ES 구성 요소에서 제공하는 서비스와는 달리 Sun Cluster 가용성 서비스는 분산된 피어 투 피어 서비스입니다. 따라서 Sun Cluster 소프트웨어를 클러스터의 모든 컴퓨터에 설치해야 합니다.

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


주 –

Sun Cluster 및 Sun Cluster Geographic Edition은 SolarisTM 운영 체제(Solaris OS)에서만 지원됩니다.


세 가지 구조적 차원의 통합

그림 2–1에서 보여주고 앞 절에서 설명한 세 가지 구조적 차원을 모두 고려하면 분산된 소프트웨어 솔루션을 설계하기 위한 프레임워크가 제공됩니다. 세 가지 차원(인프라 서비스 종속성, 논리적 계층 및 서비스 품질)은 솔루션 구조의 Java ES 구성 요소가 수행하는 역할을 강조합니다.

각 차원은 특정한 구조적인 관점을 나타냅니다. 솔루션 구조마다 이러한 차원을 모두 고려해야 합니다. 예를 들어 솔루션 구조의 각 논리 계층에 있는 분산된 구성 요소(차원 2)를 해당하는 인프라 구성 요소(차원 1)와 해당하는 서비스 품질 구성 요소(차원 3)에서 지원해야 합니다.

마찬가지로 솔루션 구조 내의 구성 요소는 다른 구조적 차원과 관련된 다른 역할을 수행합니다. 예를 들어 Directory Server는 데이터 계층에 있는 백엔드 구성 요소(차원 2)와 지속성 서비스 제공자(차원 1)로 모두 간주될 수 있습니다. 이 두 가지 차원과 관련된 Directory Server의 중심적 역할로 인해 Java ES 구성 요소에 대해 서비스 품질 문제(차원 3)가 가장 중요합니다. Directory Server 장애는 비즈니스 시스템에 매우 큰 영향을 미치므로 이 구성 요소에 대한 고가용성 설계가 매우 중요합니다. 그리고 Directory Server가 중요한 사용자 또는 구성 정보를 저장하는 데 사용되므로 이 구성 요소에 대한 보안 설계도 매우 중요합니다.

Java ES 구성 요소와 관련된 세 가지 차원의 상호 작용은 논리적 솔루션 구조 및 솔루션 배포 구조의 설계에 영향을 줍니다.

이 설명서에서는 Java ES 구조 프레임워크에서 설명한 구조적 프레임워크에 기반한 설계 방법을 자세히 다루지 않습니다. 그러나 세 가지 차원의 구조 프레임워크는 Java Enterprise System에 기반한 소프트웨어 솔루션을 배포할 때 이해하고 있어야 하는 중요한 설계의 측면을 강조합니다.

Java ES 솔루션 구조 예

Java ES는 폭넓은 소프트웨어 솔루션을 지원합니다. Java ES에 포함된 구성 요소를 사용하면 힘들게 개발하지 않고도 많은 솔루션을 즉시 설계하고 배포할 수 있습니다. 기타 솔루션 개발에는 막대한 노력이 필요하며 새로운 비즈니스 또는 표현 서비스를 제공하는 사용자 정의 J2EE 구성 요소를 개발해야 합니다. 이러한 사용자 정의 구성 요소는 SOAP 인터페이스 표준을 따르는 웹 서비스로 캡슐화될 수 있습니다. 많은 솔루션에는 이러한 두 가지 접근 방법의 조합이 포함됩니다.

이 절에는 앞 절의 구조적 개념에서 이끌어낸 즉시 실행 가능한 솔루션을 Java ES에서 지원하는 방식을 보여주는 예가 있습니다.

엔터프라이즈 통신 시나리오

비즈니스에서는 일반적으로 직원들간의 통신 특히 전자 메일 및 달력 서비스 지원이 필요합니다. 이러한 비즈니스에서는 직원들이 엔터프라이즈 차원의 인증 및 권한 부여 서비스를 기반으로 내부 웹 사이트 및 기타 자원 액세스를 개인화하는 것이 유리합니다. 그리고 단일 웹 사인 온으로 모든 엔터프라이즈 서비스에 액세스할 수 있도록 해당 엔터프라이즈 서비스 전체에서 직원 아이디를 추적하고자 합니다.

다음 표에서는 단지 비즈니스 요구 사항의 한 가지 예를 나타내는 특정 비즈니스 요구 사항을 요약합니다.

표 2–4 비즈니스 요구 사항 요약: 통신 시나리오

비즈니스 요구 사항 

설명 

필요한 서비스 

단일 사인 온 

웹 액세스용 단일 사인 온을 통한 단일 아이디에 기반하여 엔터프라이즈 자원 및 서비스에 안전하게 액세스합니다. 

Identity 서비스 

메시징 

캘린더 

직원 상호 간 전자 메일 메시징 및 외부와의 전자 메일 메시징 

전자 직원 일정 및 회의 조정 

통신 및 공동 작업 서비스 

포털 액세스 

내부 웹 페이지뿐만 아니라 전자 메일 및 캘린더와 같은 통신 서비스에 대해 개인화된 웹 기반 단일 액세스 지점입니다. 

포털 서비스 

그리고 이러한 서비스를 제공하는 소프트웨어 시스템의 성능, 가용성, 네트워크 보안 및 확장성에 관해 엔터프라이즈 요구 사항이 있습니다.

예제 시나리오의 논리 구조

다음 그림에서는 Java ES 구성 요소와 Sun Java Communications Suite 구성 요소(Messaging Server, Calendar Server, Instant Messaging 등)를 사용하여 표 2–4에서 확인한 포털, 통신 및 Identity 서비스를 제공하는 논리적 구조를 보여줍니다. 각 구성 요소에서 제공하는 특정한 서비스로 인해 이 구조에서는 논리적으로 특정한 Messaging Server 구성을 별개의 구성 요소로 처리합니다.

그림 2–6 엔터프라이즈 통신 시나리오의 논리 구조

엔터프라이즈 통신 시나리오 예제의 논리적 구조를 표시하는 다이어그램.

구성 요소는 표준 논리 계층을 표현하는 수평 차원 및 인프라 서비스 수준을 표현하는 수직 차원 내에 위치합니다. 구성 요소 사이의 상호 작용은 분산된 인프라 서비스(인프라 서비스 수준 사이의 상호 작용)로서의 기능 또는 계층 응용 프로그램 구조 논리 계층 내부 및 사이의 상호 작용 내의 역할에 따라 좌우됩니다.

이 구조에서 Directory Server에 저장된 사용자 정보에 액세스하는 Access Manager는 표현 계층의 Portal Server 및 기타 웹 기반 구성 요소를 위한 단일 사인 온(SSO) 인증 및 권한 부여의 중재자 역할을 수행합니다. Messaging Server 구성 요소는 비즈니스 서비스 계층의 구성 요소를 검색하고 전송하면서 데이터 계층의 메시지 저장소(Messaging Server-STR) 및 표현 계층의 HTTP 액세스 구성 요소 및 Communications Express를 포함합니다.

또한 논리 구조는 다양한 구성 요소 사이의 인프라 서비스 종속성도 보여줍니다. 예를 들어, Portal Server는 메시징 및 캘린더 채널에 대해 Communications Express를 사용하고, 인증 및 권한 부여 서비스에 대해 Access Manager를 사용합니다. 그리고 이러한 구성 요소는 사용자 정보 및 구성 데이터에 대해 Directory Server를 사용합니다. 여러 구성 요소에는 Web Server에서 제공되는 웹 컨테이너 서비스가 필요합니다.

Java ES 솔루션의 논리적 설계에 대한 자세한 내용은 Sun Java Enterprise System Deployment Planning Guide를 참조하십시오.

예제 시나리오의 배포 구조

논리적 구조에서 배포 구조로 이동하는 경우 서비스 품질이 가장 중요한 요구 사항이 됩니다. 예를 들어 보호 서브넷 및 방화벽을 사용하여 백엔드 데이터에 대한 보안 장벽을 만들 수 있습니다. 구성 요소를 여러 컴퓨터에 배포하고 로드 밸런서를 사용하여 복제된 구성 요소 간의 요구 사항을 분산함으로써 많은 구성 요소의 가용성 및 확장성 요구 사항을 충족시킬 수 있습니다.

그러나 더 많은 가용성 요구 사항을 적용하고 많은 양의 디스크 기억 장치가 관련된 경우에는 다른 가용성 솔루션이 더 적합합니다. 예를 들어 Sun Cluster를 Messaging Server 저장소에 사용할 수 있으며 Directory Server에 다중 마스터 복제를 사용할 수 있습니다.

Java ES 솔루션의 배포 설계에 대한 자세한 내용은 Sun Java Enterprise System Deployment Planning Guide를 참조하십시오.

이 장의 주요 용어

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

응용 프로그램 구성 요소

특정 컴퓨팅 기능을 수행하여 최종 사용자 또는 다른 응용 프로그램 구성 요소에 비즈니스 서비스를 제공하는 사용자 정의 개발 소프트웨어 구성 요소입니다. 응용 프로그램 구성 요소는 대개 CORBA 및 J2EE 플랫폼과 같은 분산 구성 요소 모델을 따릅니다. 응용 프로그램 구성 요소는 단독으로 또는 여러 개를 결합하여 웹 서비스로 캡슐화할 수 있습니다.

구조

분산 응용 프로그램 또는 다른 소프트웨어 시스템의 논리적 및 물리적 빌딩 블록과 서로 간의 관계를 보여주는 설계입니다. 분산된 엔터프라이즈 응용 프로그램의 경우 구조 설계에는 일반적으로 응용 프로그램의 논리적 구조배포 구조가 모두 포함됩니다.

비즈니스 서비스

여러 클라이언트를 대신하여 비즈니스 논리를 수행하는 응용 프로그램 구성 요소 또는 구성 요소 어셈블리이며, 이에 따라 다중 스레드 프로세스가 됩니다. 또한 비즈니스 서비스는 웹 서비스 또는 독립 실행형 서버로 캡슐화된 분산 구성 요소의 어셈블리일 수도 있습니다.

클라이언트

소프트웨어 서비스를 요청하는 소프트웨어입니다. 다른 서비스를 요청하는 서비스이거나 최종 사용자가 액세스하는 구성 요소일 수 있습니다.

배포 구조

논리적 구조를 물리적 컴퓨팅 환경에 매핑하는 것을 설명하는 고급 설계입니다. 물리적 환경에는 인트라넷 환경 또는 인터넷 환경의 컴퓨터, 컴퓨터 간 네트워크 링크 및 소프트웨어 지원에 필요한 기타 물리적 장치가 포함됩니다.

논리적 구조

분산 응용 프로그램의 논리적 빌딩 블록과 해당 빌딩 블록 간의 관계(또는 인터페이스)를 설명하는 설계입니다. 논리적 구조에는 분산 응용 프로그램 구성 요소와 해당 구성 요소를 지원하는 데 필요한 인프라 서비스가 모두 포함됩니다.

서버

외부 인터페이스를 통해 서비스에 액세스하는 클라이언트를 위해 분산 서비스 또는 일관된 서비스 집합을 제공하는 다중 스레드 소프트웨어 프로세스이며 하드웨어 서버와는 구별되는 것입니다.

웹 서비스

내게 필요한 옵션, 서비스 캡슐화 및 검색을 위한 표준화된 인터넷 프로토콜을 준수하는 서비스입니다. 이러한 표준에는 SOAP 메시징 프로토콜, WSDL(Web Services Description Language) 인터페이스 정의 및 UDDI(Universal Discovery, Description, and Integration) 레지스트리 표준이 포함됩니다.