3eung_h10n.log
로그인
3eung_h10n.log
로그인
소프트웨어 아키텍처 - 28(Non-buffered Event-Based Implicit Invocations Architecture Style)
박승현
·
2023년 10월 16일
팔로우
0
아키텍처
목록 보기
28/30
Non-buffered Event-Based Implicit Invocations Architecture Style
구조
두 파트로 분리
이벤트 소스(이벤트 발생)와 이벤트 리스너(이벤트가 발생하면 이를 처리할 수 있는 객체 또는 함수)
이벤트 등록 프로세스
이벤트 소스와 이벤트 리스너 간의 등록 프로세스가 중요
리스너는 특정 이벤트를 처리하려고 할 때 해당 이벤트 소스에 등록
등록 프로세스를 통해 두 파트 간의 연결이 이루어짐
버퍼 없는 통신
중요한 특징은 두 파트 간에 버퍼가 없다는 것
이벤트가 발생하면 이벤트 소스에서 직접 리스너에게 전달
사용자 정의 이벤트 소스 및 이벤트 수신자를 위한 클래스 다이어그램
사용자가 정의한 이벤트 소스와 이벤트 수신자를 나타내는 다이어그램
이벤트 소스
사용자가 정의한 이벤트를 생성 및 발생
이벤트 수신자
사용자가 정의한 이벤트를 수신 및 처리
이벤트 클래스
발생하는 각각의 이벤트를 나타냄
이벤트 소스와 이벤트 수신자 간의 상호 작용
화살표로 나타냄
다중 스레드
병렬 및 동시성 향상
Non-buffered Event-Based
oracle developer 데이터베이스 애플리케이션
트리거 함수로 데이터베이스 내의 이벤트나 조건이 충족될 떄 다른 작업을 트리거
IDE for CASE도구(통합 개발 환경)
코드 편집 컴파일 디버깅 등의 이벤트에 기반 트리거 발생
디버깅 처리
디버깅 도구에서 중단점에 도달하면 이벤트가 발생
재고 관리 시스템
사용자가 특정 주식의 상한 하한 임계값 설정
임계값 도달시 이벤트 발생
적용 도메인
상호작용하는 GUI컴포넌트 간의 통신 및 IDE도구
컴포넌트 간에 느슨한 결합이 필요하며 비동기 작업을 트리거해야 하는 어플
State Machine구현
응용 프로그램 내에서 이벤트 처리가 예측하기 어려운 경우
장,단점
장점
컴포넌트의 재사용
새로운 이벤트 핸들러를 쉽게 플러그인 가능
시스템 유지 보수 및 진화
이벤트 소스와 타겟 모두 업데이트하기 쉬움
독립성 및 유연한 연결
실행 중에 동적으로 이벤트 등록 및 해제 가능
이벤트 처리의 병렬 실행
이벤트 핸들링 작업은 병렬 실행 가능
제한사항(단점)
이벤트 소스와 리스너 간의 응답 및 응답 순서 예측이 어려워 디버깅이 힘듬
버퍼 없는 이벤트 기반 시스템에서 메시지 큐 또는 메시지 토픽을 사용하면 소스와 리스너 간의 결합이 강해질 수 있음
박승현
KMU SW
팔로우
이전 포스트
소프트웨어 아키텍처 - 27(Implicit Asynchronous Communication Software Architecture)
다음 포스트
소프트웨어 아키텍처 - 29(Buffered MessageBased Architecture Style)
0개의 댓글
댓글 작성