Sun Java Enterprise System 2005Q4 기술 개요

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 소프트웨어를 클러스터의 모든 컴퓨터에 설치해야 합니다.