-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Web Service API


Interfacciare Applicazioni che lavorano insieme

Web Service

Cosa è:

Web service è un servizio disponibile attraverso il web.

Una definizione non però così esplicativa, anche se noi ogni giorno usiamo questi servizi.

Un esempio la prenotazione di un albergo o volo aereo scegliendo tra le diverse possibilità disponibili.

Questa operazione è possibile perche’ il nostro PC-Client interroga un Server che colleziona tutte le diverse disponibilità.

Queste disponibilità sono ottenute dal Serverinterrogando le diverse linee aeree.

Le linee aree espongono i loro dati attraverso un’API che il Server interroga con la tecnica del Web Service.
Non è naturalmente un interrogazione al DB, che non sarebbe possibile per ragioni di sicurezza, è un collegamento Real Time.

In sintesi WEB SERVICE :

  • E’ una piattaforma indipendente di comunicazione
  • Consente a diverse applicazioni di dialogare attraverso uno standard di comunicazione

Come funziona

Consente a due diverse applicazioni di dialogare/ scambiare dati tra loro.

Un PC=Client= Service Consumer manda una richiesta a un Service Provider che risponde.
Perché questa comunicazione avvenga, servono :

  • Medium,= strumento della comunicazione = http/Internet
  • Formato= lingua compresa dalle diverse applicazioni = json/Xml
web service

Tipologie di Web Service

Due sono le tipologie di Web Service :

  • SOAP = Simple Object Access Protocol
    • Medium: http(POST)
    • Formato: XML
  • REST = REpresentational State Transfer
    • Medium: http(POST, GET, PUT DELETE)
    • Formato: XML/JSON/TEXT..

WSDL e UDDI

WSDL= Web Services Description Language = Interfaccia XML che descrive le funzionalità dei Web Services.
Esistono on line esempi di WSDL.
Come si vede da questo esempio Wsdl E’ scritto nel linguaggio XML e contiene parametri e tipologie del servizio fornito.
UDDI = Universal Description Discovery and Integration= Directory dove il Service Consumer può effettuare una query e ottenere i dati Web Services.
Ogni Service provider, pubblica il proprio web service(attraverso Wsdl) in una directory dove il Service consumer, può effettuare la ricerca. UDDI è quindi un XML standard per pubblicare e trovare Web Services.


SOAP Simple Object Access Protocol

Una serie di regole con cui due applicazioni: Server Consumer e Service Provider dialogano tra di loro.
SOAP stabilisce che ogni comunicazione tra due applicazioni deve avere un formato: XML.
I messaggi XML per SOAP devono avere una struttura :

  • Envelope: contenitore per Header e Body
  • Header: opzionale. Contiene informazioni come autentificazione, routing
  • Body: contenuto del messaggio, che ad esempio per il Service Consumer consiste nei dati della richiesta al Server.

RESTful Web Services

REST= REpresentational State Transfer.
Questi principi perchè un Web Service sia RESTful service:

  • Uniform Interface: Le Resources, possono essere identificate da URI, attraverso Http
  • Sateless: Ogni richiesta tra consumer e provider è indipendente e il server non ricorda nessuna informazione di una comunicazione precedente.
  • Cacheable: Ogni dato inviato dal Server a seguito di una richiesta, contiene una informazione che identifica se deve essere ricordato dal Client . La risposta del server contiene un header con cache Control e last value.
  • Layers: Livelli multipli possono esistere tra Client e Server
  • Code on Demand: possibilità di eseguire codice lato Client

REST Uniform Interface: Resources, URI, Http


RESOURCES: Moduli/dati o entita’ oggetto della comunicazione tra le due applicazioni (Service Consumer e Service Provider). Ad esempio in un data base aziendale, Resources sono i dati relativi agli impiegati con la loro anagrafica. Le diverse Direzioni, con gli uffici collegati. Le Filiali con i settori organizzativi e le sede geografiche. Altre informazioni.

In REST ogni informazione puo’ essere una risorsa, identificata da un nome.


URI: Si puo’ accedere ad ogni dato= risorsa attraverso URI=Uniform Access Identifier. Ad esempio se Risorse sono ospitate nel dominio www.nomedominio.com per accedere a :

  • Elenco degli impiegati: www.nomedominio.com/impiegati
  • Informazioni di un impiegato{nome}: www.nomedominio.com/impiegati/{nome}
  • Elenco delle Direzioni: www.nomedominio.com/direzioni
  • Informazioni Direzione Personale: www.nomedominio.com/direzioni/Personale
  • Impiegati Direzione Personale: www.nomedominio.com/Personale/Impiegati

Usando il metodo GET , descritto di seguito .


HTTP: ha dei metodi GET, POST, PUT; DELETE.
Con questi può essere creata una funzione CRUD.

  • C=CREATE=POST
  • R=READ= GET
  • U=UPDATE=PUT
  • D= DELETE= DELETE

Cosi’ : http//: GET www.nomedominio.com/impiegati fornisce la lista degli impiegati.
Ogni risorsa puo’ quindi essere:

  • Identificata attraverso: Nome, URI, http
  • Manipolata attraverso la loro rappresentazione : XML, JSON etc

Questa sintesi è importante per identificare le differenze tra SOAP e RESTfull. In SOAP per reperire una risorsa devo usare un envelope XML, in REST basterà un link (metodo GET).
Ecco perché REST è molto piu’ popolare di SOAP, per la sua semplicità.