Sun Java Enterprise System 2005Q4 기술 개요

Java Enterprise System 구조 프레임워크

Java ES 구성 요소는 분산된 엔터프라이즈급 소프트웨어 솔루션의 배포를 지원합니다.

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

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

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

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

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

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

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

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

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

인프라 서비스 수준

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

그림 2–2에서는 솔루션 구조의 인프라 서비스 종속성 차원을 설명합니다. 이 그림에 표시된 차원은 그림 1–1의 인프라 서비스 계층이 확장된 것을 보여줍니다.

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

일반적으로 그림 2–2에 표시된 서비스는 낮은 수준의 플랫폼 서비스, 높은 수준의 응용 프로그램 서비스 및 다른 두 그룹 사이에 있어서 그렇게 이름이 지정된 미들웨어 서비스 그룹 등 크게 세 가지 그룹으로 분류됩니다.

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

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

다음 단락에서는 서로 다른 인프라 서비스 수준을 설명하며 해당되는 Java 프로그래밍 언어 아티팩트를 참조합니다. 서비스 수준은 그림 2–2에 표시된 것처럼 가장 낮은 수준에서 가장 높은 수준까지 설명합니다.

그림 2–2의 서비스 수준은 가장 낮은 수준의 운영 체제 시스템 서비스에서 가장 높은 수준의 응용 프로그램 및 통합 서비스에 이르기까지 다양한 인프라 서비스 간의 일반적인 종속성을 반영합니다. 각 서비스는 일반적으로 아래에 있는 서비스에 종속되고 위에 있는 서비스를 지원합니다.

그러나 그림 2–2에서는 인프라 서비스의 엄격한 계층화를 표시하지 않습니다. 높은 수준의 서비스는 중간 수준에 의존하지 않고 낮은 수준의 서비스와 바로 상호 작용할 수 있습니다. 예를 들어 일부 런타임 서비스는 사이에 있는 다른 서비스 수준 없이도 플랫폼 서비스에 바로 종속될 수 있습니다. 모니터링 또는 관리 서비스와 같은 다른 서비스 수준도 이 개념적인 그림에 포함될 수 있습니다.

Java Enterprise System 인프라 서비스 구성 요소

Java ES 구성 요소는 그림 2–2에 표시된 분산된 인프라 서비스 수준을 구현합니다. 다른 수준 내에서 Java ES 시스템 서비스 구성 요소의 위치는 그림 2–3에 표시되어 있습니다.

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

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


주 –

그림 2–3에 표시된 운영 체제 플랫폼은 공식적으로 Java Enterprise System의 일부는 아니지만, Java ES 구성 요소가 지원되는 운영 체제 플랫폼을 표시하기 위해 포함됩니다.


Java Enterprise System 인프라 서비스 종속성

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

그림 2–3에 표시된 것처럼 표 2–1에서는 Java ES 시스템 서비스 구성 요소 사이의 특정한 관계를 보여줍니다.

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

구성 요소 

종속 대상 

지원 대상 

Portal Server 

Application Server 또는 Web Server 

Access Manager 

Directory Server 

해당 채널을 사용하도록 구성한 경우: Calendar Server Messaging Server Instant Messaging 

 

Messaging Server 

Directory Server 

Access Manager(단일 사인 온용) 

Calendar Server(전자 메일 알림용) 

Portal Server(메시징 채널용) 

Instant Messaging 

Directory Server 

Access Manager(단일 사인 온(SSO)용) 

Portal Server(인스턴트 메시징 채널용) 

Calendar Server 

Directory Server 

Messaging Server(전자 메일 알림 서비스용) 

Access Manager(단일 사인 온(SSO)용) 

Portal Server(캘린더 채널용) 

Access Manager 

Application Server 또는 Web Server 

Directory Server 

Portal Server 

단일 사인 온(SSO)을 위해 구성하는 경우: 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 

Calendar Server 

Messaging Server 

Instant Messaging 

Access Manager 

Service Registry 

없음 

Applcation Server 기반 구성 요소 

차원 2: 논리적 계층

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

다음 그림에서는 솔루션 구조의 논리적 계층 차원을 표시합니다.

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

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

대개 논리적 계층 구조는 그림 1–1의 분산된 엔터프라이즈 응용 프로그램 계층을 표현합니다. 인프라 서비스 수준에서 설명한 Java ES 시스템 서비스 구성 요소는 그림 2–4에 표시된 모든 논리적 계층에서 응용 프로그램 구성 요소를 지원합니다. 그러나 논리 계층 개념은 Messaging Server 및 Calendar Server 등의 응용 프로그램 수준 서비스를 제공하는 시스템 서비스 구성 요소에도 적용됩니다.

논리적 계층 설명

이 절에서는 그림 2–4에 표시된 네 가지 논리적 계층에 대해 간략하게 설명합니다. Java 2 Platform, Enterprise Edition( J2EETM 플랫폼) 구성 요소 모델을 사용하여 구현한 응용 프로그램 구성 요소를 설명합니다. 그러나 CORBA와 같은 다른 분산된 구성 요소 모델에서도 이 구조를 지원합니다.

논리적 및 물리적 독립성

그림 2–4에 표시된 구조적 차원은 구성 요소의 논리적 및 물리적 독립성을 강조하며 개별적인 4개의 계층으로 표시합니다. 이 계층은 네트워크 환경에 있는 다양한 컴퓨터들에 대한 응용 프로그램 논리의 분할을 나타냅니다.

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

그림 2–3에 표시된 것처럼 Java ES 인프라 서비스 구성 요소는 분산된 소프트웨어 솔루션에 대한 기초 인프라 지원을 제공합니다. 그러나 이러한 솔루션 가운데 일부에는 Java ES 구성 요소에서 직접 제공하는 응용 프로그램 수준의 서비스가 포함됩니다. 이 솔루션에서는 논리 계층 설계 접근 방법을 사용합니다.

예를 들어 Messaging Server에서 제공하는 전자 메일 통신 서비스는 Messaging Server의 여러 논리적인 구성을 사용하여 구현됩니다. 이러한 특정 구성에서 각각의 특정 서비스 세트를 제공합니다. 다음 그림에 표시된 것처럼 메시징 솔루션 설계 시에 이러한 특정 구성이 서로 다른 논리 계층에 있는 개별 구성 요소로 표현됩니다.

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

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


주 –

그림 2–5는 완전한 논리적 구조를 나타내는 것은 아니며 여러 Java ES 구성 요소를 생략하여 단순화한 것입니다. 줄로 연결된 구성 요소는 상호 작용을 나타냅니다.


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

3차원: 서비스 품질

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

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

서비스 품질

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

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

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

시스템 서비스 품질 

설명 

성능

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

가용성

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

보안

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

확장성

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

잠재 용량

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

서비스 가능성

시스템 모니터링, 발생하는 문제 처리, 하드웨어 및 소프트웨어 구성 요소 업그레이드 등을 포함하여 배포된 시스템의 관리 용이성.  

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

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

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

Java Enterprise System 서비스 품질 구성 요소

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

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

다음 표에서는 가장 많은 영향을 받는 시스템 품질에 관한 구조적 관점에서 가장 중요한 Java ES 서비스 품질 구성 요소를 보여줍니다.

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

구성 요소 

영향 받는 시스템 품질 

Communications Express

보안

가용성 

Directory Proxy Server

보안

확장성

고가용성 세션 저장소 

가용성

Portal Server Secure Remote Access

보안

확장성

Sun Cluster 

가용성

확장성

Web Proxy Server 

보안 성능 서비스 가능성

Sun Cluster 소프트웨어

Sun Cluster 소프트웨어는 Java ES 인프라에서 지원하는 응용 프로그램 및 Java ES 구성 요소에 대한 고가용성 및 확장성 서비스를 제공합니다.

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

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

다음 그림에서는 Messaging Server 및 Calendar Server에 대한 데이터 저장 서비스를 지원하는 두 개 노드의 클러스터를 보여줍니다.

그림 2–6 Sun Cluster 노드를 사용한 가용성 설계

Sun Cluster 가용성 설계의 중복 컴퓨터, 데이터 저장소 및 상호 연결을 표시하는 다이어그램

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

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

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

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

세 구조 차원의 통합

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

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

마찬가지로 솔루션 구조 내의 구성 요소는 다른 구조적 차원과 관련된 다른 역할을 수행합니다. 예를 들어, Directory Server를 데이터 계층에 있는 백엔드 구성 요소(2차원) 및 지속성 서비스 제공자(1차원)로 모두 볼 수 있습니다.

이 두 가지 차원에 대한 Directory Server의 중심적인 역할 때문에 서비스 품질 문제(3차원)가 이 Java ES 구성 요소에 가장 중요합니다. Directory Server 장애는 비즈니스 시스템에 큰 영향을 미치므로 이 구성 요소에 대한 고가용성 설계는 매우 중요합니다. 그리고 Directory Server를 사용하여 중요한 사용자 또는 구성 정보를 저장하므로 이 구성 요소에 대한 보안 설계도 매우 중요합니다.

Java ES 구성 요소에 대한 세 차원의 상호 작용은 솔루션 논리 구조 및 솔루션 배포 구조의 설계에 영향을 줍니다.

Java Enterprise System 구조 프레임워크의 구조적 프레임워크를 기반으로 한 자세한 설계 방법은 이 설명서에서 다루지 않습니다. 그러나 세 차원의 구조 프레임워크는 Java Enterprise System에 기반을 둔 소프트웨어 솔루션 배포를 이해하는 데 중요한 설계의 측면을 강조합니다.