Ocmis¶
Cos'e' Ocmis¶
Ocmis e' una procedura verticale completamente esterna a Eurocoge, dedicata alla gestione di impianti di irrigazione agricola. Il perimetro applicativo copre le principali tipologie di macchine prodotte e distribuite dal cliente Ocmis SPA: motopompe, rotoloni, pivot e ippodromi.
Eurocoge non esegue logica applicativa Ocmis: si limita a ospitare la documentazione tecnica dell'ecosistema. Tutti i moduli operativi (acquisizione dati macchina, portali web per farmer e dealer, integrazioni SAP/PLM) girano su infrastruttura dedicata AWS e su applicazioni sviluppate al di fuori del gestionale COBOL.
Gli attori coinvolti nel dominio Ocmis sono:
- Farmer: utilizzatore finale delle macchine di irrigazione in campo.
- Dealer: rivenditore/installatore che gestisce i farmer.
- Vendor / Ocmis SPA: produttore delle macchine e titolare dell'ecosistema.
- Tecnici esterni: operatori di assistenza e manutenzione.
Applicazioni principali¶
| Applicazione | Ruolo |
|---|---|
| IPD | Portale interno Ocmis: gestione articoli configurati, listini, quotazioni, distinte, clienti e ordini. |
| Digital Irrigation | Web app rivolta a farmer e dealer per il controllo delle macchine e la visualizzazione dei dati di campo. |
| OCMIS-WEB | Servizio di acquisizione dati dalle macchine Ocmis distribuite nel mondo. Versione storica in PHP affiancata dalla nuova versione in Go. Scrive sul DB ocmis_machinedata. |
| ocmis-api | API pubbliche (Node.js / pnpm / Fastify) per integrazioni esterne. Autenticazione via token memorizzato su farmfront_portalcfg.config (chiave public_api_orders). |
| Irriverso | Componente di integrazione che orchestra lo scambio dati tra SAP, PLM (DERGA) e Component Engine, esponendo API REST (endpoint api-alpha.irrigation-dataserver.com). |
Ecosistema esterno¶
Ocmis dialoga con sistemi di terze parti, tutti integrati tramite webservice REST:
- SAP – ERP del cliente. API REST esposte su porte HTTP/HTTPS pubbliche
(es.
/sap/opu/odata/SAP/API_BUSINESS_PARTNER). Scambia clienti, sconti, listini, ordini, pagamenti. - PLM (DERGA) – Gestione ciclo di vita prodotto. Webservice su HTTPS. Fornisce dati articoli, configurazioni, distinte.
- Component Engine (CE) – Motore di configurazione articoli. Triangolazione tipica: SAP → Irriverso → CE → SAP.
Il collegamento verso SAP passa da una VM dedicata ospitata nell'ambiente
Ocmis (E2k-p-csv-01.ocmis.priv, AlmaLinux 9.x, accesso via VPN Watchguard),
il cui nome e' vincolato da naming convention Ocmis.
Repository¶
| Repository | Linguaggio | Descrizione |
|---|---|---|
| ocmis-web | PHP (legacy) + Go (nuova versione, server_go/) |
Acquisizione dati dalle macchine (motopompa, rotolone, pivot, ippodromi). Moduli principali: common/, main/ (db, logs, router, main), motopompa/readData.go. |
| ocmis-api | Node.js (pnpm, Fastify) | API pubbliche per integrazioni esterne e ordini. Documentazione interattiva su /documentation. |
Infrastruttura¶
- Database: PostgreSQL su AWS RDS (migrato nel 2025-01 da Aruba ad
Amazon RDS). DB principali:
farmfront_portalcfg(configurazioni e anagrafiche macchine/clienti),ocmis_machinedata(log e rilevazioni delle macchine in campo). - Pooling: valutato PgBouncer (transaction mode / session mode) in fase di benchmarking 01/2025 con carichi fino a 14.000 connessioni simultanee.
- CDN / Balancing: Cloudflare (load balancer, modalita' Proxy per il traffico HTTP) e CloudFront su stack AWS.
- Storage: bucket S3 per i dump periodici del database e asset statici.
- Log: stack Graylog + Nxlog con trasporto TLS su porta 1618
(
syslog.irrigation-dataserver.com). - Monitoraggio: Zabbix Agent verso
zabbix01.es2000.it(porta 10051) e syslog versosyslog01.es2000.it(porta 1516).
Nota architetturale: i www e il DB
portalcfgsono stati migrati sotto l'architettura Farmfront; il DB di configurazione e' oggifarmfront_portalcfg.
Struttura della documentazione¶
| Pagina | Contenuto |
|---|---|
| architettura-sistemistica.md | Server e componenti, gestione log, TLS, backup periodici, aggiornamenti, balancing Cloudflare, CloudFront, certificati. |
| dati-ipd-storage.md | Catena di memorizzazione dati IPD, tipologie di dato (personali, sensibili, giudiziari), implicazioni GDPR. |
| rds-database.md | RDS PostgreSQL, ripristino Point-In-Time, modalita' di ripristino, procedure DB Ocmis e Portalcfg. |
| configurazione-log.md | Configurazione logrotate sui server web*.ocmis, log nxlog, comandi di ispezione. |
| benchmark.md | Benchmark PHP/NodeJs/Golang del 10/01/25, test fino a 14.000 connessioni con/senza PgBouncer. |
| ipd.md | Applicazione IPD: gestione Vendor, Dealer, listini, quotazione Farmer, modalita' NETTO+ricarico e LORDO. |
| integrazione-sap.md | Webservice con SAP: clienti, articoli configurati, distinte, pagamenti, 13 driver di collegamento. |
| interfacce-scambio-dati.md | Interfacce CE - Irriverso, PLM - Irriverso, SAP - Irriverso; stati ordine SAP -> IPD. |
| irriverso.md | Gestione domini e profili, interfacce IPD-PLM-SAP, tabelle, logiche di interfacciamento (articles, parts). |
| repository-ocmis-web.md | Repository OCMIS-WEB: versione Go, struttura progetto, moduli motopompa/rotolone, funzioni comuni. |
| repository-ocmis-api.md | Repository ocmis-api: avvio locale, autenticazione via token, documentazione Swagger. |
| progetti/analisi-972.md | ANALISI-972: gestione tecnici esterni, richieste contatto telefonico. |
| progetti/gestione-validita-documenti.md | Gestione data validita' documenti drive, organizzazione gerarchica. |
| progetti/migrazione-2025-01.md | Migrazione DB Ocmis da Aruba ad AWS RDS (gennaio 2025). |
| dev/machine-backends.md | Architettura backend Go per tipi macchina (pivot, lineare, motopompa, rotolone, ippodromo), pattern condiviso, framework. |
I contenuti sono estratti e rielaborati a partire dal wiki operativo Ocmis
(sorgente: docs/import/verticalizzazioni/ocmis/OCMIS WIKI-*.md).