아키텍처 개요
Caffeine V3는 .NET 10 기반의 AAS-First IIoT 플랫폼 프레임워크입니다. 3-Tier 시스템 구조에 IEC 63278 AAS 레이어를 핵심으로 내장합니다.
🏗️ 시스템 전체 구조
📋 3-Tier 컴포넌트
| Tier | 컴포넌트 | 역할 | 핵심 기술 |
|---|---|---|---|
| Edge | Caffeine.Bridge.Host | 드라이버 동적 로드, 장비 통신, mDNS 광고, AAS Config | AssemblyLoadContext, Zeroconf |
| Core | Caffeine.Engine | 데이터 수집·처리·분석, AAS 매핑, Bridge 관리 | Rx.NET, gRPC, SignalR |
| AAS | Caffeine.AAS | AAS 도메인 모델, 프로토콜 서버, AutoTwin, 시리얼라이제이션 | IEC 63278, ECLASS IRDI |
| AAS | Caffeine.Aas.Mapping | 태그↔서브모델 양방향 매핑, SemanticId 체인 매퍼 | ChainedSemanticIdMapper |
| AI | Caffeine.AAS.Rag | RAG 기반 알람 분석, LLM 라우팅, 문서 임베딩 | ONNX Embedding, LLM |
| Presentation | Caffeine.Admin | Blazor 관제 대시보드, 알람 인텔리전스, Bridge Discovery | Blazor Server, Blazor Blueprint |
| SDK | Caffeine.Client | 외부 연동용 gRPC 클라이언트 | gRPC, IObservable |
🌐 AAS 레이어 (V3 핵심)
V3의 핵심은 모든 데이터 흐름에 AAS 표준 레이어가 내장된 것입니다.
| AAS 구성요소 | 모듈 | 설명 |
|---|---|---|
AasBuilder | Caffeine.AAS | Submodel Provider, Serializer, Mapper를 Fluent API로 구성 |
IdtaSemanticIds | Caffeine.AAS | IDTA 표준 Submodel Template URI + ECLASS IRDI 상수 |
SemanticIdCatalog | Caffeine.AAS | 5개 장비 카테고리별 센서→SemanticId 자동 매핑 (Pump, Motor, Compressor, HeatExchanger, Conveyor) |
ChainedSemanticIdMapper | Caffeine.Aas.Mapping | ECLASS→사용자정의→기본값 체인 매핑 전략 |
AasProtocolServer | Caffeine.AAS | IEC 63278 Part 2 준수 REST/MQTT 엔드포인트 |
AutoTwinService | Caffeine.AAS | Bridge 바인딩 시 디지털 트윈 자동 생성 |
ITagToSubmodelMapper | Caffeine.Aas.Mapping | Tag↔Submodel 양방향 실시간 매핑 |
🔧 주요 기술 스택
| 영역 | 기술 |
|---|---|
| Runtime | .NET 10 (net10.0) |
| 통신 | gRPC, SignalR, MQTT (MQTTnet), Kafka, REST |
| 시계열 DB | InfluxDB |
| 지식 그래프 | TypeDB |
| 캐시 | Redis |
| AI/ML | ONNX Runtime, ML.NET TimeSeries, RAG (Caffeine.AAS.Rag) |
| UI | Blazor Server + Blazor Blueprint |
| CLI | System.CommandLine, Spectre.Console |
| 관측성 | Serilog, OpenTelemetry (Prometheus) |
| 보안 | ASP.NET Core Identity, JWT |
🔌 드라이버 플러그인 시스템
IDriverModule 인터페이스를 구현하는 것만으로 새 장비를 지원합니다.
DLL을 drivers/ 폴더에 복사하면 런타임에 자동 로드됩니다.
지원 드라이버: SecsGem, Simulation, ModbusTcp, ModbusRtu, Mitsubishi, Omron, LSE
🚀 Bridge Discovery (Zero-Config)
mDNS/DNS-SD로 네트워크의 Bridge.Host를 자동 검색하고 1클릭으로 바인딩합니다. 바인딩 후 Heartbeat 모니터링이 자동 시작됩니다.
자세한 내용: Bridge Discovery API
내부 아키텍처 상세
시스템 내부 구현 상세, DI 전략, 레이어 가이드는 내부 문서에서 확인하세요.