Devxplorer – 세상을 분석하는 개발자의 탐험기

IT, 경제, 인물, 건강 – All Explored

Devxplorere 자세히보기

IT (IT)🤖🧠/Software Architecture

Architecture Style : 1.Batch Sequential, 2.Pipe and Filter, 3.Shared Repository Architecture Style, 4. Blackboard Architecture Style

데브엑스플로러 2024. 3. 11. 23:03
728x90
반응형

Data Flow에 대한 대표적인 Style은 Batch Sequential 와 Pipe and Filter Architecture Style이 있다. Architecture Style 은 Archtiecture Driver 를 달성하기 위해 Tactic 으로 선정될 수 있다. Architecture Style 은 문제에 대한 일반적인 해답이다. 시행착오를 통해 문제에 대한 해법으로 자리 잡은 것들이다.

1. Batch Sequential Architecture Style

Batch 라는 단어에서 힌트를 얻을 수 있다. 시스템에서 데이터를 일괄적으로 수행하는 아키텍처 스타일을 말한다. 이 스타일은 대량의 데이터를 한 번에 처리하고 결과를 모아서 반환한다. 따라서 User가 중간의 개입할 수 없다. Output을 받을 때까지 기다려야 한다. 데이터베이스 백업 작업이나 대량의 로그 데이터 분석이 필요한 시스템에 적합한 스타일이다. 이 방식은 효율성을 향상 시키고 프로세스를 단순화하며 각 작업에 필요한 시간과 리소스를 줄이기 위해 다양한 산업과 맥락에서 흔히 사용된다. 데이터를 실시간으로 처리하는 대신 일괄 처리 방식으로 수집하고 처리한다. Window System에서 Batch File 작성 후, 수행 시 중간에 사용자 개입이 불가능 하다. Batch File의 Command line이 순차적으로 한번에 수행되고, 결과 값을 사용자에게 출력해준다.

2. Pipe and Filter Architecture Style

데이터 처리를 파이프 라인과 필터로 연속적인 단계로 분절하여 처리하는 아키텍처 스타일이다. 이 스타일은 데이터 흐름을 일련의 필터를 통해 전달하고, 필터는 데이터를 입력 받아 제어하고 출력한다. 시스템을 모듈화하여 연결하여 데이터를 처리하는 방식을 나타낸다. 이러한 패턴은 복잡한 작업을 단순한 구성 요소로 나누어 처리할 때 유용하며, 특히 데이터 처리와 변환 작업에서 효과적이다.

Pipe 는 보통 Queue의 형태로 구현되며, Data가 흐르는 통로이다. Filter는 데이터를 입력 받아 제어하는 구성 요소이다. 각 Filter는 독립적으로 작동하며 특정 작업을 수행한다. 데이터의 변환이나, 필터링 등 제어하는 역할을 한다. 데이터는 단방향으로 흐르고, 각 Filter를 거친 Data가 다음 Filter로 전달하여 데이터가 순차적으로 처리된다.

데이터 처리를 모듈화 하여 각 필터를 개별적으로 설계하고 Test 할 수 있다. 구성요소간 의존성이 낮기 때문에 재사용과 유지 보수성이 높다.

  • Pipe : 데이터 스트림을 전달하는 연결 매개체이다. 일반적으로 파이프는 단방향 데이터 스트림을 나타내며, 한 모듈의 출력이 다른 모듈의 입력으로 연결된다. 이것은 데이터의 흐름을 지원하고 모듈 간 데이터를 전송하는 역할을 한다.
  • Filter : 데이터를 처리하고 변환하는 모듈을 나타낸다. 각 필터는 입력 데이터를 받아 특정 작업을 수행하고 결과를 출력으로 생성한다.

다음은 Data consistency와 Integrity 대한 Architecture Driver 를 달성하기 Architecture Style 이다. System 의 구성 요소는 Data를 Processing 한다. 시스템 내부에서 여러 구성 요소들이 동시에 Data 처리 하고자 동시에 Access 하는 경우가 존재한다. 이럴 경우 Data에 대한 consistency에 문제가 발생 할 수 있다. 이러한 문제를 풀기 위한 아키텍처 스타일이 존재한다.

3. Shared Repository Architecture Style

시스템에서 구성 요소 또는 모듈들이 하나의 공유된 저장소를 통해 데이터와 리소스를 공유하는 아키텍처 스타일이다. 구성 요소 간 상호작용을 통해 하나의 공유된 저장소의 데이터 일관성을 유지하기 위해 사용된다.

Shared Repositoy는 이 아키텍처 스타일의 핵심요소 이다. 데이터와 리소스를 보유하고 관리하는 역할을 담당한다. 여러 구성 요소들이 접근하여 데이터를 읽거나 쓰고자 한다. 하나의 Shared Repository를 여러 컴포넌트가 사용하기 때문에 Shared Repository에서 구성 요소간 통신을 원활하게 해주어야 데이터의 일관성과 동기화를 유지할 수 있다.

다중 사용자 환경에서 협업 시스템이나 데이터 중심 응용 프로그램 등에서 유용하게 활용될 수 있다. 데이터를 한 곳에서 중앙 처리하기 때문에 효율성과 일관성을 높일 수 있다. 그러나, 여러 구성 요소의 데이터에 대한 요청이 Shared Repository 한 곳에 집중되기 대문에 병목 현상이 발생 할 수 있다.

Shared Repository 에서 Data Accessor간 Traffic을 Fair하게 처리해야 한다.

4. Blackboard Architecture Style

시스템에서 복잡한 문제를 해결하기 위해 여러 구성 요소들이 Black board에 정보를 기록하고 이를 공유하여 상호 작용하는 아키텍처 스타일이다. 다양한 지식 및 전문성을 필요로 하는 도메인에 유용하다.

Blackboard는 전역적으로 접근 가능한 공유 저장소이다. Shared Repository와 다른 점은 이 Blackboard는 점진적으로 Data가 변경된다는 것이다. 전문가들에 의해 동적으로 업데이트 되며, 해결해야 할 문제를 제시함으로써 점점 더 만족스러운 해결책이 구성된다는 것이다.

이러한 특징으로 인공지능 분야의 의사 결정 시스템에 적용될 수 있다.

Control 부는 Blackboard 상태를 모니터링 하고 모듈 간의 상호작용을 관리한다. Control 부는 모듈의 실행 순서를 제어하고, 새로운 정보가 도착 하거나 충족 되었을 경우 모듈에게 알려 활성화 시킨다.

모듈은 Blackboard를 통해 정보를 교환하고 상호작용을 함으로써 상태를 파악하고 필요한 작업을 수행하여 시스템을 효과적으로 운영한다.

반응형