Pattern-Oriented Software Architecture Summary :: 2021/01/20 14:46

  • Pattern Architecture = Architectural Style
  • Pattern 다음 3가지로 분류될 있음
    • Architectural Pattern / Framework Pattern : Highest Level of abstraction in software pattern. 전체 시스템 차원의 구조와 관계에 대한 정의
    • Design Pattern : collection of class or subsystem 통해 문제를 해결하는 방법에 대한 서술
    • Idiom (표현 양식, 언어) : the lowest level of pattern. 특정 프로그래밍 언어로 어떻게 개발되는지에 대한 코드 레벨
    • 다만, MVC 같이 3가지 카테고리로 분류하기 어려운 패턴도 등장. 한계가 있음.
  • Pattern-Oriented Software Architecture
    • Software 개발에 대한 또다른 접근 방법
    • POSA에서는 아키텍처를 다음 4가지 그룹으로 분류함
    • From Mud to Structure Category
      • 시스템의 전체 task 상호 동작하는 컴포넌트, subsystem, 레이어로 분해
      • Layers Pattern
        • Task 서로 다른 Layer 분리. 각각의 Layer 특정 수준으로 추상화.
        • 크고 복잡한 시스템을 구현하기 쉽게 분리 가능
        • 유지보수성과 확장성 측면에서 강점
        • 비싼 시스템 리소스는 단점
      • Blackboard Pattern
        • 여러 개의 특정 subsystem 결합하여 각각의 솔루션에 대한 지식을 활용.
        • 결정적인 솔루션을 가지고 있지 않은 경우에 적합
        • 서로 연관이 없는 컴포넌트나 subsystem 집합
        • 복잡한 에러 핸들링에 효율적임
      • Pipes & Filters Pattern
        • Stream data 처리 시스템에 대한 구조
        • 데이터 처리에 여러 단계의 step/pipe 순차적인 처리.
        • pipe 프로세스는 filter 포함하고 있음.
        • 데이터는 pipe filter 통과. 데이터 처리는 빠르지만, 데이터 처리에 대한 오버헤드와 static 정보 공유에 비용이 비싸고 flexible하지 않다. (유연하지 않음)
        • XML Streaming 데이터 처리와 같은 경우에 적합
    • Distributed System Category
      • 분산 어플리케이션에 대한 완전한 구조 제공
      • Broker 유일한 패턴임
      • Pipes and Filters 패턴이나 Microkernel 패턴도 카테고리에 속하지만, 다른 카테고리에 적합함
      • Broker Pattern
        • 분산 시스템에서 주로 사용하는 패턴
        • 원격 서비스를 호출하는 decoupled component 대한 시스템 구조
        • Client / Server 좋은 decoupling 제공할 있음
        • 변경성, 확장성, 위치 투명성 많은 장점이 있지만 디버그와 테스트가 어려움
        • CORBA : Common Object Request Broker Architecture 사용
    • Interactive Systems Category
      • 인간과 컴퓨터간의 상호작용과 같은 software 시스템 구조.
      • 인간의 상호작용을 handling하는 초점
      • Model-View-Controller Pattern Presentation-Abstraction-Control Pattern 카테고리에 속함
      • MVC Pattern
        • 시스템을 Model, View, Controller 3가지 파트로 분리
        • Model : 전체 시스템이 어떻게 동작하는지 설명
        • View : 모델이 어떻게 보여지는지 설명
        • Controller : 시스템과 User 사이 상호작용 제공
        • 유지보수성과 확장성을 증대시키지만, 디자인 복잡성도 증가함
        • 알려진 예제는 smalltalk 아키텍처
      • PAC Pattern
        • 협업 에이전트(cooperating agent) 계층 형태(hierarchy form) software system 상호작용 구조를 정의
        • agent 특정 application function 대해 책임을 지는 3개의 컴포넌트(presentation, abstraction, control) 이루어져 있음
        • 인간과 컴퓨터가 상호작용할 , functional core 다른 agent와의 communication 분리함
    • Adaptable System Category
      • 시스템은 시간이 지나감에 따라 발전하여 디자인이나 기능이 변경됨
      • Adaptable System(적응형 시스템) Application 확장과 개발된 기술의 조정, 기능 요구사항의 변경으로 이러한 문제를 극복함
      • Microkernel Pattern
        • Microkernel Pattern 확장된 기능성과 고객별(customer-specific) 파트(part)로부터 최소 기능 코어를 분리.
        • 확장 기능을 연결하고 협업을 조정하는 소켓을 제공.
        • 다른 프로세스에서 실행되는 컴포넌트간 서로 통신 가능.
        • 카네기 멜론 대학에서 개발된 mach(마하) 운영 체제가 패턴을 사용.
        • Chorus 상용 시스템도 패턴을 사용.
      • Reflection Pattern
        • Reflection Pattern 소프트웨어 시스템이 구조와 동작을 동적으로 변경하는 메커니즘 제공
        • Type structure (유형 구조), date element (날짜 요소), function call(함수 호출) 메커니즘 수정 지원
        • 패턴에서 application Meta level, Base level 2 분야로 분리됨
        • Meta level : 소프트웨어 자체를 인식하고, 선택된 시스템 속성에 대한 정보를 제공
        • Base level : Application Logic 담당. Implementation meta level에서 유지.
  • 결론
    • 시스템 아키텍처는 사용 가능한 아키텍처 패턴과 사용법을 이해해야
    • 시스템 아키텍처를 설계할 , 인간과 환경적 요소들도 중요
    • 프로젝트 수행 , 예산과 아키텍처의 아름다움 아래 프로젝트에 사용할 있는 회사 정책, 리소스는 사용된 아키텍처 패턴이 아니라 아키텍트에 의해서 결정됨.

2021/01/20 14:46 2021/01/20 14:46
Trackback Address :: http://www.yongbi.net/trackback/876
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret
< PREV |  1  |  ...  6  |  7  |  8  |  9  |  10  |  11  |  12  |  13  |  14  |  ...  640  |  NEXT >