Integrações
O CMS integra em dois sentidos, e nem todo protocolo suporta os dois:
| Protocolo | Coleta (entra no CMS) | Entrega (sai do CMS) |
|---|---|---|
| HTTP REST | HTTP_GET, HTTP_POST | HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE |
| SOAP | endpoint /ws/... exposto pelo CMS | HTTP_SOAP |
| MQTT | MQTT_TOPIC_SUBSCRIBER | MQTT_PUBLISH |
| SQL Server | SQL_SERVER | SQL_SERVER_EXEC |
| Oracle | ORACLE | ORACLE_EXEC |
| PostgreSQL (inclui TimescaleDB) | POSTGRES | POSTGRES_EXEC |
| SQLite (banco em arquivo) | SQLITE | SQLITE_EXEC |
| InfluxDB (1.8, 2.x e 3.x) | INFLUXDB | INFLUXDB_WRITE |
| MongoDB (inclui Atlas, Cosmos DB e 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 |
| Arquivos (diretório) | FILE_WATCH | FILE_WRITE |
A tabela acima é sobre protocolo — por onde o dado entra e sai. O formato do payload é outra decisão, e mora no Transformador. Quando o destino fala um padrão de manufatura, o CMS traz os modelos prontos: ver ISA-95 / B2MML.
Push × pull
- Pull (agendado) — o CMS vai buscar em intervalo/cron: HTTP, SQL, Oracle, PostgreSQL, SQLite, InfluxDB, MongoDB, SAP RFC, PI Web API, Modbus poll, varredura de diretório.
- Push (evento) — o sistema externo entrega ao CMS quando acontece: recebimento REST/SOAP, MQTT, SAP IDoc, OPC UA trigger, Modbus trigger, Sparkplug B.
Integração REST pura não precisa de adaptador dedicado — HTTP_GET/HTTP_POST + Credencial +
Transformador resolvem. Os adaptadores nativos existem porque SAP, OPC UA, MQTT e Modbus não são
HTTP.
O PI Web API é a exceção que confirma a regra: é HTTP, e por baixo o conector usa HTTP mesmo — o que ele acrescenta é conhecimento do domínio do PI (resolução e cache de WebId, janelas de tempo, qualidade de amostra), não um transporte novo. Vale a pena quando o produto externo tem vocabulário próprio o bastante para configurar URLs na mão virar fonte recorrente de erro.
O que toda integração precisa
- Uma Conexão Externa com os dados do servidor (exceto HTTP, que usa Credencial).
- Uma Coleta ou Definição de Entrega apontando para essa conexão.
- Opcionalmente, um Transformador para adaptar o payload.
- Para coletas pull, um agendamento ativo.