Integraciones
El CMS integra en dos sentidos, y no todo protocolo soporta ambos:
| Protocolo | Recolección (entra al CMS) | Entrega (sale del CMS) |
|---|---|---|
| HTTP REST | HTTP_GET, HTTP_POST | HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE |
| SOAP | endpoint /ws/... expuesto por el CMS | HTTP_SOAP |
| MQTT | MQTT_TOPIC_SUBSCRIBER | MQTT_PUBLISH |
| SQL Server | SQL_SERVER | SQL_SERVER_EXEC |
| Oracle | ORACLE | ORACLE_EXEC |
| PostgreSQL (incluye TimescaleDB) | POSTGRES | POSTGRES_EXEC |
| SQLite (base en archivo) | SQLITE | SQLITE_EXEC |
| InfluxDB (1.8, 2.x y 3.x) | INFLUXDB | INFLUXDB_WRITE |
| MongoDB (incluye Atlas, Cosmos DB y DocumentDB) | MONGODB | MONGODB_WRITE |
| SAP RFC/BAPI | SAP_RFC | SAP_RFC_CALL |
| SAP IDoc | SAP_IDOC | — |
| SAP Gateway (OData) | HTTP_GET, HTTP_POST | HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE |
| SAP CPI (Cloud Integration) | HTTP_GET, HTTP_POST | HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_SOAP |
| OPC UA | OPC_UA_TRIGGER | OPC_UA_WRITE |
| Modbus TCP | MODBUS_TRIGGER, MODBUS_POLL | MODBUS_WRITE |
| Sparkplug B (sobre MQTT) | SPARKPLUG_SUBSCRIBER | SPARKPLUG_CMD |
| PI Web API (AVEVA/OSIsoft) | PI_WEB_API | PI_WEB_API_WRITE |
| Archivos (directorio) | FILE_WATCH | FILE_WRITE |
La tabla de arriba es sobre protocolo — por dónde entra y sale el dato. El formato del payload es otra decisión, y vive en el Transformador. Cuando el destino habla un estándar de manufactura, el CMS trae los modelos listos: ver ISA-95 / B2MML.
Push × pull
- Pull (programado) — el CMS va a buscar en intervalo/cron: HTTP, SQL, Oracle, PostgreSQL, SQLite, SAP RFC, PI Web API, Modbus poll, barrido de directorio.
- Push (evento) — el sistema externo entrega al CMS cuando ocurre: recepción REST/SOAP, MQTT, SAP IDoc, OPC UA trigger, Modbus trigger, Sparkplug B.
Una integración REST pura no necesita un adaptador dedicado — HTTP_GET/HTTP_POST +
Credencial + Transformador la resuelven. Los adaptadores nativos existen porque SAP, OPC UA, MQTT
y Modbus no son HTTP.
El PI Web API es la excepción que confirma la regla: es HTTP, y por debajo el conector usa HTTP de verdad — lo que agrega es conocimiento del dominio del PI (resolución y caché de WebId, ventanas de tiempo, calidad de muestra), no un transporte nuevo. Vale la pena cuando el producto externo tiene un vocabulario propio lo bastante particular como para que configurar URL a mano se vuelva una fuente recurrente de error.
Qué necesita toda integración
- Una Conexión Externa con los datos del servidor (excepto HTTP, que usa Credencial).
- Una Recolección o Definición de Entrega apuntando a esa conexión.
- Opcionalmente, un Transformador para adaptar el payload.
- Para recolecciones pull, una programación activa.