Vai al contenuto

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 verso syslog01.es2000.it (porta 1516).

Nota architetturale: i www e il DB portalcfg sono stati migrati sotto l'architettura Farmfront; il DB di configurazione e' oggi farmfront_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).