타스크: 분배 설명
이 타스크는 실제 노드 및 상호 연결 면에서 분산 시스템의 배치 아키텍처를 정의합니다.
목적
실제 노드에 시스템의 기능을 분배하는 방법을 설명. 이 타스크는 분산 시스템에만 적용됩니다.
관계
기본 설명

이 타스크는 실제 노드 및 상호 연결 면에서 시스템의 배치 아키텍처를 정의합니다. 타스크: 아키텍처 분석 중 초기 배치 모델이 정의되었습니다. 이 타스크에서 해당 배치 모델(특히 배치 보기)은 현재 디자인을 반영하도록 정제됩니다.

정제(Elaboration) 단계 초반에는 배치 보기가 일반적으로 상당히 예비적이지만 정제 단계 후반에는 잘 정의되어야 합니다.

단계
분배 요구사항 분석
목적 시스템에 필요한 분배 정도를 정의. 

분배 요구사항은 다음으로 구동됩니다.

  • 문제점 도메인의 분배 요구(기능적 요구사항) - 시스템이 액세스해야 하거나 특정 분산 프로세서, 데이터베이스 또는 레거시 시스템을 사용하여 기능의 일부를 수행해야 하는 명시적 요구사항이 있을 수 있습니다.
  • 선택한 배치 구성 - 특정 배치 구성은 노드 수와 유형 및 상호 연결을 정의하여 시스템의 분배에 제한조건을 부여합니다. 예를 들어, 다중 계층 구성 선택은 일반적으로 클라이언트 노드, 웹 서버 노드 및 응용프로그램 서버 노드가 있음을 의미합니다. 특정 배치 구성은 일반적으로 타스크: 아키텍처 분석 중에 선택된 후 이 타스크 중에 정제됩니다.
  • 필수 자원(비기능적 요구사항) - 시간 집약적이거나 계산 집약적인 기능은 특히 기능성 요구를 처리하도록 구비된 특정 하드웨어 구성을 필요로 할 수 있습니다(예: 고속 프로세서, 다수의 RAM 또는 다량의 디스크 공간). 이의 한 예로 디지털 신호 처리를 들 수 있는데, 전문화된 전용 프로세서를 필요로 할 수 있습니다.
  • 결함 허용의 필요성(비기능적 요구사항) - 백업 프로세서를 갖는 것이 요구사항일 수 있습니다.
  • 확장성 및 유연성에 대한 관심(비기능적 요구사항) - 동시 사용자가 많을 경우 하나의 프로세서로는 지원할 수 없습니다. 시스템 기능의 로드 밸런스를 유지하여 최대의 성능과 확장성을 제공해야 할 수 있습니다.
  • 경제적 관심 - 가격이 저렴한 소형 프로세서의 가격 대비 성능을 대형 모델에서는 따라갈 수 없습니다.

많은 아키텍처 문제점의 경우와 마찬가지로 이런 요구사항은 다소 상호 배타적일 수 있습니다. 요구사항이 충돌하는 것은 적어도 처음에는 드문 일이 아닙니다. 중요성 면에서 요구사항의 등급을 매기면 충돌을 해결하는 데 도움이 됩니다.

네트워크 구성 정의
목적 네트워크의 구성 및 토폴로지 정의. 

이 단계에서는 초기 배치 모델(타스크: 아키텍처 분석에 정의됨)이 이전 단계에서 식별된 분배 요구사항을 지원할 수 있도록 정제됩니다.

네트워크 토폴로지, 네트워크의 프로세스와 장치의 기능 및 특성은 시스템에서 가능한 분배 정도와 특성을 결정합니다.

다음 정보를 캡처해야 합니다.

  • 위치를 포함하여 네트워크의 실제 레이아웃
  • 네트워크의 노드, 노드 구성 및 기능(구성은 노드에 설치된 하드웨어 및 소프트웨어, 프로세서 수, 디스크 공간 양, 메모리 양, 스왑 양 등을 포함함) - 장치를 사용하여 노드에 설치된 하드웨어를 표시할 수 있음
  • 네트워크의 각 세그먼트의 대역폭
  • 네트워크에 중복 경로의 존재(결함 허용 기능을 제공하는 데 도움이 됨)
  • 다음을 포함한 노드의 기본 목적
    • 사용자가 사용하는 워크스테이션 노드
    • 헤드리스 처리가 발생하는 서버 노드(서버 구성을 단순화하기 위해 사용자 인터페이스 컴포넌트를 포함하지 않는 헤드리스 이미지로 서버 컴포넌트를 묶을 수 있음)
    • 개발 및 테스트에 사용되는 특별 구성
    • 기타 전문화된 프로세서
  • IP 네트워크가 존재할 경우 IP 디자인 및 기능(예: DNS, VPN)
  • 인터넷이 솔루션에서 수행하는 역할

예제

다음 다이어그램은 ATM의 배치 보기를 설명합니다.

ATM의 배치 보기 다이어그램

ATM의 배치 보기

다이어그램은 두 개의 노드(이 예제의 초점인 ATM 자체) 및 은행 간 네트워크로의 모든 연결이 이루어지는 ATM 네트워크 서버를 설명합니다. ATM 네트워크 서버가 ATM의 빌더 범위를 벗어나 있긴 하지만 여기서는 네트워크 대역폭을 문서화할 수 있는 방법을 설명하기 위해 이를 표시합니다. 다이어그램은 또한 ATM 노드에서 실행되는 프로세스와 스레드를 표시하는데, 이에 대해서는 다음 단계인 노드에 시스템 요소 할당을 참조하십시오.

프로세서 및 네트워크 용량을 문서화하기 위한 어노테이션 사용에 유의하십시오. 이런 문서는 노드(또는 장치)의 문서 필드에 제공될 수도 있는데, 이 경우에는 다이어그램에 표시되지 않습니다.

노드에 시스템 요소 할당
목적  시스템의 워크로드 분배. 

이 단계에서는 시스템 요소가 이전 단계에 정의된 노드에 할당됩니다. 논리 및 실제 측면 둘 다에서 배치를 설명할 수 있습니다.

논리적 배치는 논리 요소(클래스, 서브시스템 또는 이에 대한 인스턴스)가 노드에 맵핑되는 경우입니다. 여기에는 제어 스레드가 포함될 수 있습니다. 예를 들어, 논리적 배치는 AuctionManager 서브시스템이 응용프로그램 서버에 배치된다고 할 수 있습니다.

실제 배치는 파일이 노드에 맵핑되는 경우입니다. 예를 들어, 실제 배치는 CloseAuctionTimer.class 파일이 server76에 배치된다고 할 수 있습니다.

분배는 합계가 부분의 합계 보다 적을 수 있고 대개 그러한 하나의 영역입니다. 분배 이점을 실제로 달성하려면 작업과 신중한 계획이 필요합니다. 어느 요소를 어느 노드에 맵핑할지 결정할 때 다음을 고려하십시오.

  • 노드 용량(메모리 및 처리 능력 면에서)
  • 통신 매체 대역폭(버스, LAN, WAN)
  • 하드웨어 및 통신 링크의 가용성, 재라우팅
  • 중복성 및 결함 허용 요구사항
  • 응답 시간 요구사항
  • 처리량 요구사항

요소는 교차 네트워크 트래픽의 양을 최소화할 목적으로 노드에 할당됩니다. 상호작용 빈도가 높은 요소는 동일한 네트워크에 나란히 배치해야 하며, 반면에 상호작용 빈도가 낮은 요소는 다른 노드에 상주할 수 있습니다. 중요한 결정이자 때때로 반복이 필요한 결정은 경계를 짓는 위치입니다. 두 개 이상의 노드에 프로세스를 분배하려면 시스템에서 프로세스 간 통신 패턴을 면밀히 검토해야 합니다. 처리를 분배하면 한 시스템에서 두 번째 시스템으로 작업의 로드를 덜 수 있다는 단순한 인식을 하는 경우가 종종 있습니다. 실제로는 프로세스 및 노드 경계를 주의깊게 고려하지 않으면 분배를 통해 얻은 이익이 프로세스 간 추가 통신 워크로드로 인해 쉽게 무산될 수 있습니다.

예제

이전 예제 다이어그램(ATM의 배치 보기)은 노드에 프로세스를 할당하는 ATM 노드를 설명합니다. 단일 프로세스(메인 ATM)가 있으며, 이는 세 개의 별도 제어 스레드(고객 인터페이스, ATM 네트워크 인터페이스 및 장치 제어기)로 구성됩니다.

일부 환경은 분배 자동화 및/또는 단순화를 위한 메커니즘을 제공합니다. 예제:

  • 클러스터: 클러스터는 단위의 역할을 하는 서버 그룹입니다(일반적으로 장애 복구, 로드 밸런스 조절과 같은 기능을 포함). 이 경우, 배치 보기는 시스템 요소를 클러스터에 할당하는 방법은 물론 실제 노드에 맵핑할 수 있도록 클러스터를 구성하는 방법을 설명해야 합니다.
  • 컨테이너: 컴포넌트 환경(예: J2EE, Microsoft .NET 및 기타)에서 컴포넌트는 컨테이너라는 논리적 컴퓨팅 환경 내에서 실행됩니다. 컨테이너는 "논리 노드"라고 간주할 수 있습니다. 배치 보기는 시스템 요소를 컨테이너에 배치하는 방법과 실제 노드에 컨테이너를 할당하는 방법을 설명해야 합니다.

이러한 지원 분배 메커니즘 사용과, 분배 요구사항을 충족할 수 있도록 구성하여 실제 노드에 맵핑하는 방법을 배치 보기의 일부로 문서화해야 합니다.

특성
다중 발생
이벤트로 구동됨
진행 중임
선택사항
계획됨
반복 가능함
자세한 정보