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:

AS400Kokos + multipiattaforma
Esecuzione di codice rpgleSiSi (JaRiKo)
Accesso nativo ai datiSi solo db2Estensione verso altri db (Reload)
DebuggingSiSi (Jardis)
Gestione delle risorseLimitate dalla
potenza dell’AS
Infinite (cloud)
Sviluppo in differenti linguaggiLinguaggi legacy e JavaJava, Js, Python, Ruby, C, Kotlin…
Protocollo di comunicazionecode datihttp 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.