Wiesemann & Theis GmbH

Tecnologia di rete, dei sensori e delle interfacce per industria, ufficio e informatizzazione

Conoscenze di base:

REST - REpresentational State Transfer

Comunicazione industriale sulla base di richieste HTTP standardizzate



REST non descrive nessuna concreta struttura del protocollo. Al suo posto REST indica proprietà da soddisfare per uno scambio di dati in ambito industriale.


REST - Trasmissione a livello di rete

Occorre affermare anticipatamente che REST usa HTTP e HTTPS come protocollo superiore.

REST - struttura del pacchetto di rete


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

Prodotti per applicazioni industriali con protocolli standard

^