REST - Trasmissione a livello di rete
Occorre affermare anticipatamente che REST usa HTTP e HTTPS come protocollo superiore.
Il vantaggio dell’HTTP(S) come base della comunicazione sta nel fatto che la maggior parte delle reti, anche se protette da Firewall ecc., sono completamente utilizzabili per HTTP(s). Inoltre HTTP(S) presenta le proprietà richieste per REST.
Come consueto per HTTP e HTTPS, vengono utilizzate le porte TCP 80 e 443.
REST - Proprietà ed elementi di base
Modello client/server
REST lavora secondo il processo client/server, anche se l’azione viene sempre avviata dal client. Il server mette a disposizione risorse (dati, contenuti, funzioni). Il client invia una richiesta, per accedere a risorse selezionate. Con un reply il server fornisce i dati richiesti o conferma l’azione desiderata.
Assenza di stato
In molte applicazioni client/server quando viene stabilita una connessione da parte del server viene assegnato un determinato stato (autorizzazione, compito speciale, scopo specifico...) che rimane inalterato per la durata della connessione. REST tratta tutti gli invii al server immediatamente e solo il contenuto dell’invio dati determina il successivo trattamento da parte del server e la classificazione delle richieste. Lo stato di un’applicazione è quindi nelle mani del client.
Sistema stratificato
REST prevede una chiara separazione delle competenze. Questa separazione vale in particolare per lo svolgimento della comunicazione e l’elaborazione dei contenuti trasportati.
Pertanto è possibile utilizzare proxy, gateway o stazioni intermedie simili nella via di trasmissione.
Inoltre in funzione delle esigenze di sicurezza è possibile selezionare HTTP o la trasmissione crittografata per HTTPS per la comunicazione. Per la gestione funzionale dei contenuti REST questo non fa differenza.
Indirizzabilità delle risorse
Tutte le risorse disponibili su un server sono richiamabili attraverso un indirizzo chiaro (URI = Uniform Resource Identifier). L’URI è strutturato come l’URL utilizzato per l’indirizzamento nel browser:
Protokoll://<Host>:<Port>/<Pfad>/<Ressource>?<Parameter>&<Parameter>
Metodi di richiesta
Per le richieste sono disponibili avvii HTTP standardizzati:
- GET
Chiama risorse dal server e viene utilizzato esclusivamente in lettura
- POST
crea nuove risorse o modifica quelle esistenti
- PUT
Modifica risorse esistenti
- DELETE
Cancella risorse esistenti
- HEAD
richiede solo l’inizio dell’HTTP, per verificare ad es. la disponibilità della risorsa da richiamare
- OPTIONS
richiama informazioni sulle opzioni di comunicazione
Per i dati richiamati si parla di rappresentazioni di una o più risorse Da questo la definizione REST per Representational State Transfer.
In fondo le rappresentazioni non sono nient’altro che un’immagine di parti di dati di processo: La trasmissione può avvenire in quasi qualsiasi forma concordabile. Sono comuni JSON, XML o testo grezzo. Ma anche SVG, MP3 o altri formati vengono impiegati in funzione dell’applicazione. La rappresentazione può contenere anche hyperlink ad altre risorse.
Il client invia:
http://192.168.1.19/rest/json/iostate/
E il termoigrobarometro web invia come risposta:
{
"iostate": {
"sensor": [
{
"name": "Temperatur",
"number": 0,
"unit": "°C",
"value": 25.9
},
{
"name": "rel. Feuchte",
"number": 1,
"unit": "%",
"value": 43.2
},
{
"name": "Luftdruck",
"number": 2,
"unit": "hPa",
"value": 994.7
}
]
}
}
Codice a richiesta
Per i siti web oggi è tipico caricare il JavaScript contemporaneamente o a posteriori. Anche REST permette di caricare codice sorgente, parti di programma o componenti funzionali. In questo modo è possibile ampliare o modificare la funzione del client per il tempo di funzionamento.
Cache
REST prevede di rispondere a richieste ripetute da parte del client da una cache (memoria temporanea), per ridurre il carico di dati nelle vie di trasmissione. Il server determina attraverso dati all’inizio dell’HTTP, se per la rappresentazione richiesta possa essere utilizzata la cache o meno.
Vantaggi di REST
Semplice implementazione, perché vengono utilizzati in gran parte i meccanismi dell’HTTP.
Svantaggi di REST
Mediante la tecnica request/reply è possibile solo la verifica ciclica, ovvero il richiamo mirato di dati, ma non la comunicazione controllata dagli eventi. È necessario verificare ciclicamente (interrogare) i dati rilevanti per riconoscere eventuali modifiche.
Basi sui comuni protocolli industriali
-
Web-IO - Automazione con protocolli standard
Integrare segnali IO con Modbus-TCP, OPC UA/DA, Rest o MQTT
-
Formati di dati e protocolli
Dal classico scambio di dati fino all’IoT
-
Modbus-TCP
Standard aperto di comunicazione industriale
-
MQTT - Message Queue Telemetry Protocol
Scambio di dati senza connessione diretta
-
OPC UA -
OPC Unified ArchitectureSupporto OPC out of the box
-
OPC DA -
OPC Data AccessL’interprete dei dati di processo