Uti­liz­za­re i servizi via web è una cosa ovvia per molte persone. Fare shopping online, leggere un giornale, prenotare un tavolo in un ri­sto­ran­te, guardare film: tutti servizi che uti­liz­zia­mo più o meno ogni giorno. Molte cose accadono di­ret­ta­men­te tra l’uomo e il di­spo­si­ti­vo, perché la persona di fronte allo schermo naviga in rete e prende decisioni. Ma lo stesso accade anche tra i di­spo­si­ti­vi co­mu­ni­can­ti. Le richieste e le risposte vengono inviate con­ti­nua­men­te avanti e indietro tra client e server, tutto grazie ai servizi web.

Che cos’è un Web service?

Un Web service fornisce un servizio tramite Internet. Si tratta quindi di un’in­ter­fac­cia at­tra­ver­so la quale due di­spo­si­ti­vi (o ap­pli­ca­zio­ni) possono co­mu­ni­ca­re tra loro. Questa tec­no­lo­gia si basa su due ca­rat­te­ri­sti­che fon­da­men­ta­li:

  • Mul­ti­piat­ta­for­ma: client e server non devono avere le stesse con­fi­gu­ra­zio­ni per co­mu­ni­ca­re tra loro. Il servizio web fornisce quindi un terreno comune.
  • Con­di­vi­sio­ne: nella maggior parte dei casi, un servizio web non è di­spo­ni­bi­le solo per un unico client, anzi, spesso vi accedono mol­te­pli­ci client con­tem­po­ra­nea­men­te tramite Internet.

Quando viene uti­liz­za­to un Web service, un client invia una richiesta a un server e vi provoca un’azione. Il server invia quindi una risposta al client.

N.B.

Ini­zial­men­te, i servizi web venivano rea­liz­za­ti solo tramite SOAP. Oggi vengono uti­liz­za­ti anche altri pro­to­col­li, come ad esempio REST.

La tec­no­lo­gia alla base di un servizio web (con esempio)

Un servizio web viene in­di­riz­za­to tramite un Uniform Resource Iden­ti­fier (URI) unico. Simile a un Uniform Resource Locator (URL), che consente di in­di­riz­za­re i siti web, l’URI è un indirizzo per il cor­ri­spon­den­te Web service. Teo­ri­ca­men­te gioca un ruolo anche il servizio di directory UDDI, at­tra­ver­so il quale si possono trovare i servizi web. Questo servizio, tuttavia, non ha mai preso piede e i maggiori so­ste­ni­to­ri si sono ritirati dal progetto.

Un aspetto più im­por­tan­te è rap­pre­sen­ta­to dal lin­guag­gio Web Service De­scrip­tion Language (WSDL). I servizi web di­spon­go­no di un file in WSDL che descrive il servizio in modo più det­ta­glia­to. Il client può uti­liz­za­re le in­for­ma­zio­ni per capire quali funzioni può svolgere sul server tramite il servizio web. Infine, la co­mu­ni­ca­zio­ne funziona at­tra­ver­so diversi pro­to­col­li e ar­chi­tet­tu­re. Un pro­to­col­lo molto diffuso è, ad esempio, SOAP, che viene combinato con lo standard Internet HTTP o RESTful Web services. Queste tecniche vengono uti­liz­za­te per inviare e ricevere richieste e risposte.

La co­mu­ni­ca­zio­ne si basa spesso sul lin­guag­gio XML (Ex­ten­si­ble Markup Language). Questo lin­guag­gio re­la­ti­va­men­te semplice può essere compreso sia dalle persone che dai computer ed è ideale per collegare sistemi con pre­re­qui­si­ti diversi. REST invece è com­pa­ti­bi­le anche con altri formati, come JSON.

Per de­scri­ve­re un esempio di servizio web potremmo partire da un software scritto in Visual Basic che gira su un di­spo­si­ti­vo Windows. Il programma richiede il servizio di un server web Apache. Per farlo, il client invia una richiesta SOAP al server sotto forma di messaggio HTTP. Il servizio web in­ter­pre­ta il contenuto della richiesta e fa in modo che il servizio esegua un’azione. Dopo l’ese­cu­zio­ne, il servizio web formula una risposta che rimanda al client, sempre con SOAP e HTTP. Qui la risposta viene in­ter­pre­ta­ta nuo­va­men­te e l’in­for­ma­zio­ne viene tra­sfe­ri­ta al software dove viene ul­te­rior­men­te elaborata.

Vantaggi e svantaggi dei servizi web

Il vantaggio prin­ci­pa­le dei servizi web è che la co­mu­ni­ca­zio­ne avviene in modalità mul­ti­piat­ta­for­ma. Questo significa che client e server non hanno bisogno di avere nulla in comune affinché la co­mu­ni­ca­zio­ne funzioni. Per farlo, i servizi web uti­liz­za­no formati stan­dar­diz­za­ti che possono essere in­ter­pre­ta­ti da tutti i sistemi.

Questi formati rap­pre­sen­ta­no, tuttavia, anche uno degli svantaggi. L'XML in par­ti­co­la­re è un formato piuttosto in­gom­bran­te che genera pacchetti di dati di grandi di­men­sio­ni. Questo può causare problemi con con­nes­sio­ni di rete lente. Un altro modo in cui due sistemi possono con­net­ter­si tra loro tramite Internet sono le Web API, ovvero in­ter­fac­ce anch’esse ac­ces­si­bi­li via Internet. Anche se queste sono ge­ne­ral­men­te più veloci, fissano requisiti molto più precisi per il client e il server, li­mi­tan­do­ne l’in­te­ro­pe­ra­bi­li­tà.

Vai al menu prin­ci­pa­le