Salta ai contenuti

Panoramica Connettori

I Connettori sono i blocchi costitutivi dei flussi di lavoro Meddle. Ogni connettore è un componente specializzato che può leggere dati da fonti, scrivere dati su destinazioni o elaborare e trasformare dati in transito.

I connettori sono collegati insieme in un editor di flusso di lavoro visuale per creare potenti pipeline di integrazione dati senza scrivere codice.

Meddle fornisce 44 diversi tipi di connettori organizzati in tre categorie principali:

Connettiti a sistemi di automazione industriale, PLC ed esegui analisi industriali:

OPC UA

Protocollo standard industriale per l’automazione industriale. Supporta più metodi di autenticazione e modalità di sicurezza.

Modbus

Comunicazione seriale e TCP con PLC e dispositivi industriali. Supporta tutti i tipi di registro e formati dati.

Siemens S7

Comunicazione diretta con PLC Siemens S7-300, S7-400, S7-1200 e S7-1500.

Logix

Comunicazione PLC Allen-Bradley/Rockwell via protocollo EtherNet/IP (CIP).

CoAP

Constrained Application Protocol per dispositivi IoT a risorse limitate.

gRPC

Chiama servizi gRPC remoti con TLS e polling configurabile per integrazioni industriali.

ISA-18.2

Macchina a stati per la gestione degli allarmi secondo lo standard ISA-18.2 con deadband e ritardi on/off.

OEE

Calcola l’Overall Equipment Effectiveness (Disponibilità × Prestazioni × Qualità) su finestre mobili o per turno.

OPC UA PubSub

Ricevi e invia messaggi OPC UA PubSub su trasporti MQTT o UADP (UDP multicast).

Manutenzione Predittiva

Calcola la Vita Utile Residua e score di salute da trend di segnale utilizzando regressione, moving average o EWMA.

PROFINET

Leggi e scrivi variabili da dispositivi PROFINET IO su DCE/RPC.

UNS

Costruisci gerarchie di topic Unified Namespace ISA-95 con output SparkplugB o JSON.

Integrazione con protocolli IoT, broker di messaggi e database:

MQTT

Messaggistica publish/subscribe per dispositivi IoT con supporto QoS (MQTT v3).

HTTP/REST

Connettiti a API REST e servizi web con header e metodi personalizzabili.

InfluxDB

Database time-series ottimizzato per dati industriali e IoT.

MongoDB

Database NoSQL a documenti per archiviazione dati flessibile.

SQL

Supporto per database MySQL, PostgreSQL e SQL Server.

Redis

Data store in memoria per caching e code dati in tempo reale.

Firebase

Google Cloud Firestore per storage documenti NoSQL scalabile.

AMQP

Publish/subscribe AMQP 0.9.1 di RabbitMQ con binding di exchange/coda e TLS.

Kafka

Publish/subscribe Apache Kafka con consumer group e autenticazione SASL.

MQTT v5

MQTT 5.0 con sottoscrizioni condivise, user properties e message expiry.

NATS

Publish/subscribe NATS con queue group e credenziali token o JWT.

S3

Reader e writer per object storage AWS S3 (o compatibile S3) con template di chiave.

Trasforma, filtra, instrada ed elabora dati in transito:

Filter

Whitelist o blacklist di chiavi dati specifiche.

Conveyor

Passa i dati senza modifiche per routing many-to-many.

Merge

Combina dati da più fonti con strategie basate su timing o chiavi.

Reshape

Rinomina campi o arricchisci dati con valori statici.

Trigger

Logica condizionale utilizzando espressioni MXL.

Cron

Pianifica il rilascio dei dati in momenti specifici.

Auth

Autenticazione e validazione JWT.

Anomaly Detection

Rilevamento anomalie basato su ML utilizzando Isolation Forest.

Alert

Invia notifiche basate su condizioni.

Chart

Visualizzazione dati in tempo reale.

Aggregation

Aggregazione su finestra (sum, avg, min, max, count) su finestre tumbling, sliding o count.

File Format

Analizza e serializza payload CSV e XML.

Notification

Invia notifiche a Slack, Microsoft Teams, Email, Microsoft 365 o webhook.

OnChange

Deduplica gli stream emettendo solo quando le chiavi monitorate cambiano oltre una tolleranza.

Protocol Translator

Converti tra JSON flat, JSON annidato, SparkplugB e OPC UA JSON.

Rate Limiter

Throttle token-bucket con strategia di drop o coda limitata.

Router

Routing condizionale basato su espressioni MXL con un tag _route.

Script

Esegui script Lua in sandbox con un timeout configurabile.

Transform

Estrai o calcola campi con JSONPath, template Go o valori statici.

Validation

Validazione di tipo, range e regex con azioni di drop, forward o tag.

Tutti i connettori scambiano dati utilizzando un formato payload standard chiave-valore:

{
"temperature": 25.5,
"pressure": 101.3,
"humidity": 60,
"status": "active",
"timestamp": 1234567890
}

Questo formato standardizzato consente a qualsiasi connettore di comunicare con qualsiasi altro connettore, indipendentemente dal protocollo o sistema sottostante.

Ogni connettore è configurato utilizzando JSON con tre sezioni principali:

  1. Type: Il tipo di connettore (es. OpcuaReader, MqttV3Writer)
  2. Config: Configurazione specifica del connettore (endpoint, credenziali, ecc.)
  3. Variables: (Opzionale) Per connettori industriali, definisce quali dati leggere/scrivere

Esempio:

{
"type": "OpcuaReader",
"config": {
"endpoint": "opc.tcp://localhost:4840",
"pollingRate": 1000
},
"variables": [
{
"key": "temperature",
"nodeId": "ns=1;s=Temperature"
}
]
}

I connettori sono organizzati in fogli di lavoro (workflow) dove:

  1. I connettori reader raccolgono dati dalle fonti
  2. I connettori di elaborazione trasformano e filtrano i dati
  3. I connettori writer inviano dati alle destinazioni

I dati fluiscono attraverso le connessioni tra i connettori, con ogni connettore che elabora i dati in parallelo per massime prestazioni.

Molti connettori reader supportano un parametro pollingRate (in millisecondi):

{
"pollingRate": 1000 // Polling ogni 1 secondo
}

I connettori che richiedono autenticazione tipicamente supportano più metodi:

{
"username": "user",
"password": "pass"
}

O per autenticazione basata su token:

{
"authToken": "your-token-here"
}

Tutti i connettori includono gestione errori integrata e:

  • Registrano errori con codici di errore specifici
  • Continuano l’operazione quando possibile
  • Forniscono messaggi di errore dettagliati per la risoluzione dei problemi
  • Usa valori pollingRate appropriati per evitare di sovraccaricare i sistemi
  • Polling più veloce = più dati ma maggiore utilizzo CPU/rete
  • Valori tipici: 100ms (veloce), 1000ms (normale), 5000ms (lento)

Alcuni connettori accumulano dati in memoria:

  • Merge: Combina dati da più fonti
  • Cron: Mantiene i dati fino al rilascio pianificato
  • Usa il parametro maxRetained per limitare l’uso della memoria
  • I fogli di lavoro eseguono i connettori in parallelo
  • Più fogli di lavoro vengono eseguiti simultaneamente
  • Scalabilità orizzontale sui core della CPU

Inizia con flussi di lavoro base reader → writer prima di aggiungere connettori di elaborazione.

Posiziona i connettori Filter all’inizio del flusso di lavoro per ridurre le dimensioni del payload e migliorare le prestazioni.

Usa i connettori Reshape per standardizzare i nomi dei campi tra diverse fonti.

Usa i connettori Trigger per rilevare condizioni di errore e instradare ai connettori Alert.

Usa i connettori Cron per elaborazione batch e rilasci dati pianificati.

Usa i connettori Auth per validare i token JWT nei flussi di dati che richiedono autenticazione.

Aggiungi connettori Anomaly Detection per identificare pattern insoliti nei tuoi dati.

Esplora la documentazione dei connettori per categoria: