소프트웨어 아키텍처 - 27(Implicit Asynchronous Communication Software Architecture)

박승현·2023년 10월 16일
0

아키텍처

목록 보기
27/30
post-thumbnail

Implicit Asynchronous Communication Software Architecture

  • 구조
    • 시스템을 두 파트로 나누는데 중점을 둠
      • 하나는 이벤트 또는 메시지를 발표하거나 전송하는 publisher(발행자)
      • 다른 하나는 이벤트 또는 메시지에 대한 관심을 등록하고 처리하는 subscriber(구독자)
  • 통신방식
    • 위의 두 파트간의 통신은 동기적, 비동기적 방식 중 하나로 이루어짐
      • 일대일 통신 : 단일 수신자 및 단일 송신자 메시지 큐 사용
      • 일대다 통신 : 하나의 송신자가 여러 수신자에게 메시지를 전달
      • 다대일 통신 : 여러 송신자가 단일 수신자에게 이벤트를 전달
    • 동기적 vs 비동기적 통신
      • 동기적 : 요청과 응답이 서로 연결되어 있어 요청을 보낸 후 응답을 받을 때까지 대기
      • 비동기적 : 요청과 응답이 실시간으로 연결되어 있지 않아 요청을 보낸 후 다른 작업을 수행하면서 응답을 기다리지 않음

Explicit vs Implicit Invocation

  • Explicit(명시적 호출)
    • 프로그램 또는 시스템이 직접 특정 함수 메소드를 호출
    • 프로그래머가 명시적으로 호출할 함수나 메소드를 선택, 인수를 전달
  • Implicit(암시적 호출)
    • 프로그램 또는 시스템이 이벤트 또는 메시지를 발생 시키고 해당 이벤트 메시지를 처리할 핸들러는 미리 등록된 구독자 또는 리스너 중에서 자동으로 선택
    • 버튼 클릭 또는 데이터 도착 같은 이벤트 발생 시 이벤트 핸들러가 자동으로 호출
    • 이벤트 기반 시스템에서 유용, 시스템의 유연성과 확장성 향상

Implicit Asynchronous Communication Architecture

  • 암시적 비동기 아키텍처
  • Non-buffered Event-based
    • 이벤트 핸들러 또는 구독자와 이벤트 발생자 또는 발행자 간의 통신을 나타냄
    • 이벤트는 바로 발생자에서 핸들러로 전달, 이벤트 발생 즉시 핸들어가 호출됨
  • Buffered Messaged-based
    • 이벤트 또는 메시지를 버퍼에 저장, 이를 나중에 처리할 때 사용
    • 이 모드에서 이벤트 또는 메시지는 발생자에서 버퍼에 저장 관련된 구독자 또는 수신자가 이벤트 또는 메시지를 필요할 떄까지 대기 후 처리
    • 메시지 큐(1대1) 메시지 토픽(1대다)가 이에 해당

Implicit Asynchronous Communication Software Architecture

  • 이벤트 발행자-구독자 패턴과 생산자-소비자 패턴

    • 이벤트(메시지)를 발행자 와 구독자 간에 주고받는 아키텍처 패턴을 나타냄
    • 구독자는 발행자가 발행한 이벤트 또는 메시지에 관심을 가짐
    • 구독자는 이벤트 소스(발행자)에 자신을 등록
    • 등록된 이후 이벤트 발행자에서 이벤트가 발생하면 해당 이벤트를 수신하는 구독자에게 알려줌
    • 이벤트 발생시 모든 구독자가 알림을 받고 각 구독자는 해당 이벤트에 대한 조치를 취함
    • 각 구독자는 실행할 작업을 결정
  • 메시지 큐 및 메시지 토픽은 일반적으로 버퍼링된 비동기 아키텍처의 예

    • 구독자는 관심 있는 이벤트를 이벤트 소스에 등록
    • 이벤트가 버퍼링된 메시지 큐 또는 토픽에 사용 가능해지면 해당 이벤트 또는 메시지가 발생
    • 메시지 큐는 일대일 또는 지점간 아키텍처로 메시지 발신자와 수신자 간의 통신을 나타냄
    • 메시지 토픽은 하나의 발행자와 여러 구독자 간의 일대다 아키텍처

profile
KMU SW

0개의 댓글