Caratteristiche e differenza tra Web Services e API in informatica

Caratteristiche e differenza tra Web Services e API in informatica

Web Service

Un Web Service è definito dal W3C come “un sistema software disegnato per supportare l’interoperabilità tra più macchine che interagiscono tra di loro su una rete”. E’ molto simile ad una procedura remota, la URL rappresenta il nome della funzione da invocare e i suoi parametri vengono passati tramite query string appendendo all’url le nostre solite variabili come nel metodo GET.

Possiamo dunque pensare la nostra applicazione come un’insieme di funzioni da invocare tramite browser con richieste asincrone, oppure che possono essere invocate anche da client esterni ai comuni browser scritti in un qualunque linguaggio di programmazione su qualsiasi tipo di piattaforma.

La ragione principale per la creazione e l’utilizzo di Web Service è il “disaccoppiamento” che l’interfaccia standard esposta dal Web Service rende possibile fra il sistema utente ed il Web Service stesso: modifiche ad una o all’altra delle applicazioni possono essere attuate in maniera “trasparente” all’interfaccia tra i due sistemi; tale flessibilità consente la creazione di sistemi software complessi costituiti da componenti svincolati l’uno dall’altro e consente una forte riusabilità di codice ed applicazioni già sviluppate. Per scambiarsi informazioni su come debbano essere invocati questi metodi, si utilizzano i protocolli che si pongono sopra HTTP: SOAP e WSDL.

In particolare, SOAP (Simple Object Access Protocol) è un protocollo che controlla lo scambio di messaggi tra componenti software. La parola Object ci fa capire che ipotizza un componente software come un oggetto, e a partire da esso cerca di costruire un messaggio scritto in un linguaggio esteso dell’XML che descrive l’oggetto, le sue variabili membro e i suoi metodi.
Mentre, WSDL (Web Services Description Language) è un linguaggio che serve a descrivere un Web Service o meglio la sua interfaccia pubblica. Descrive il cosa, il come e il dove di un Web Services; ossia cosa poter fare con quel servizio, come poterlo invocare (descrizione delle variabili da passare) e dover poterlo trovare. Anch’esso è scritto in sintassi XML e in genere è usato in coppia con SOAP.

API

Caratteristiche e differenza tra Web Services e API in informatica

Con Application Programming Interface (in acronimo API, in italiano Interfaccia di Programmazione di un’Applicazione), si indica ogni insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per l’espletamento di un determinato compito all’interno di un certo programma. Spesso con tale termine si intendono le librerie software disponibili in un certo linguaggio di programmazione.
Esistono vari tipi di modelli per le API: le interfacce intese per la massima velocità di esecuzione spesso consistono in una serie di funzioni, procedure, variabili e strutture dati; un altro modello sono gli interpreti usati per valutare le espressioni; quelle standard di un sistema operativo, sono implementate come una libreria separata e distribuite con il sistema operativo; in altri casi, a chi pubblica un software è richiesto di integrare l’API direttamente nell’applicazione.

La finalità è ottenere un’astrazione a più alto livello, di solito tra l’hardware e il programmatore, o tra software a basso e quello ad alto livello semplificando così il lavoro di programmazione. Le API permettono infatti di evitare ai programmatori di riscrivere ogni volta tutte le funzioni necessarie al programma dal nulla, ovvero dal basso livello, rientrando quindi nel più vasto concetto di riuso di codice. Le API stesse rappresentano quindi un livello di astrazione intermedio: il software che fornisce una certa API è detto implementazione dell’API.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *