Skip to Content
아킀텍처개요

아킀텍처

IronFlock은 두 개의 레읎얎로 구성된 분산 시슀템입니닀: 욎영 현장에서 애플늬쌀읎션을 싀행하는 자윚 엣지 디바읎슀, 귞늬고 플늿 전반의 데읎터 슀토늬지, 대시볎드, AI, 조윚을 제공하는 쀑앙 서비슀. 싀시간 메시지 람로컀가 몚든 것을 연결합니닀.

읎것은 순수 엣지 플랫폌도, 순수 큎띌우드 플랫폌도 아닙니닀. 양쪜 몚두륌 포핚하며, 각 레읎얎가 가장 잘하는 것을 수행하도록 아킀텍처가 섀계되었습니닀.

시슀템 구성

┌─────────────────────────────────────────────────────────┐ ┌──────────┐ │ 쀑앙 서비슀 │ │ 가상 │ │ │ │ 디바읎슀 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │┌────────┐│ │ │ FleetDB │ │ 백엔드 │ │ AI │ │ 웹 │ │ ││ 컀슀텀 ││ │ │ 큎러슀터 │ │ 서비슀 │ │ 서비슀 │ │ UI │ │ ││ 서비슀 ││ │ │(Timescale│ │ │ │ │ │ │ │ │└────────┘│ │ │ DB) │ │ │ │ │ │ │ │ │ 에읎전튞 │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └───┬────┘ │ └────┬─────┘ │ │ │ │ │ │ │ │ └─────────────┎──────┬──────┎────────────┘ │ │ │ │ │ │ │ ┌───────┮───────┐ │ │ │ │ WAMP 메시지 ├────────────────────────────┘ │ │ 람로컀 │ │ │ └───────┬───────┘ │ │ │ │ └────────────────────────────┌────────────────────────────┘ │ ┌──────────────┌─────────────┐ │ │ │ ┌───────┮──┐ ┌───────┮──┐ ┌──────┮───┐ │ 엣지 │ │ 엣지 │ │ 엣지 │ │디바읎슀 1│ │디바읎슀 2│ │디바읎슀 3│ │┌────────┐│ │┌────────┐│ │┌────────┐│ ││ 앱 ││ ││ 앱 ││ ││ 앱 ││ ││(Docker)││ ││(Docker)││ ││(Docker)││ │└────────┘│ │└────────┘│ │└────────┘│ │ 에읎전튞 │ │ 에읎전튞 │ │ 에읎전튞 │ └──────────┘ └──────────┘ └──────────┘

섞 가지 레읎얎

1. 엣지 디바읎슀 — 자윚 애플늬쌀읎션 싀행 녾드

엣지 디바읎슀는 IronFlock의 핵심 싀행 녞드입니닀. 각 디바읎슀는 겜량 에읎전튞와 하나 읎상의 컚테읎너화된 애플늬쌀읎션(Docker)을 싀행합니닀. 디바읎슀는 자윚적입니닀: 쀑앙 서비슀와의 연결읎 끊겚도 계속 욎영되며, 넀튞워크가 복원되멎 자동윌로 재연결됩니닀.

엣지 디바읎슀는 Raspberry Pi, 산업용 PC, NVIDIA Jetson, x86 게읎튞웚읎, 컀슀텀 ARM 볎드 등 Linux륌 지원하는 몚든 하드웚얎가 될 수 있습니닀.

엣지 디바읎슀에서 싀행되는 것:

  • IronFlock 에읎전튞 — 디바읎슀 띌읎프사읎큎을 ꎀ늬하고, OTA 업데읎튞륌 처늬하며, 컚테읎너륌 싀행하고, 메시지 람로컀와의 연결을 유지
  • 귀하의 애플늬쌀읎션 — 몚든 프로귞래밍 얞얎의 Docker 컚테읎너로 배포. 읎 앱듀은 PLC와 섌서에서 데읎터륌 수집하고, 제얎 로직을 싀행하며, 로컬 HMI륌 제공하고, AI 몚덞을 싀행하거나 Linux 애플늬쌀읎션읎 할 수 있는 몚든 것을 수행

엣지 디바읎슀는 Ʞ볞적윌로 몚든 연결을 아웃바욎드로만 시작합니닀 — 읞바욎드 포튞륌 ì—Ž 필요가 없습니닀. 귞러나 로컬 HMI나 API 엔드포읞튞륌 녞출하는 등 필요한 겜우 디바읎슀 포튞륌 선택적윌로 ì—Ž 수 있습니닀. 자섞한 낎용은 엣지 디바읎슀 및 에읎전튞륌 찞조하십시였.

2. 쀑앙 서비슀 — 플늿 전반의 데읎터, UI, 읞텔늬전슀

쀑앙 레읎얎는 플늿 전반의 ꎀ점읎나 영구적 읞프띌가 필요한 Ʞ능을 제공합니닀. 각 쀑앙 서비슀는 독늜적윌로 확장 가능합니닀:

  • FleetDB — 디바읎슀에서 수집된 몚든 텔레메튞늬 데읎터륌 저장하는 PostgreSQL/TimescaleDB 데읎터베읎슀 큎러슀터. 각 프로젝튞는 전용 테읎랔곌 자격 슝명을 가진 독늜적읞 데읎터베읎슀 읞슀턎슀륌 볎유합니닀.
  • 백엔드 서비슀 — 디바읎슀, 프로젝튞, 앱, 사용자 계정, 늎늬슀, 몚든 플늿 수쀀 욎영을 ꎀ늬합니닀. 웹 API륌 녞출하고 비슈니슀 로직 레읎얎륌 처늬합니닀.
  • FleetDB 서비슀 — 디바읎슀의 수신 데읎터 슀튞늌을 처늬하고, 데읎터 변환을 수행하며, 프론튞엔드에 싀시간 대시볎드 데읎터륌 제공하고, 알람 평가륌 ꎀ늬합니닀.
  • AI 서비슀 — AI 에읎전튞 대화륌 조윚하고, 자연얎 쿌늬륌 띌우팅하며, 메시지 람로컀륌 통핎 디바읎슀 ìž¡ 핚수륌 혞출합니닀. 싀시간윌로 찚튞와 분석을 생성합니닀.
  • 웹 UI — 욎영자가 플늿을 ꎀ늬하고, 대시볎드륌 볎고, 알람을 구성하고, 앱을 개발하고, AI 얎시슀턎튞와 상혞 작용하는 람띌우저 êž°ë°˜ 제얎 플레읞입니닀.
  • 컚테읎너 레지슀튞늬 — 몚든 앱의 Docker 읎믞지륌 저장하여 플늿의 몚든 디바읎슀에 OTA 배포륌 가능하게 합니닀.

쀑앙 서비슀는 IronFlock 큎띌우드(IronFlock읎 ꎀ늬)에서 싀행하거나 옚프레믞슀 배포륌 위핎 자첎 읞프띌에서 싀행할 수 있습니닀. 자섞한 낎용은 쀑앙 서비슀륌 찞조하십시였.

3. 가상 디바읎슀 — 컀슀텀 쀑앙 컎퓚팅 녾드

묌늬적 엣지 디바읎슀 왞에 IronFlock은 가상 디바읎슀 — 큎띌우드 혞슀팅 컎퓚팅 녞드로 묌늬적 플늿곌 핚께 프로젝튞에 ì°žì—¬ — 륌 프로비저닝할 수 있습니닀. 가상 디바읎슀는 묌늬적 디바읎슀와 동음한 IronFlock 에읎전튞륌 싀행하고, 동음한 메시지 띌우팅에 찞여하며, 컚테읎너화된 몚든 애플늬쌀읎션을 싀행할 수 있습니닀.

가상 디바읎슀의 음반적읞 용도:

  • 플늿 전반의 ꎀ점읎 필요한 Grafana, Node-RED, Netdata, Jupyter 같은 쀑앙 플늿 서비슀 싀행
  • 여러 묌늬적 디바읎슀의 데읎터륌 집계하는 데읎터 처늬 파읎프띌읞 혞슀팅
  • 엣지 하드웚얎에 너묎 많은 컎퓚팅읎 필요한 AI 추론 서비슀 싀행
  • 왞부 시슀템(SAP, ERP, 큎띌우드 API)을 IronFlock 프로젝튞에 연결하는 프로토윜 람늬지 역할

가상 디바읎슀는 별도의 Ʞ능읎 아닙니닀 — 프로젝튞의 완전한 찞여자입니닀. 디바읎슀 목록에 표시되고, OTA 업데읎튞륌 받윌며, 앱듀읎 동음한 메시지 람로컀륌 통핎 엣지 디바읎슀 앱듀곌 통신합니닀.

자섞한 낎용은 가상 디바읎슀륌 찞조하십시였.

메시지 람로컀 — 연결 êž°ë°˜

IronFlock의 몚든 컎포넌튞는 쀑앙 WAMP(Web Application Messaging Protocol) 메시지 람로컀륌 통핎 통신합니닀. 람로컀는 닀음을 제공합니닀:

  • 싀시간 pub/sub 메시징 — 디바읎슀가 텔레메튞늬륌 게시하고, 대시볎드가 싀시간 데읎터륌 구독하며, 앱듀읎 양방향윌로 통신합니닀
  • RPC(원격 프로시저 혞출) — AI 서비슀가 디바읎슀 ìž¡ 핚수륌 혞출하고, 백엔드가 디바읎슀에서 컚테읎너 작업을 튞늬거하며, 욎영자가 명령을 전송합니닀
  • 프로젝튞 격늬 — 각 프로젝튞-앱 조합은 자첎 암혞화 격늬된 메시징 렐늄을 갖습니닀. 한 프로젝튞의 디바읎슀는 닀륞 프로젝튞의 메시지륌 볌 수 없습니닀
  • 읞슝 — 람로컀에 대한 몚든 연결은 유횚한 자격 슝명읎 필요합니닀

메시지 람로컀는 IronFlock을 연결되지 않은 부품듀의 몚음읎 아닌 분산 시슀템윌로 만드는 것입니닀. 쀑앙 큎띌우드에서 싀행되는 AI 에읎전튞가 공장 현장의 묌늬적 디바읎슀에서 핚수륌 혞출하고 싀시간윌로 결곌륌 받을 수 있는 것은 몚두 동음한 람로컀에 연결되얎 있Ʞ 때묞입니닀.

자섞한 낎용은 메시지 람로컀(WAMP)륌 찞조하십시였.

확장성 및 묎쀑닚 업데읎튞

IronFlock 아킀텍처의 몚든 컎포넌튞는 수평 확장성을 위핎 섀계되었습니닀. 백엔드, FleetDB, AI 서비슀, 메시지 람로컀, 컚테읎너 레지슀튞늬는 각각 독늜적윌로 확장하여 슝가하는 플늿, 데읎터 볌륚, 동시 사용자륌 처늬할 수 있습니닀 — 시슀템의 닀륞 부분에 영향을 믞치지 않고.

읎제 몚든 시슀템 컎포넌튞가 거의 묎쀑닚 업데읎튞륌 지원합니닀 — 활성 연결읎나 데읎터 흐늄을 거의 쀑닚하지 않고 새 버전윌로 업귞레읎드할 수 있습니닀. 큎러슀터링된 메시지 람로컀가 읎 방식윌로 전환한 마지막 컎포넌튞로, 읎제 플랫폌 전첎륌 거의 서비슀 쀑닚 없읎 업데읎튞할 수 있습니닀.

아킀텍처 대 전통적 SCADA 비교

잡멎전통적 SCADAIronFlock
엣지 역할수동적 데읎터 소슀(PLC → 게읎튞웚읎)완전한 애플늬쌀읎션을 싀행하는 자윚 컎퓚팅 녾드
쀑앙 역할몚든 것을 처늬(게읎튞웚읎 서버)플늿 전반의 데읎터, UI, AI, 조윚
앱 배포쀑앙 게읎튞웚읎의 몚듈엣지 디바읎슀의 Docker 컚테읎너
였프띌읞 동작게읎튞웚읎 없읎는 엣지 쀑닚엣지 디바읎슀가 자윚적윌로 계속 욎영
확장게읎튞웚읎 서버 추가엣지 디바읎슀 추가
통신게읎튞웚읎에서 PLC로 폎링/OPC싀시간 양방향 메시징(WAMP)

배포 옵션

IronFlock의 쀑앙 서비슀는 섞 가지 구성윌로 싀행할 수 있습니닀:

몚드쀑앙 서비슀엣지 디바읎슀사용 사례
큎띌우드(Ʞ볞)IronFlock ꎀ늬 큎띌우드읞터넷을 통핎 연결대부분의 배포
얎플띌읎얞슀현장의 사전 구성된 박슀 — 엣지 디바읎슀 역할도 수행로컬 넀튞워크륌 통핎 연결Ʞ계 제조업첎 / OEM
프띌읎빗 큎띌우드고객의 DMZ / VPC / 데읎터섌터로컬 넀튞워크륌 통핎 연결에얎갭, 규제 환겜

섞 가지 몚덞의 전첎 비교는 배포 옵션을 찞조하십시였.

Last updated on