메뉴 닫기

[KMOOC] 클라우드 서비스 아키텍처 – 2주차

아키텍처 모델링 방법의 결정

1. 컴포넌트, 커넥터, 인터페이스

1-1 문제 해결에 도움을 주는 시각으로서 컴포넌트와 커넥터 이분법

아키텍처는 컴포넌트와 커넥터로 구성되게 된다.
컴포넌트 – 네모, 커넥터 – 선
컴포넌트와 커넥터는 다이어그램에서 반드시 교차

커넥터 = 컴포넌트 간의 상호작용을 실현시키는 요소
여러가지 커넥터가 존재하며, 같은 종류의 커넥터도 기대하는 기능이나 구현, 프로그래밍 언어 등에 따라 세부적인 차이점이 발생한다.
이 세부적인 차이를 가지고 더 세분화 하는것이 가능하다.

1-2 표현력을 높이기 위한 아키텍처 요소들

네모와 선 뿐만 아니라 효과적으로 아키텍처를 표현하기 위해 다른 도형들도 사용할 수 있다.
다양한 모양의 심볼을 사용하여 컴포넌트에 관한 많은 정보를 즉각 전달할 수있으며, 화살표를 사용해 데이터의 방향도 나타낼 수 있다.

1-3 인터페이스

컴포넌트와 커넥터로 아키텍처를 표현한 경우 시스템의 모습을 추상적으로 보여주기 때문에, 아키텍처의 정의만으로는 시스템의 구현을 시작할 수 없다.
각 컴포넌트와 커넥터들이 여러 팀에 의해서 개발된 뒤 서로 연결되어 동작하려면, 연결동작인 인터페이스가 먼저 정의되어 있어야 한다.
접속 부위에서 일어나는 실제 상호작용 동작까지 올바르게 정의 되어야 기대 동작 구현

2. 아키텍처 스타일

2-1 아키텍처 스타일이란?

미리 만들어진 부분적인 아키텍처 설계 결정들의 집합

2-2 아키텍처 스타일의 기술 방법

아키텍처 스타일 이름 스타일을 지칭하는 의미 있는 이름
설계 요소 타입 컴포넌트 컴포넌트 타입 및 실행 방법
커넥터 커넥터 타입 및 실행 방법
제약사항 이 컴포넌트와 커넥터들이 결합되는 방식에 대한 제약과 대표적인 구조적 형태
적용예제 스타일의 적용 예제들
장단점 스타일의 장점과 단점

2-3 아키텍처 스타일의 종류

  1. 기본적인 스타일
    1. 전통적인 언어기반 스타일 그룹
      1. 메인 프로그램과 서브루틴
    2. 계층 스타일 그룹
      1. 가상 머신
      2. 서버-클라이언트
    3. 자료 흐름 그룹
      1. 배치-연속
      2. 파이프-필터 (Pipe-Filter)
    4. 공유 메모리 그룹
      1. 블랙보드
      2. 규칙기반
    5. 해석기 그룹
      1. 해석기
      2. 모바일 코드
    6. 묵시적 호출 그룹
      1. 출판-구독 (Pub-Sub)
      2. 이벤트 기반
      3. 피어-피어 그룹
  2. 복합적인 스타일기본적인 스타일의 결합
    1. C2
    2. 분산 오브젝트 그룹

동일한 아키텍처 스타일을 -> 서로 다른 시스템에 적용할 수 있으며
다양한 아키텍처 스타일 -> 같은 기능을 갖는 시스템 구성이 가능함.

3. 소프트웨어 아키텍처를 보는 관점 체계

3-1 관점과 VIEW

관점
특정한 시각을 갖고 그 시각에 집중하여 복잡한 소프트웨어 시스템을 포착하기 위한 시각

VIEW
관점에서 본 시스템의 모습

관점과 이에 해당하는 VIEW를 통해 아키텍처의 가시화가 가능하다.
관점은 이해 당사자에 따라 달라지고 다양하다.

일반적으로 많이 이용되는 관점
논리적 관점, 모듈 관점, 실행 관점

3-2 관점 체계

아키텍처 관점들은 개발대상 시스템에 맞는 적절한 조합으로 선택 된다.

아키텍처 관점 체계란?
아키텍처 설계를 위하여 채택된 아키텍처 관점들의 집합이다.
Ex) Kurchten, Rosanski
Kruchten의 4+1 관점 체계 = 1. 논리적 관점, 2.개발 관점, 3.프로세스 관점, 4.물리적 관점, 5.시나리오
Siemens의 Four Viewpoints 관점체계
Rosanski의 관점 체계 Context, Functional, Information, Concurrency, Development, Deployment, Operational

아키텍처 설계를 위하여 고려할 점

무리없이 실행 가능한 소프트웨어 개발을 위해 실행 시의 모습을 잘 알아야 함
실행은 코드가 실행 환경에 배치 되어야 가능해지므로 코드 측면도 중요
실행과 코드 측면의 두가지에 대해 동시에 고려

아키텍처 설계 수준 진행 방향

개략적인 수준 -> 구체적인 수준으로 점진적으로 진행

개념 -> 논리 -> 물리 -> 배치

3-3 아키텍처 VIEW의 개발 순기에 있어서의 역할

8개의 관점이 개발을 위해 사용 될 수 있다.

3-4 아키텍처 드라이버와 아키텍처 관점들

아키텍처 드라이버 별로 적절한 관점이 달라진다.

아키텍처 관점 관련 품질 속성
비공통 공통
실행측면 시나리오 관점 성능
     신뢰성
     가용성
     사용 용이성
     확장성
     
이해성
논리적 관점 안정성, 보안성
실행 관점 시험 용이성
실행 요소 배치 관점
코드측면 개념 관점 구축 용이성
     재사용성
     통합성
     시험 용이성
모듈 관점 확장성, 변경 용이성
코드 관점 이식성
코드 배치 관점

Related Posts

답글 남기기

이메일 주소는 공개되지 않습니다.

%d 블로거가 이것을 좋아합니다: