Files
mapo-core/MP.IOC
..
2024-11-04 08:58:51 +01:00
2026-06-03 18:23:12 +02:00
2023-02-14 17:51:55 +01:00
2023-02-14 17:16:51 +01:00
2026-04-10 12:34:09 +02:00
2023-04-05 09:32:09 +02:00
2023-04-04 19:36:47 +02:00
2026-06-03 18:23:12 +02:00

MP.IOC

MAPO IOC: WebApi rest per la gestione delle chiamate dagli applicativi remoti sul campo (IOB-PI su Raspberry Pi e IOB-WIN su PC Windows) che si occupano di comunicare con le varie macchine di processo i dati da trasmettere al MES.

È la nuova implementazione del modulo IO (il precedente era fatto in .NET Framework 4.7.2) su cui si sta dirigendo lo sviluppo della soluzione MES MAPO.

Integra raccolta di informazioni riguardo ai compiti svolti e questi sono ottimizzati per l'impiego di cache e ottimizzazioni varie su ogni strato del progetto.

Sezioni Principali

  • Api IOB (api/IOB) — endpoint principale per comunicazioni da campo (52 metodi)
  • Benchmark Redis (api/Bench) — tool di test per debugging Redis
  • Api Ricette (api/Recipe) — recupero ricette per PODL
  • Dashboard Blazor — interfaccia web interattiva

Architettura

Livello Controller (MP.IOC/Controllers/)

Controller Routing Methods Descrizione
IOBController api/IOB 52 Endpoint principale per IOB-PI/IOB-WIN
BenchController api/Bench 10 Test/benchmark Redis
RecipeController api/Recipe 2 API ricette (JSON)
RecipeArchiveController api/RecipeArchive 2 API archive ricette (file)

Livello Dati

Componente Tipologia Descrizione
MpDataService Singleton Service di accesso dati principale (~3475 righe)
MpIocController Singleton 82 metodi EFCore nel progetto MP.Data
Redis 2 connessioni redisConn, redisConnAdmin per dati IOB
MongoDB Via MpMongoController Storage ricette

Livello DbContext

DbContext ConnStr Uso
MoonProContext MP.Data Tabelle anagrafiche, ODL, produzione, macchine
MoonPro_UtilsContext MP.Utils Tabelle utility (VMSFD, MicroStati)
MoonPro_FluxContext MP.Flux FluxLog, configurazioni flusso

Livello DI

Registrato via AddIocDataLayer() in MP.Data/DataServiceCollectionExtensions.cs:

Singleton:  IMtcSetupRepository, IMtcSetupService, ProductionRepository, MpIocController, MpDataService, IFusionCacheSerializer
Scoped:     IIocRepository, IStatsAggrRepository, IStatsDetailRepository, IIocService, IStatsAggrService, IStatsDetailService

Livello Infrastruttura

  • FusionCache — L1 Memory only (1min default), NO Redis backplane
  • MessagePipe — Broadcasting real-time tra servizi
  • OpenTelemetry — Tracing configurabile (non abilitato in MP.IOC)
  • Swagger — Documentazione API in svilup

Refactoring Completati

Nessuno ancora. Il progetto è pronto per il refactoring. Vedi refactor_plan.md per il piano dettagliato.

Refactoring in Corso (Riferimento)

Piano Generale (Vedi refactor_plan.md)

  1. Fase 1 — Anti-Pattern (Quota completata): Rimuovere static IConfiguration dai 4 controller
  2. Fase 2 — FusionCache: Abilitare L2/L3 con Redis backplane e migrare i ~100 metodi di caching manuale
  3. Fase 3 — Repository IoC: Scomporre MpIocController (82 metodi) in 5-7 repository focalizzati
  4. Fase 4 — Scomposizione MpDataService: Il monolite da 3475 righe suddiviso in servizi tematici
  5. Fase 5 — Build & Verifica: Validazione finale su tutte le soluzioni

Stato attuale: In attesa di inizio Fase 1.