Indice articolo
Kokos è un applicativo backend, scritto in java tramite il framework Vert.X, che permette l’esecuzione delle FUN. Un client configurato per comunicare con questo applicativo avrà quindi a disposizione i servizi di autenticazione e potrà richiedere l’esecuzione delle proprie FUN.
Analogia con AS400
Kokos si pone come uno dei prodotti appartenenti alla nuova generazione del multipiattaforma che, insieme ad altri, segneranno il processo di sostituzione dell’AS400. Kokos in sé non potrà mai sostituire l’AS400 perché, analogamente, ricopre solo una parte delle funzionalità offerte, ha però la capacità di far interagire più prodotti e servizi tra di loro, offrendo addirittura un valore più elevato. Alcuni esempi di questo valore aggiunto sono: accesso a più database, maggiore velocità comunicativa, minore stack architetturale, cloud, scaling verticale e orizzontale, flessibilità, costi minori. Di seguito una breve analogia tra l’AS400 e il multipiattaforma:
AS400 | Kokos + multipiattaforma | |
Esecuzione di codice rpgle | Si | Si (JaRiKo) |
Accesso nativo ai dati | Si solo db2 | Estensione verso altri db (Reload) |
Debugging | Si | Si (Jardis) |
Gestione delle risorse | Limitate dalla potenza dell’AS | Infinite (cloud) |
Sviluppo in differenti linguaggi | Linguaggi legacy e Java | Java, Js, Python, Ruby, C, Kotlin… |
Protocollo di comunicazione | code dati | http o gRPC (+ velocità) |
Architettura
Kokos è costituito da 3 layer applicativi ordinati in modo crescente: polyglot, core ed api.

Kokos-polyglot
È composto da due entità: programmi e servizi.
I primi ricevono dei parametri come *ENTRY e, al termine dell’esecuzione, ritornato al programma chiamante gli stessi parametri, magari valorizzati. In Smeup, per esempio, corrispondono ai programmi che vengono chiamati dalle /COPY: B£INZ0, B£DEC0, ecc.
I servizi invece sono programmi specifici che ricevono la FUN come *ENTRY e restituiscono un XML oppure un JSON. In Kokos queste due entità possono essere scritte in diversi linguaggi come: rpgle, java, js, python, ruby… .
Kokos-polyglot permette l’esecuzione e l’interazione di servizi e programmi scritti in linguaggi diversi. Un programma rpgle, per esempio, può chiamare un programma Java oppure un programma Javascript allo stesso modo in cui andrebbe a chiamare un programma rpgle.
Approfondiremo questo discorso successivamente in un articolo dedicato.
Kokos-core
Come suggerisce il nome, è la parte centrale di Kokos. Qui troviamo i servizi offerti quali autenticazione utente, esecuzione di FUN, LOA37, programmi e i servizi standard in Java.
Kokos-api
Infine, il layer più elevato espone i servizi del core (fun, auth..) tramite REST API. I clients andranno a chiamare tramite richieste http proprio questo layer.