건축 패턴

Architectural pattern

아키텍처 패턴은 주어진 맥락 안에서 소프트웨어 아키텍처에서 흔히 발생하는 문제에 대한 일반적이고 재사용 가능한 해결책이다.[1]아키텍처 패턴은 컴퓨터 하드웨어 성능 제한, 고가용성비즈니스 리스크 최소화 등과 같은 소프트웨어 엔지니어링의 다양한 문제를 다룬다.일부 아키텍처 패턴은 소프트웨어 프레임워크 내에서 구현되었다.

소프트웨어 산업에서 '패턴'이라는 단어를 사용한 것은 패턴 어휘의 확립이라는 관점에서 실무를 논의한 크리스토퍼 알렉산더의 A 패턴 언어(1977)와 같이 전통 건축에서 표현된 유사한 개념의 영향을 받아 컴퓨터 과학의 실무자들이 자신의 디자인 어휘를 숙고하게 되었다..

소프트웨어 공학 분야에서의 이 은유의 사용은 에리히 감마, 리차드 헬름, 랄프 존슨, 존 블리시데스의 디자인 패턴(1994년)이 공공 인터넷의 초창기와 맞물려 일반화되면서 보편화되었다.e world"[2]와 그에 상응하는 필요성은 유연성과 적응성을 유지하면서 소프트웨어 개발의 급속하게 확대되는 세계를 가능한 가장 깊은 수준에서 코드화해야 한다.

건축 패턴은 소프트웨어 설계 패턴과 유사하지만 범위가 넓다.

정의

비록 건축 패턴이 시스템의 이미지를 전달한다고 해도, 그것은 건축이 아니다.아키텍처 패턴은 소프트웨어 아키텍처의 필수적인 응집력 요소를 해결하고 묘사하는 개념이다.수많은 다른 아키텍처들은 동일한 패턴을 구현하고 관련 특성을 공유할 수 있다.패턴은 종종 "엄밀히 묘사되고 일반적으로 이용 가능하다"[3][4]로 정의된다.

건축양식

전통적인 건축 건축 양식에 이어, '소프트웨어 건축 양식'은 특정한 건축 방식으로, 그것을 주목할 만한 특징으로 특징지어진다.

구조 스타일은 구조 구성의 패턴 측면에서 시스템 제품군을 정의한다. 구성 요소와 커넥터의 어휘로 구성 요소와 커넥터가 결합될 수 있는 방법에 제약을 받는다.[5]

아키텍처 스타일은 (1) 주어진 개발 맥락에서 적용 가능한 아키텍처 설계 결정의 명명된 모음이며, (2) 그 맥락 안에서 특정 시스템에 특정한 아키텍처 설계 결정을 제약하며, (3) 각 결과 시스템에서 유익한 품질을 이끌어낸다.[1]

어떤 사람들은 건축 패턴과 건축 스타일을 똑같이 취급하고,[6] 어떤 사람들은 스타일을 패턴의 전문화로서 취급한다.그들이 공통적으로 가지고 있는 것은 패턴과 스타일 모두 건축가들이 사용할 수 있는 숙어라는 것이다. 그들은 시스템의 클래스를 설명하는 "공통 언어"[6] 또는 "언어"[5]를 제공한다는 것이다.

가장 큰 차이점은 패턴이 문제에 대한 해결책으로 보일 수 있는 반면, 스타일은 보다 일반적이고 외관상 문제를 해결할 필요가 없다는 점이다.

다음은 아키텍처 패턴, 그리고 해당 소프트웨어 설계 패턴솔루션 패턴의 목록이다.

하위 도메인 영역 건축 패턴 소프트웨어 설계 패턴 솔루션 패턴 관련 패턴
데이터 통합/SOA
  • 일방통행
  • 동기식 요청/응답
  • 기본 콜백
  • 클레임조회
데이터 아키텍처
  • 사용자 정의 응용프로그램 데이터베이스
  • 패키지형 애플리케이션 데이터베이스
  • ETL
  • EA I
  • 비상대기상태
분석 및 비즈니스 인텔리전스
  • 거래신고
  • 운영 분석
  • 비즈니스 분석
  • 예측 분석
  • 규범 분석
  • 스트리밍 분석
  • 데이터 과학 및 고급 분석
  • NLP
  • 트랜잭션 보고 데이터 액세스
  • 운영 보고 데이터 액세스
  • 분석 보고 데이터 액세스
  • 분석 대시보드 데이터 액세스
  • 운영 중인 대시보드 데이터 액세스
  • 데이터 마이닝
  • 실시간 대시보드
  • 인메모리 분석
  • 통계분석
  • 예측 분석
  • ETL
  • EA I
  • TDS
  • 운영 데이터 저장소
  • 데이터마트
마스터 데이터 관리
  • 마스터 데이터 허브
  • 마스터 데이터 복제
  • 마스터 데이터 서비스
  • 마스터 데이터 동기화
데이터 모델링
  • 모델링 표준
  • 명명 규칙
인공지능

아키텍처 패턴의 몇 가지 추가 예:

참고 항목

참조

  1. ^ a b R. N. Taylor, N. Medvidovich 및 E. M. Dashofy, 소프트웨어 아키텍처:기초, 이론, 실천.와일리, 2009년
  2. ^ Andreessen, Marc (20 August 2011). "Why Software Is Eating The World". The Wall Street Journal. Retrieved 25 April 2020.
  3. ^ Chang, Chih-Hung; Lu, Chih-Wei; Lin, Chih-Hao; Yang, Ming-Feng; Tsai, Ching-Fu (June 2008). "An Experience of Applying Pattern-based Software Framework to Improve the Quality of Software Development: 4. The Design and Implementation of OS2F". Journal of Software Engineering Studies, Vol. 2, No. 6. the Third Taiwan Conference on Software Engineering (TCSE07). pp. 185–194. Archived from the original on 2011-09-22. Retrieved 2012-05-16. Furthermore, patterns are often defined as something "strictly described and commonly available". For example, layered architecture is a call-and-return style, when it defines an overall style to interact.
  4. ^ "Architectural Patterns: Definition". AAHN INFOTECH (INDIA) PVT. LTD. Archived from the original on 2012-06-23. Retrieved 2012-05-16. Even though an architectural pattern conveys an image of a system, it is not an architecture as such. An architectural pattern is rather a concept that solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and thereby share the related characteristics. Furthermore, patterns are often defined as something "strictly described and commonly available".
  5. ^ a b M. Shaw와 D.Garlan, 소프트웨어 아키텍처: 새로운 분야에 대한 관점프렌티스 홀, 1996년
  6. ^ a b "Chapter 3: Architectural Patterns and Styles".

참고 문헌 목록

  • Avgeriou, Paris; Uwe Zdun (2005). "Architectural patterns revisited:a pattern language". 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, Germany, July.
  • Bass L.; Clements P.; Kazman R. (2005). Software Architecture in Practice: Second Edition. Addison-Wesley.