TN_1114: TechNote 1114 시스템 정의 모델(SDM)에서 시스템의 4 개 층
Bill Gibson, 프로그램 관리자
Microsoft Corporation
적용 대상 :
Microsoft Visual Studio 2005 Team System
분산 시스템 디자이너는 시스템 정의 모델 (SDM)을 기본으로 합니다. SDM 는 분산 시스템 디자인, 배포 및 관리를 지원하도록 디자인 되었습니다. 여기에서는 SDM의 시스템 호스팅 모델을 반영하는 SDM 의 계층 뷰에 대해 설명합니다. 이 계층 뷰에서는 아키텍트, 개발자, IT 프로 및 컴퓨터 시스템의 다방면에 걸친 디자인과 관련된 그 외의 사용자의 현안 사항을 반영하기 위해 디자인 도구에 의해 작성된 SDM 모델을 각 요소로 분해할 수 있습니다.
시스템
SDM 핵심은 시스템이라는 개념입니다. 가장 기본적인 의미에서는 시스템은 개별적으로 배포할 수 있는 리소스 구성을 말합니다. 시스템이 그 리소스에 액세스 할 수 있도록 하거나 시스템의 리소스가 다른 시스템의 리소스가 제공하는 서비스를 이용해야 하는 경우, 시스템은 끝점(endpoint)을 사용하여 리소스를 공개합니다. 시스템은 원자 시스템(atomic system)과 복합시스템(composite system)의 한쪽이 됩니다. 원자 시스템은 직접 리소스에서 구성되거나 복합시스템은 다른 시스템에서 구성됩니다. SDM 의 자세한 내용은 「시스템 정의 모델」을 참조해 주세요.
호스팅
SDM 의 중요한 개념의 하나는 시스템이 다른 시스템을 호스트 할 수 있는 것입니다. 시스템이 다른 시스템에 인프라 서비스를 제공하는 경우, 그 시스템은 다른 시스템을 호스트 한다고 보여집니다. 서비스는 다음 조건을 만족하는 경우, 인프라 서비스라고 할 수 있습니다.
- 호스트 되는 측의 시스템에 꼭 필요하다.
- 같은 종류의 경우, 호스트 되는 측의 임의의 시스템에서 사용할 수 있다.
- 호스트 되는 측의 시스템과는 독립하여 구현된다.
이런 종류의 의존관계(dependencies)를 보여주기 위해 기본 SDM 의 추상형 사이에 호스팅 관계가 정의됩니다. 호스팅 관계의 각 인스턴스는 호스트 되는 측 시스템의 인스턴스를 호스트 하는 측 시스템에 배포를 기술할 경우에 작성됩니다.
호스팅 개념을 사용하여, 하드웨어시스템에서 응용 프로그램 소프트웨어 시스템에 이르기까지, 데이터 센터 구성에 필요한 시스템의 스택이라는 모놀리식 모델을 작성할 수 있습니다. 이러한 모델은 아주 정확하지만, 취급이 매우 어렵습니다.
시스템 계층화
호스팅 관계에 의해, 모델을 계층화 할 수 있습니다. 따라서 다양한 현안 사항에 다른 층에서 대처할 수 있습니다. 이 방법에 의해, 호스트하는 측의 "층" 내의 일련 시스템 디자인과 구성은 이런 일련의 시스템에 호스트 되는 측의 시스템 디자인과 구성에서는 분리하여 기술할 수 있습니다. 각층을 개별의 모델이나 SDM 문서로 표현하기 위해, 각층내의 시스템 디자인을 재사용 할 수 있습니다.
.gif)
그림 1. 시스템의 각층간의 호스팅 관계와 제약
다음의 예를 생각해 봅시다. SQL Server 데이터베이스에 접속되는 ASP.NET 응용 프로그램은 각각을 호스팅하는 IIS 와 SQL Server에서 제공되는 서비스가 필요합니다. 이 경우, 각 서비스가 이러한 응용 프로그램의 하나를 호스트 합니다. ASP.NET 응용 프로그램과 SQL 데이터베이스의 디자인과 구성은 비즈니스 최종 사용자의 요구를 기본으로 합니다. 반면에, IIS 와 SQL Server 의 구성은 일반적으로 보안, 프라이버시, 성능, 확장성 등 각층에 걸친 현안 사항의 영향을 받습니다. 같은 방법으로 IIS 와 SQL Server 구성은 Windows 구성상에서 호스트 되며 Windows 의 구성은 하드웨어시스템의 구성상에서 호스트 됩니다. 운영 시스템의구성과 하드웨어시스템의 구성은 다른 기준을 염두에 두고 디자인됩니다.
현안 사항 분해와 각층의 재사용
일반적으로, 시스템 디자인의 재사용은 스택의 하층으로 갈수록 많아집니다. 시스템의 스택 전체를 최종 사용자의 응용 프로그램 마다 독자적으로 디자인하는 것은 일반적이지 않습니다. (다만, 전혀 하지 않는 것은 아닙니다) 대부분의 조직에서는 소수의 하드웨어시스템 표준구성을 사용하여, 운영 시스템이나 네트워크 시스템의 표준구성을 설치합니다. 또한 이러한 운영 시스템 구성으로, 응용 프로그램의 호스트 시스템의 표준구성을 운용하여, 이러한 호스트 시스템에서 비즈니스 응용 프로그램의 표준구성을 실행합니다. 또, 다른 것은 현안 사항 뿐만 아니라, 많은 경우, 각각 다른 요구를 가지는 응용 프로그램 디자인, 인프라 디자인과 구성 및 운영 시스템이나 하드웨어 구성에 관여하는 다양한 사람들이 관여합니다.
호스팅은 시스템 사이의 구조상 관계를 정의하는 기반이 되는 것과 동시에 유효성 검사 규칙이나 제약을 정의하는 기반도 됩니다. SDM에서는 종류 (시스템이나 리소스) 마다 제약을 정의할 수 있습니다. 이것은 그 종류를 호스트 하는 측의 제약 또는 호스트 되는 측의 제약 수준에서 정의됩니다. 그 후, 배포 정의가 컴파일 될 때, 이러한 제약이 평가됩니다. 배포 정의에서는 어떤 수준의 시스템 특정 매핑을 하위레벨의 시스템에 대해 표현합니다.
모델 주도의 디자인, 유효성 검사 및 프로비전의 각 프로세스로 사용자 지정의 비용을 삭감할 수 있습니다. 오늘날 비용과 위험의 삭감이 시스템 디자인을 재사용 하는 중요한 요인이 됩니다. 시행되었거나 테스트된 구성을 재사용하는 것이 작업에 맞춰 각 구성을 독자적으로 디자인하는 것보다 저렴하고 안전합니다. 실제로는 대부분의 구성에 어느 정도의 타협 요소가 포함됩니다. SDM 와 SDM 에 관련하여 작성된 도구의 장기적 목표의 하나는 매스 커스터마이제이션의 장점을 조금이라도 데이터 센터에 가져오는 것입니다.
4 층 모델
SDM에서는 시스템 사이의 호스팅을 임의의 수준에서 가능하게 하지만, 대부분의 설치 영역을 고려면, 다음과 같은 단순한 4 층 모델이 유효한 것을 알 수 있습니다. .
- 응용 프로그램 (ASP.NET 응용 프로그램이나 Windows 등)
- 응용 프로그램 호스트 (IIS 나 SQL Server 등)
- 운영 시스템과 네트워크 (Windows XP 나 Windows Server 2003 등)
- 하드웨어 (Dell 서버나 HP 서버, Cisco 라우터- 등)
그림 2. 호스트 되는 시스템의 4 층 모델
시스템을 디자인하고, 배포, 관리하는 다양한 사용자의 시나리오나 요건 뿐만이 아니라, 이러한 계층이라는 개념 자체가 SDM 기반의 모델링 도구의 디자인에도 영향을 줍니다. Visual Studio Team Edition for Software Architects 에는 응용 프로그램과 응용 프로그램 호스트의 두 가지 상위층을 지원하는 도구가 있습니다. 도구에서는 기반이 되는 공통모델이 구현되어 비슷한 사용자 경험이 제공되지만, 각층에 고유의 개념이나 사용자 요건에 의해, 이러한 지원에 필요한 도구에 중요한 차이가 있습니다. 응용 프로그램 디자이너와 시스템 디자이너 (어느쪽이나 응용 프로그램 층에서 동작합니다) 및 논리 데이터 센터 디자이너 (응용 프로그램 호스트층에서 동작)를 조사하면, 유사점과 큰 차이점을 알 수 있습니다.
예를 들어, 응용 프로그램 층에서는 응용 프로그램 정의를 다양한 시스템 구성으로 재사용하여, 시스템을 다양한 방법으로 구성하여 새로운 다른 패키지를 작성할 수 있는 가능성이 많습니다. 응용 프로그램 호스트층에서는 영역이나 응용 프로그램 서버가 중첩된 구조를 시각화하는 요구에 중점이 있습니다. 형식의 재사용은 그만큼 중요하지 않다고 판단됩니다. 따라서 논리 데이터 센터 디자이너에서는 임의의 중첩된 시스템 멤버를 시각화하는 기능에 많은 주의를 기울여 접속을 쉽게 하기 위하여, 영역에 복합 끝점(endpoint)이 도입됩니다.
보다 간단한 수준에서는 각층에 연관된 도구를 조정하여 모델과 도구 박스의 내용이 정리되어 도구와 모델의 용도를 보다 명확하게 파악할 수 있습니다.
요약
SDM에서는 시스템을 다른 시스템에서 임의의 계층까지 호스트 할 수 있습니다. 다만, 간단한 4 층 편성 모델에 의해, 시스템 배포 수명 주기에 크게 관련되는 요소의 현안 사항이 반영되며, 모델을 분해 및 재사용 할 수 있고, 툴 자원을 위한 유용한 기반을 제공합니다.