>일반적인 문제 >일반적인 소프트웨어 아키텍처에는 어떤 것이 있나요?

일반적인 소프트웨어 아키텍처에는 어떤 것이 있나요?

青灯夜游
青灯夜游원래의
2020-08-28 15:24:4018877검색

일반적인 소프트웨어 아키텍처 패턴: 계층형 아키텍처 패턴, 클라이언트-서버 패턴, 마스터-슬레이브 패턴, 파이프라인-필터 패턴, 프록시 패턴, 지점 간 패턴, 이벤트 버스 패턴, 모델-뷰-컨트롤러(MVC) 패턴, 칠판 모드, 통역 모드 등

일반적인 소프트웨어 아키텍처에는 어떤 것이 있나요?

10가지 일반적인 소프트웨어 아키텍처 패턴

대기업 수준 시스템이 어떻게 설계되었는지 알고 싶으십니까? 소프트웨어 본체가 개발되기 전에 필요한 기능과 품질 특성을 제공하는 적합한 아키텍처를 선택해야 합니다. 따라서 다양한 아키텍처를 디자인에 적용하기 전에 먼저 이해해야 합니다.


아키텍처 패턴이란 무엇입니까

Wikipedia: 아키텍처 패턴은 소프트웨어 아키텍처의 주어진 맥락에서 일반적인 문제에 대한 일반적이고 재사용 가능한 솔루션입니다. 아키텍처 패턴은 소프트웨어 디자인 패턴과 유사하지만 범위가 더 넓습니다.

이 글에서는 다음 10가지 일반적인 아키텍처 패턴의 적용, 장점, 단점을 간략하게 설명하겠습니다.

1. 레이어 모드
2. 클라이언트-서버 모드
3. 마스터-슬레이브 모드
4. 파이프 필터 모드
5. 에이전트 모드
6. 지점 간 모드
7. 이벤트 버스 모드
8. 모델 -뷰-컨트롤러 모드
9. 블랙보드 모드
10. 통역사 모드

1. 레이어 모드

이 모드는 여러 하위 작업 그룹으로 분해될 수 있는 프로그램을 구축하는 데 사용됩니다. 특정 수준의 추상화를 통해 각 계층은 이전 상위 계층에 서비스를 제공합니다. 일반정보시스템에서 가장 일반적인 4계층 시스템은 다음과 같다.

  • 프레젠테이션 레이어(UI 레이어라고도 함)
  • 애플리케이션 레이어(서비스 레이어라고도 함)
  • 비즈니스 로직 레이어(도메인 레이어라고도 함)
  • 데이터 액세스 레이어(지속성 레이어라고도 함)
애플리케이션 시나리오
  • 일반 데스크톱 프로그램
  • 전자상거래 웹 프로그램


2. 클라이언트-서버 모드

이 모드는 단일 서버와 다중 클라이언트의 두 부분으로 구성됩니다. 서버 구성 요소는 여러 클라이언트 구성 요소에 서비스를 제공합니다. 클라이언트는 서버에 서비스를 요청하고, 서버는 해당 클라이언트에 해당 서비스를 제공합니다. 또한 서버는 계속해서 클라이언트 요청을 수신합니다.

애플리케이션 시나리오

  • 이메일, 문서 공유 및 뱅킹과 같은 온라인 애플리케이션


3. 마스터-슬레이브 모드

이 모드는 두 부분으로 구성됩니다: 마스터 노드 그리고 여러 슬레이브 노드. 마스터 노드 구성 요소는 여러 개의 독립적인 슬레이브 노드 구성 요소에 작업을 디스패치하고 슬레이브 노드에서 반환된 결과를 기반으로 최종 결과를 계산합니다. 4. 파이프 필터 패턴

이 패턴은 데이터 흐름을 생성하고 처리하는 시스템을 구축하는 데 사용됩니다. 각 처리 단계는 필터 구성 요소에 캡슐화됩니다. 처리할 데이터는 버퍼링이나 동기화에 사용될 수 있는 파이프로 전송됩니다.

  • 애플리케이션 시나리오
컴파일러, 연속 필터는 단어 의미 분석, 구문 분석, 의미 분석 및 코드 생성을 수행합니다.

바이오데이터 규율 워크플로

5.

이 패턴은 분리된 구성 요소로 분산 시스템을 구축하는 데 사용됩니다. 이러한 구성 요소는 원격 호출을 통해 서로 상호 작용합니다. 프록시 구성 요소는 여러 구성 요소의 통신 조정을 담당합니다. 서버는 해당 기능(서비스 및 기능)을 프록시에 노출한 다음 클라이언트를 등록된 적절한 서비스로 리디렉션합니다. 서비스 라이브러리.

애플리케이션 시나리오
  • Apache ActiveMQ, Apache Kafka, RabbitMQ 및 JBoss Messaging과 같은 메시지 대기열 소프트웨어


6. 피어 투 피어 모드

이 모드에서는 각 독립 구성 요소를 피어라고 합니다. 피어는 다른 피어로부터 서비스를 얻기 위해 클라이언트 역할을 하거나 다른 피어에게 서비스를 제공하기 위해 서버 역할을 할 수 있습니다. 피어는 클라이언트, 서버 또는 둘 다의 역할을 할 수 있으며 언제든지 동적으로 역할을 전환할 수 있습니다.

애플리케이션 시나리오

  • Gnutella 및 G2와 같은 파일 공유 네트워크
  • P2PTV 및 PDTP와 같은 멀티미디어 프로토콜
  • Spotify와 같은 개인 미디어 프로그램


7 .이벤트 버스 모드

이 모드는 주로 이벤트를 처리하며 이벤트 소스, 이벤트 리스너, 채널 및 이벤트 버스의 4가지 주요 구성 요소로 구성됩니다. 이벤트 소스는 이벤트 버스의 채널에 메시지를 게시하고, 리스너는 채널을 구독하고 구독된 채널에 게시된 메시지에 대해 학습합니다. Application Application Sinarios arAndroid Development

Onotification Service

  • 8이 패턴을 MVC 모드라고도합니다. 3 세 부분으로 구성됩니다. 모델 - 핵심 기능과 데이터가 포함되어 있습니다. 보기 - 사용자에게 정보를 표시합니다(여러 보기를 정의할 수 있음). 컨트롤러 - 사용자 입력을 처리합니다. 이는 사용자 정보의 내부 표현을 표시 및 수신하는 방식에서 분리하고 구성 요소를 분리하며 효율적인 코드 재사용을 허용함으로써 이를 수행합니다.


애플리케이션 시나리오

주요 프로그래밍 언어의 World Wide Web 프로그램 아키텍처Django 및 Rails와 같은 웹 페이지 프레임워크


    9. 이 모델에는 결정론적인 해결책이 없습니다. 전략에 관한 질문은 유용합니다. 블랙보드 패턴은 솔루션 공간 개체를 포함하는 구조화된 전역 메모리인 블랙보드, 자체 표현이 있는 특수 모듈인 지식 소스, 선택, 구성 및 실행 모듈인 제어 구성 요소라는 세 가지 주요 구성 요소로 구성됩니다. 모든 구성 요소는 칠판에 접근할 수 있으며 새 데이터 개체를 생성하여 칠판에 추가할 수 있습니다. Blackboard에서는 기존 지식 소스의 일치 규칙을 기반으로 특정 유형의 데이터를 찾을 수 있습니다.
  • 응용 시나리오


음성 인식

차량 식별 및 추적단백질 구조 식별소나 신호 해석


    10.
  • 이 모드는 다음 용도로 사용됩니다. 특정 언어로 작성된 프로그램을 해석하는 구성요소를 설계합니다. 이 구성요소는 주로 특정 언어로 작성된 명령문 또는 표현식인 프로그램 코드의 행을 평가하는 방법을 지정합니다. 기본 요점은 언어 기호를 분류하는 것입니다.
  • 애플리케이션 시나리오


SQL과 같은 데이터베이스 쿼리 언어

통신 프로토콜을 설명하는 데 사용되는 언어


아키텍처 패턴 비교

    아래 표는 각 아키텍처 패턴을 요약한 것입니다. 그리고 단점.

이 기사가 도움이 되었기를 바라며 여러분의 생각을 듣고 싶습니다. 읽어주셔서 감사합니다. ^_^

위 내용은 일반적인 소프트웨어 아키텍처에는 어떤 것이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.