소프트웨어 아키텍처 - 22(Broker Architecture Style)

박승현·2023년 10월 15일
0

아키텍처

목록 보기
22/30
post-thumbnail

Broker Architecture Style

  • 개요
    • 등록된 서버와 클라이언트 간의 통신을 조정하고 용이하게 하기 위해 분산 컴퓨팅에서 사용되는 미들웨어 아키텍처
    • 원격 서비스 호출을 통해 상호 작용하는 분리된 구성 요소를 가진 분산 소프트웨어 시스템을 구조화하는데 사용될 수 있음
    • 브로커 구성 요소는 요청 전달과 결과 및 예외 전송과 같은 통신을 조정하는 역할을 담당

  • 다양한 종류의 구성 요소가 서로 협력하면서 독립적으로 작동함
  • 구조
    • 브로커는 호출 기반 서비스일 수도 있고 클라이언트가 브로커에 호출 요청을 보내는 서비스로 동작할 수도 있음
    • 또는 문서 또는 메시지 지향 브로커 일수도 있고 클라이언트가 메시지를 보내는(XML) 브로커로 동작할 수도 있음
    • 브로커를 통해 클라이언트 및 서버 구성요소가 분리되어 상호 작용함
    • 브로커 시스템은 프록시 기반 시스템이라고도 한다
    • 서버는 프로커에 자신의 인터페이스를 등록하여 클라이언트에 서비스를 제공
    • 클라이언트는 브로커에서 서버의 서비스를 정적, 동적으로 조회하여 요청
    • 브로커 구성 요소는 통신을 조정하는 역할을 담당

Broker - solution

  • 서버
    • 브로커에 등록
    • 클라이언트에게 메서드 인터페이스 제공
  • 클라이언트
    • 브로커를 통해 서버의 메서드에 엑세스
    • 서버의 메서드를 호출하는데 동일한 형식을 사용
  • 브로커
    • 적절한 서버를 찾음(Location)
    • 요청을 서버로 전달(Forwarding)
    • 결과 및 예외처리를 클라이언트에 전달(Transmitting)
  • Solution(1)
    • 참여 컴포넌트의 6가지 유형
      • 클라이언트, 서버, 브로커, 브리지, 클라이언트 프록시, 서버 프록시
        • 클라이언트 : 서비스나 기능을 요청
        • 서버 : 클라이언트의 요청에 응답, 서비스 제공
        • 브로커 : 클라이언트와 서버 간의 통신을 중재
        • 브리지 : 서로 다른 네트워크나 프로토콜 간에 통신을 연결하거나 변환
        • 클라이언트 프록시 : 클라이언트 측에서 서버와 통신을 지원
        • 서버 프록시 : 서버 측에서 클라이언트와 통신을 지원

브로커 아키텍처의 하위 구성 요소 분해

  • 브로커
    • 통신을 조정, 요청을 전달하고 응답을 반환 브로커는 모든 서버의 등록 정보를 저장(서버의 기능과 서비스, 위치 정보가 포함), 클라이언트가 요청과 서버의 응답, 서버 구성 요소의 등록 및 해제를 지원
  • 스텁(클라이언트 프록시)
    • 클라이언트와 브로커 간의 중재 역할, 그들 간의 투명성 제공
    • 프로토콜 수준에서 프로세스 간 통신을 숨김
    • 정적 컴파일시 생성되어 클라이언트의 프록시로 사용됨
    • 매개변수 값을 marshaling하고 서버의 결과를 unmarshaling
  • 스켈레톤(서버 프록시)
    • 서비스 인터페이스 컴파일시 정적으로 생성
    • 메서드 인수를 언마샬링하고 적절한 서비스를 호출, 서버로부터 결과를 수신해 결과를 클라이언트로 마샬링 후 보냄
  • 브릿지
    • 두 개의 브로커가 상호 운용할 때 구현 정보를 숨기는 데 사용되는 선택적인 구성 요소
    • 네트워크 세부 정보를 캡슐화, 요청 및 매개변수를 한 형식에서 다른 형식으로 번역
    • 서로 다른 통신 프로토콜을 기반으로 한 두 가지 다른 네트워크 연결 가능
  • 네트워크
    • 지정된 프로토콜을 사용하여 구성 요소를 연결

과정

  • 서버 등록
    • 브로커에 서버의 존재와 제공하는 서비스에 대한 정보 등록
  • 서비스 처리
    • 클라이언트가 브로커를 통해 특정 서버의 서비스를 요청, 브로커가 해당서버로 전달, 서버의 요청처리, 처리 결과를 브로커가 클라이언트에게 반환
  • 브릿지를 통한 서비스 처리
    • 브릿지를 사용한 서비스 처리 과정
  • Overall

CORBA (Common Object Request Broker Architecture)

  • 플랫폼 및 언어에 독립적인 미들웨어를 제공
  • CORBA 객체가 제공하는 서비스 및 작업은 인터페이스 정의 언어 (IDL)를 사용하여 명시되므로 클라이언트는 CORBA 객체의 구체적인 구현과 위치를 알 필요 없이 요청을 수행할 수 있음
  • OMG표준 개발 기구가 관리하는 COBRA 표준 및 관련 개념

브로커 아키텍처 장,단점

  • 장점
    • 서버 구성 요소의 구현 및 위치 투명성
    • 브로커 브릿지를 통한 상호 운영
      • 서로 다른 브로커 시스템 간에 브릿지를 통해 동시에 운용 가능
  • 단점
    • 프록시의 사용으로 인한 성능 저하
    • 시스템 내 오류를 감지하고 복구하는 것이 어려움
      • Low fault-tolerance
    • 프록시의 사용이 많아 시스템 테스트가 어려움

profile
KMU SW

0개의 댓글