JUNO 데이터 수집 온라인 소프트웨어의 SOA 설계
초록
본 논문은 차세대 중성미자 실험인 JUNO의 데이터 수집(DAQ) 시스템을 위한 온라인 소프트웨어를 서비스 지향 아키텍처(SOA) 기반으로 설계한다. ZeroMQ와 Google Protocol Buffers를 활용해 고성능 메시징과 통일된 데이터 포맷을 제공하고, 파티션·세그먼트 개념으로 다중 소규모 DAQ를 동시에 운영한다. 또한 데이터베이스 연계, 고가용성(HA) 설계 등을 통해 SPOF를 최소화한다.
상세 분석
JUNO 온라인 소프트웨어는 수천 개의 디지털 채널에서 발생하는 방대한 데이터를 실시간으로 수집·처리·제어해야 하는 복합 분산 시스템이다. 이를 위해 저자는 전통적인 중앙 브로커 모델을 배제하고, 서비스 간 직접 메시지 교환을 가능하게 하는 SOA 방식을 채택하였다. 핵심 통신 미들웨어로 ZeroMQ를 선택한 이유는 비동기 파이프라인, 멀티플렉싱, 로드 밸런싱 등 다양한 전송 패턴을 네이티브하게 지원하면서도 초저지연을 제공하기 때문이다. 메시지 직렬화에는 Google Protocol Buffers를 이용해 스키마 기반의 경량 바이너리 포맷을 정의함으로써 언어와 플랫폼에 구애받지 않는 데이터 교환을 구현한다.
시스템 구조는 ‘파티션(partition)’과 ‘세그먼트(segment)’라는 두 계층적 논리 단위를 도입한다. 파티션은 물리적 DAQ 클러스터를 의미하며, 각 파티션은 독립적인 제어·모니터링 영역을 갖는다. 세그먼트는 파티션 내부에서 기능별(예: 트리거, 이벤트 빌더, 데이터 로거) 서비스를 묶는 단위로, 필요에 따라 동적으로 추가·제거가 가능하도록 설계되었다. 이러한 구조는 실험 초기 단계에서 소규모 테스트 파티션을 운영하거나, 운영 중에 새로운 하드웨어를 손쉽게 통합할 수 있게 한다.
고가용성 측면에서는 서비스 복제와 자동 페일오버 메커니즘을 도입한다. 각 핵심 서비스는 다중 인스턴스로 배포되며, 상태 감시와 리더 선출을 통해 장애 발생 시 즉시 대체 인스턴스로 전환한다. 데이터베이스는 메타데이터와 비물리적 이벤트(예: 로그, 상태 변화)를 영구 저장하도록 설계돼, 시스템 복구와 사후 분석에 활용된다.
전체적으로 이 설계는 모듈화, 재사용성, 확장성을 극대화하면서도 실시간 성능 요구를 충족한다는 점에서 차세대 대형 실험 DAQ 시스템에 적용 가능한 모델을 제시한다.
댓글 및 학술 토론
Loading comments...
의견 남기기