앞의 두 가지 구조적 차원(인프라 서비스 독립성 및 논리 계층)이 주 대상으로 삼는 것은 구조의 논리적 측면입니다. 즉 최종 사용자에게 서비스를 전달하기 위해 어떤 방법으로든 상호 작용하는 데 필요한 구성 요소입니다. 마찬가지로 배포되는 솔루션에서 중요한 차원은 솔루션에서 서비스 품질(QoS) 요구 사항을 충족시킬 수 있는 능력입니다.
솔루션 구조의 서비스 품질 차원은 Java ES 서비스 품질 구성 요소에서 수행하는 역할을 강조합니다.
인터넷 및 전자 상거래 서비스가 비즈니스 운영에 매우 중요하게 되면서 이러한 서비스의 성능, 가용성, 보안, 확장성 및 서비스 가능성이 대규모 고성능 배포 구조의 핵심적인 서비스 품질 요구 사항이 되었습니다.
소프트웨어 솔루션을 성공적으로 설계하려면 관련된 서비스 품질 요구 사항을 결정하고 이러한 요구 사항을 충족시키는 구조를 설계해야 합니다. 중요한 서비스 품질이 서비스 품질 요구 사항을 지정하는 데 많이 사용됩니다. 다음 표에서는 이러한 서비스 품질을 요약합니다.
표 2–2 솔루션 구조에 영향을 주는 서비스 품질
시스템 서비스 품질 |
설명 |
---|---|
사용자 로드 조건에 따라 응답 시간 및 대기 시간을 측정한 값입니다. |
|
최종 사용자가 시스템의 자원과 서비스에 액세스할 수 있는 빈도(시스템 가동 시간)에 대한 측정입니다. |
|
시스템과 해당 사용자의 무결성을 설명하는 요소들의 복잡한 조합입니다. 보안에는 안전한 정보 전달뿐만 아니라 물리적인 시스템 보안, 네트워크 보안, 응용 프로그램 및 데이터 보안(사용자 인증 및 권한 부여) 등이 포함됩니다. |
|
시간에 따라 배포된 시스템에 용량을 추가할 수 있는 기능입니다. 확장성은 일반적으로 시스템에 자원을 추가하는 것을 포함하지만 배포 구조 변경을 요구해서는 안 됩니다. |
|
추가 자원 없이 비정상적인 최고 로드 사용을 처리할 수 있는 시스템의 기능입니다. |
|
시스템 모니터링, 발생한 문제 복구, 하드웨어 및 소프트웨어 구성 요소 업그레이드 등을 포함하여 배포된 시스템의 유지 보수 용이성을 나타냅니다. |
서비스 품질 차원은 솔루션의 배포 구조에 강력한 영향을 미칩니다. 즉 물리적인 환경에 응용 프로그램 구성 요소와 인프라 구성 요소를 배포하는 방법에 영향을 미칩니다.
배포 구조에 영향을 미치는 서비스 품질은 서로 밀접하게 관계됩니다. 대개는 하나의 서비스 품질에 대한 요구 사항이 다른 서비스 품질의 설계에 영향을 미칩니다. 예를 들어 높은 수준의 보안은 성능에 영향을 미칠 수 있고 성능은 가용성에 영향을 미칠 수 있습니다. 중복을 통해 가용성 문제를 처리하기 위해 컴퓨터를 추가하면 유지 보수 비용(서비스 가능성)에 영향을 미칠 수 있습니다.
시스템 품질이 어떻게 연관되어 있고 다른 품질 간의 균형을 조절하는 방법을 이해하는 것이 비즈니스 요구 사항과 제약 조건을 모두 충족시키는 구조를 설계하는 비결입니다.
일부 Java ES 구성 요소는 주로 시스템 서비스 구성 요소 또는 분산된 응용 프로그램 구성 요소에서 제공하는 서비스 품질을 향상시키는 데 사용됩니다. 이러한 소프트웨어 구성 요소는 대개 로드 밸런서 및 방화벽과 같은 하드웨어 구성 요소와 함께 사용됩니다.
서비스 품질 구성 요소에서 소개된 Java ES 서비스 품질 구성 요소는 다음과 같습니다.
가용성 구성 요소. 배포된 솔루션의 연속성 있는 가동 시간을 제공합니다.
액세스 구성 요소. 시스템 서비스에 안전한 인터넷 액세스를 제공하며, 종종 라우팅 기능을 제공하는 경우도 있습니다.
모니터링 구성 요소. Java ES 구성 요소에 대한 실시간 정보를 제공합니다.
다음 표에는 영향을 가장 많이 받는 시스템 품질에 관한 구조적 관점에서 가장 중요한 Java ES 서비스 품질 구성 요소가 나열되어 있습니다.
표 2–3 서비스 품질 구성 요소 및 영향 받는 시스템 품질
구성 요소 |
영향 받는 시스템 품질 |
---|---|
고가용성 세션 저장소 |
가용성 |
Monitoring Console |
서비스 가능성 |
보안 가용성 |
|
Sun Cluster |
가용성 확장성 |
Sun Cluster Geographic Edition |
가용성 확장성 |
Web Proxy Server |
보안 성능 확장성 |
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)에서만 지원됩니다.