개요
설계 원칙: 제어와 데이터 책임 분리
CoBiz의 중요한 설계 포인트는 두 평면을 분리하는 것입니다.
- Control: CoBiz Server가 관리하는 도메인 상태, 정책, 인증, Workflow, Task, 운영 이벤트
- Data: Moth가 전달하는 영상, 오디오, 센서, 제어 Track
이 분리 덕분에 실시간 미디어 처리와 업무 도메인 상태 전이를 서로 다른 책임으로 운영할 수 있습니다.
시스템 구성요소
| 구성요소 | 역할 |
|---|---|
| CoBiz | 운영자 UI, 인증, 디바이스 관리, 워크플로우 실행, 전체 서버 컴포넌트 오케스트레이션 담당. |
| Device | 실제 로봇/에이전트. 센서 데이터를 Moth로 송출하고, Task를 할당받아 수행하며 CoBiz에 보고. |
| Moth | 실시간 데이터/이벤트 전달 허브. 디바이스 센서, 컨트롤 데이터, 서버 간 이벤트 메시지 중계. |
| TGDM | Moth 네트워크 스트림 녹화 솔루션. Moth의 스트림 URI를 받아 녹화 수행. |
| Mantis | AI 분석 파이프라인 서버. 특정 Track을 입력 받아 분석 스트림과 이벤트를 생성 |
시스템 아키텍쳐
데이터 교환 측면 : Moth 중심 연결 구조
Client, Server, Device, TGDM, Mantis는 모두 Moth에 연결된 주체입니다.
- Client ↔ Moth: 서버 이벤트 구독, Track 구독, 제어 메시지 발행
- Server ↔ Moth: 클라이언트용 이벤트 채널과 디바이스용 관리 채널 운용
- Device ↔ Moth: 영상, 오디오, 센서, 제어 Track 송수신
- TGDM ↔ Moth: 녹화 대상 스트림 URI 소비
- Mantis ↔ Moth: 분석 입력 스트림과 출력 참조 소비
오케스트레이션 : CoBiz 중심 구조
CoBiz Server가 도메인 상태를 관리하는 중심에 있고, 나머지 컴포넌트들이 Moth를 통해 데이터를 주고받습니다.
- Device는 Server에 등록되고 Task 진행 상황을 보고합니다.
- Server는 Device에 Task 실행과 운영 제어를 지시합니다.
- Server는 TGDM에 녹화 요청과 정책을 전달합니다.
- Server는 Mantis에 파이프라인 생성, 중지, 매핑 관리를 요청합니다.
- TGDM과 Mantis는 실제 데이터 소비 시 Moth의 Track URI를 사용합니다.
즉, 논리적 상호작용은 CoBiz Server를 중심으로 보이고, 실시간 전송 구현은 Moth가 담당합니다.
계층별 역할
CoBiz Client
- REST API로 디바이스, Workflow, Workflow Run, Task, 서버 설정을 조회·변경
/moth/events로 서버 이벤트 스트림 구독- 선택한 디바이스의 Track endpoint를 받아 Moth에 직접 연결
- 이벤트 기반으로 디바이스 상태, 현재 Task, Workflow 이력, AI 파이프라인 상태 갱신
CoBiz Server
- 디바이스 등록 시 토큰 발급
- 서버 설정(
device,tgdm,mantis)을 런타임에 관리 - Task, Workflow, Workflow Run 상태 전이 관리
- 디바이스 연결/해제 이벤트와 Task 이벤트를 바탕으로 후속 동작 수행
- Moth를 통해 클라이언트용 이벤트와 디바이스용 관리 메시지 발행
- TGDM, Mantis를 외부 연동 서비스로 호출
Device
- 발급받은 디바이스 토큰으로 자신의 Track을 식별
- Moth를 통해 영상, 오디오, 센서, 제어 채널 송수신
- Moth의 디바이스 채널에서
TASK_REGISTERED,HEALTHCHECK등을 수신 start,complete,reject,abortAPI로 Task 상태를 CoBiz Server에 보고- 헬스체크 응답 으로 heartbeat 전송
Moth
- 디바이스 Track의 실시간 중계
- 서버 이벤트용
clientTrack 제공 - 디바이스 관리용
deviceTrack 제공 - CoBiz Server, Client, Device, TGDM, Mantis를 느슨하게 연결하는 실시간 버스 역할 수행
TGDM / Mantis
- TGDM: Moth URI를 입력으로 받아 녹화 파일 생성
- Mantis: Moth URI를 입력으로 받아 AI 분석 스트림 생성