13.4.1.2 Sources, Operators, Sinks 컴포넌트 선언 및 메모리 큐-TCP 소켓 링크(Link) 용접

13.4.1.2 Sources, Operators, Sinks 컴포넌트 선언 및 메모리 큐-TCP 소켓 링크(Link) 용접

어떤 거대하고 경이로운 딥러닝 AI 파이프라인조차도, 데이터가 태어나고(Source), 갈리고(Operator), 매장되는(Sink) 본질적 3단계 물류 흐름(Logistics)을 빗겨 갈 수는 없다. Zenoh-Flow 의 선언적 아키텍처는 이 물류 파이프라인의 핵심 도구를 YAML 매니페스트 상의 sources, operators, sinks 라는 엄격하고 이분법적인 선언 블록으로 규정한다.

이 노드들을 허공에 띄워 놓았다면, 다음 수순은 그 점들을 선으로 폭력적이리만치 묶어내는(Welding) 작업이다. 이 파이프라인 링크(Link)는 선언되는 즉시 내부 런타임에 의해 단말 내의 ’제로 카피 메모리 큐’나 지구 반대편을 뚫는 ’TCP/QUIC 소켓’으로 자동 캐스팅된다. 본 절에서는 세 가지 척추 컴포넌트의 철학과 데이터 흐름 채널의 용접 런북을 거행한다.

1. 3대 컴포넌트(Sources, Operators, Sinks)의 역할 철학

  • Sources (원천 노드): 시스템 외부에 존재하는 현실계의 정보를 파이프라인 내부로 끌어들이는 관문이다. 카메라 렌즈 바이너리, ROS2의 DDS 토픽, 혹은 데이터베이스의 폴링 결과가 여기에 해당한다. Source는 어떤 입력 포트(Input)도 지니지 않는다. 언제나 뿜어내야(Produce)만 하는 창조의 노드다.
  • Operators (연산자 노드): 입력과 출력을 동시에 가진 데이터의 가공 공장이다. 포인트 클라우드를 복셀화(Voxelizing)하거나, 프레임을 크롭(Crop)하고 딥러닝 추론을 태운다. 시스템의 스루풋과 지연(Latency)은 99% 이 오퍼레이터의 효율에서 결판난다.
  • Sinks (종단 노드): 모든 연산을 마친 결과를 현실의 액추에이터 명령으로 굽거나(모터 제어), 영구 저장 데이터 레이크(Data Lake)로 밀어 넣는다. Sink는 출력 포트(Output)를 지니지 않으며, 데이터 흐름이 영구히 소멸하는 무덤이자 엣지 컴퓨팅의 결론이다.

2. 노드 간 링크(Links) 선언과 파이프라인 용접(Welding)

세 가지 노드가 매니페스트(YAML) 상에 선언되었다면, links 블록을 동원하여 이 노드들의 배를 가르고 입과 항문을 관으로 직결시켜야 한다.

# [파이프라인 배관 직결 런북]
links:
  # Source에서 뿜어진 원시 프레임을 필터의 아가리로 꽂아 넣는다
  - from: 
      node: "camera_source"
      output: "RawFrame_Out"
    to:
      node: "grayscale_filter_operator"
      input: "ColorFrame_In"

  # 연산이 끝난 흑백 프레임을 최종 Sink(DB)로 유배 보낸다
  - from:
      node: "grayscale_filter_operator"
      output: "GrayscaleFrame_Out"
    to:
      node: "archiving_sink"
      input: "Data_In"

위의 디스크립터 선언은 아키텍트가 노드 사이의 결합을 묘사하는 설계도다. 하지만 이 문자열 links가 Zenoh-Flow 데몬에 주입되어 파싱되는 찰나, 백그라운드의 분산 런타임 엔진은 이 논리적 화살표를 극단적으로 효율적인 물리적 파이프라인으로 트랜스코딩(Transcoding)해 버린다.

3. 물리적 거리 인식에 따른 소켓(Socket)과 메모리 큐(MPSC) 자동 분기

Zenoh-Flow의 악마적 지능은 이 links 배관을 매핑할 때, 엮이게 될 양 끝단 노드 두 개(camera_sourcefilter_operator) 가 지구상 어디에 위치하는지 즉각적으로 탐지해 낸다는 점에 있다.

  • 로컬 병합(Local Fusion) 감지 시: 만일 두 노드가 우연히 똑같은 라즈베리 파이 단일 ボード(보드) 위에 떠 있다면?
    Zenoh 데몬은 운영체제의 느려 터진 TCP/UDP 소켓 배관을 열지 않는다. 즉시 C++ 공간의 단일 프로세스 메모리 공유 큐 (MPSC: Multi-Producer Single-Consumer Queue) 를 개통해 버린다. 데이터는 복사(Memory Copy)되지 않으며, 단지 8바이트 메모리 포인터 표찰만이 1나노초 단위로 오갈 뿐이다. 엄청난 CPU 절약이다.

  • 원격망 단절(Remote Separation) 감지 시: 반대로 카메라 소스는 한국의 로봇에 있고, 아카이빙 싱크는 도쿄 AWS의 컨테이너에 배치되어 있다면 데몬은 이 거리를 즉시 인지한다.
    그리고 이 배관을 Zenoh의 강력한 네트워크 TCP/QUIC 소켓 터널로 형질 변환시킨다. 그 기저에는 재전송, 브로커 우회 다이렉트 라우팅, 그리고 혼잡 제어(Congestion Control) 알고리즘이 결합되어 대륙 간 해저 케이블을 100ms 이내에 관통하는 파이프가 덧씌워진다.

“아키텍트는 오로지 데이터의 흐름(Flow)과 논리만을 지배할 뿐, 배관의 물리적 고뇌는 런타임 프레임워크에게 자비 없이 떠넘겨라(Delegate).” 이것이 선언적 그래프와 동적 링크 용접이 낳은 분산 시스템 혁명이다.