Tic-tac-Jolie

Appendice conclusiva della serie su Jolie con i dettagli tecnici della sintassi del linguaggio per microservizi: struttura generale, interfacce, tipi di dato, cardinalità, porte di ingresso e uscita, execution, scope, fault handler, routine locali e correlation set.

Introduzione

La nostra serie sull'uso del linguaggio per microservizi Jolie nella realizzazione di un'applicazione che simula il gioco del tris ci ha portato a scoprire gli elementi principali del linguaggio. Il "pretesto" della creazione del gioco è servito a conoscere aspetti della sintassi e a intuire le potenzialità di un linguaggio come Jolie.

Dopo aver concluso lo sviluppo dell'applicazione nella parte precedente, quest'ultimo breve articolo rappresenta un'appendice con i dettagli tecnici della sintassi.

A. Dettagli tecnici della sintassi

A.1: Sintassi della struttura generale di un servizio in Jolie.

Figura 1 - Sintassi della struttura generale di un servizio in Jolie.
Figura 1 - Sintassi della struttura generale di un servizio in Jolie.

A.2: Sintassi di input delle operazioni.

Figura 2 - Sintassi di input delle operazioni.
Figura 2 - Sintassi di input delle operazioni.

A.3: Interfacce.

Figura 3 - Interfacce.
Figura 3 - Interfacce.
interface identifier {
    OneWay:
        ow_name1( t1 ),
        ow_name2( t2 ),
        //...,
        ow_nameN( tN )
    RequestResponse:
        rr_name1( tk1 )( tk2 ),
        rr_name2( tk3 )( tk4 ),
        //...
        rr_nameN( tkN )( tkN+1 )
}

Ed ecco i commenti al codice appena visto:

OneWay ow_namex = nome dell'operazione solo d'input.

RequestResponse rr_namex = nome dell'operazione di richiesta-risposta. t1,...,tN = tipi di dato per i messaggi in ingresso. tk1, ...,tkN+1 = tipi di dato per i messaggi in uscita.

A.4: Sintassi per dati.

Figura 4 - Sintassi per dati.
Figura 4 - Sintassi per dati.

A.5: Cardinalità dei tipi di dato.

Figura 5 - Cardinalità dei tipi di dato.
Figura 5 - Cardinalità dei tipi di dato.

A.6: Sintassi delle porte di ingresso e uscita.

Figura 6 - Sintassi delle porte di ingresso e uscita.
Figura 6 - Sintassi delle porte di ingresso e uscita.

A.7: Sintassi di execution.

Figura 7 - Sintassi di execution.
Figura 7 - Sintassi di execution.

A.8: Sintassi di scope.

Figura 8 - Sintassi di scope.
Figura 8 - Sintassi di scope.

A.9: Sintassi di Fault Handler.

Figura 9 - Sintassi di Fault Handler.
Figura 9 - Sintassi di Fault Handler.

A.10: Sintassi di routine locali.

Figura 10 - Sintassi di routine locali.
Figura 10 - Sintassi di routine locali.

A.11: Sintassi dei correlation sets.

Figura 11 - Sintassi dei correlation sets.
Figura 11 - Sintassi dei correlation sets.