Web service: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 151.27.80.27 (discussione), riportata alla versione precedente di Horcrux
Etichetta: Rollback
Nessun oggetto della modifica
 
(27 versioni intermedie di 19 utenti non mostrate)
Riga 1:
In [[informatica]] un '''Web service''' ('''servizio web'''), secondo la definizione data dal [[World Wide Web Consortium]] (W3C), è un sistema [[software]] progettato per supportare l'[[interoperabilità]] tra diversi [[computer|elaboratori]] su di una medesima [[rete informatica|rete]] ovverooppure in un contesto [[sistema distribuito|distribuito]].
 
== Storia ==
Il consorzio OASIS (''Organization for the Advancement of Structured Information Standards'') ed il W3C sono i principali responsabili dell'architettura e della standardizzazione dei Web service; per migliorare l'interoperabilità tra le diverse implementazioni dei Web service l'organizzazione [[WS-I]] sta inoltre sviluppando una serie di "profili" per meglio definire gli standard coinvolti.
 
== CaratteristicheDescrizione ==
Tale caratteristica si ottiene associando all'applicazione un'[[interfaccia (informatica)|interfaccia]] software (descritta in un formato automaticamente elaborabile quale, ad es., il [[Web Services Description Language]]) che espone all'esterno il servizio/i associato/i e utilizzando la quale altri [[sistema|sistemi]] possono interagire con l'applicazione stessa attivando le operazioni descritte nell'interfaccia (''servizi'' o [[chiamata di procedura remota|richieste di procedure remote]]) tramite appositi "messaggi" di richiesta: tali messaggi di richiesta sono inclusi in una "busta" (la più famosa è [[SOAP]]), formattati secondo lo standard [[XML]], [[imbustamento|incapsulati]] e trasportati tramite i [[Protocollo di rete|protocolli]] del [[Web]] (solitamente [[Hypertext Transfer Protocol|HTTP]]), da cui appunto il nome ''Web service''. Di fatto dunque il ''web service'' consiste in una chiamata ad un servizio molto simile a una [[funzione (informatica)|funzione]], subroutine o [[metodo (informatica)|metodo]] scritta in maniera inusuale rispetto alla norma e con i suddetti metodi di chiamata, utili in termini di interoperabilità in un'architettura tipica complessa di tipo [[modulo (programmazione)|modulare]].
 
Proprio grazie all'utilizzo di standard basati su XML, tramite un'architettura basata sui [[World Wide Web|Web]] Service (chiamata, con terminologia [[lingua inglese|inglese]], ''[[Service oriented Architecture]] - SOA'') applicazioni software scritte in diversi [[linguaggio di programmazione|linguaggi di programmazione]] e implementate su diverse [[piattaforma (informatica)|piattaforme]] [[hardware]] possono quindi essere utilizzate, tramite le interfacce che queste "espongono" pubblicamente e mediante l'utilizzo delle funzioni che sono in grado di effettuare (i "servizi" che mettono a disposizione) per lo scambio di informazioni e l'effettuazione di operazioni complesse (quali, ad esempio, la realizzazione di ''processi di business'' che coinvolgono più aree di una medesima azienda) sia su reti aziendali come anche su [[Internet]]: la possibilità dell'[[interoperabilità]] fra diversi linguaggi di programmazione (ad esempio, tra [[Java (linguaggio di programmazione)|Java]] e [[Python]]) e diversi [[sistema operativo|sistemi operativi]] (come [[Microsoft Windows|Windows]] e [[Linux]]) è resa possibile dall'uso di [[Standard aperto|standard "aperti"]].
 
=== Caratteristiche dei Web service===
==Descrizione==
===Caratteristiche dei Web service===
Alcuni dei vantaggi che è possibile ottenere con l'utilizzo dei Web service sono i seguenti:
*permettono l'interoperabilità tra diverse applicazioni software su diverse piattaforme hardware;
*utilizzano standard e protocolli "open"; i protocolli ed il formato dei dati è, ove possibile, in formato testuale, cosa che li rende di più facile comprensione ed utilizzo da parte degli sviluppatori;
*mediante l'uso di [[Hypertext Transfer Protocol|HTTP]] per il trasporto dei messaggi, i Web service normalmente non necessitano di modifiche alle regole di sicurezza utilizzate come filtro sui [[firewall]];
*possono essere facilmente utilizzati, in combinazione l'uno con l'altro (indipendentemente da chi li fornisce e da dove vengono resi disponibili) per formare servizi "integrati" e complessi;
*consentono il riutilizzo di infrastrutture ed applicazioni già sviluppate e sono (relativamente) indipendenti da eventuali modifiche delle stesse;
*nascondono all'utente la complessità architetturale del [[framework]], offrendo in un'eventuale interfaccia (front end) il risultato dell'esecuzione del servizio (ad esempio i valori di determinati campi di una tabella in un'app).
 
Di contro, vi sono i seguenti aspetti da considerare:
*attualmente non esistono standard consolidati per applicazioni critiche quali, ad esempio, le [[transazioni distribuite]];
*le ''performance'' legate all'utilizzo dei Web service possono essere minori di quelle riscontrabili utilizzando approcci alternativi di [[distributed computing]] quali [[Remote Method Invocation|Java RMI]], [[CORBA]], o [[Distributed Component Object Model|DCOM]]:
*L'uso dell'[[Hypertext Transfer Protocol|HTTP]] permette ai Web service di evitare le misure di sicurezza dei firewall (le cui regole sono stabilite spesso proprio per evitare le comunicazioni fra programmi "esterni" ed "interni" al firewall).
 
=== Ragioni dell'utilizzo ===
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 ada 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.
 
I Web service hanno inoltre guadagnato consensi visto che, come protocollo di trasporto, possono utilizzare HTTP "over" [[Transmission Control Protocol|TCP]] sulla [[Porta (reti)|porta]] 80; tale porta è, normalmente, una delle poche (se non l'unica) lasciata "aperta" dai sistemi firewall al traffico di entrata ed uscita dall'esterno verso i sistemi aziendali e ciò in quanto su tale porta transita il traffico HTTP dei [[web browser]]: ciò consente l'utilizzo dei Web service senza modifiche sulle configurazioni di sicurezza dell'azienda (un aspetto che se da un lato è positivo solleva preoccupazioni concernenti la sicurezza).
Riga 31:
 
=== Pila protocollare ===
[[File:webservicesWebservices-en.pngsvg|rightthumb|Esempio di utilizzo dei protocolli per i Web service]]
La pila protocollare dei Web service è l'insieme dei [[Protocollo di rete|protocolli di rete]] utilizzati per definire, localizzare, realizzare e far interagire tra di loro i Web service; è principalmente composta di quattro aree:
 
Riga 37:
* ''XML Messaging'': tutti i dati scambiati sono formattati mediante "tag" XML in modo che gli stessi possano essere utilizzati ad entrambi i capi delle connessioni; il messaggio può essere codificato conformemente allo standard [[SOAP]], come anche utilizzare [[JAX-RPC]], [[XML-RPC]] o [[REST]].
* ''Descrizione del servizio'': l'interfaccia pubblica di un Web service viene descritta tramite [[Web Services Description Language|WSDL]] (''Web Services Description Language'') un linguaggio basato su XML usato per la creazione di "documenti" descrittivi delle modalità di interfacciamento ed utilizzo del Web service.
* ''Elencazione dei servizi'': la centralizzazione della descrizione e della localizzazione dei Web service in un "[[Registry|registro]]" comune permette la ricerca ed il reperimento in maniera veloce dei Web service disponibili in rete; a tale scopo viene attualmente utilizzato il protocollo [[Universal Description Discovery and Integration|UDDI]].
 
Ulteriori protocolli [[standard (informatica)|standard]] utilizzati sono:
Riga 54:
*[[Web Services Interoperability]]
*[[Service-oriented architecture]]
 
==Altri progetti==
{{interprogetto|preposizione=sul}}
 
==Collegamenti esterni==
* {{Collegamenti esterni}}
*{{cita web|http://www.oasis-open.org/|Consorzio OASIS}}
*{{cita web|httphttps://www.w3.org/2002/ws/|Pagina sui Web service del World Wide Web Consortium}}
*W3C: [httphttps://www.w3.org/2000/xp/Group/ Gruppo di lavoro sull'XML (SOAP)]
*W3C: [httphttps://www.w3.org/TR/ws-arch/ Architettura dei Web service]
*{{cita web|http://www-130.ibm.com/developerworks/webservices/|Service-Oriented Architecture (SOA) e Web service}}
*Oracle: [http://www.oracle.com/technology/tech/webservices/index.html Centro per la tecnologia dei Web service]
*{{cita web|http://conferences.computer.org/icws|Conferenza Internazionale dell'IEEE sui Web service}}
*IEEE: {{collegamento interrotto|1=[https://www.ieeecommunities.org/services Comunità di Services Computing] |datedata=novembre 2017 |bot=InternetArchiveBot }}
*{{cita web | 1 = http://www.guru4.net/articoli/webservice-introduzione/ | 2 = Introduzione ai Web service con .NET | accesso = 2 agosto 2006 | dataarchivio = 17 luglio 2006 | urlarchivio = https://web.archive.org/web/20060717223210/http://www.guru4.net/articoli/webservice-introduzione/ | urlmorto = sì }}
*{{cita web|http://www.service-architecture.com/index.html|Web service e Service-Oriented Architecture}}
*{{cita web|http://www.occhioinformatico.it/formazione/11-how-to-tutorial/62-web-service-in-java.html|Web service in Java}}
 
{{Interfacce web}}
{{Portale|internet|scienza e tecnica|tecnologia}}
{{Controllo di autorità}}
{{Portale|internet|scienza e tecnica|tecnologia}}
 
[[Categoria:Web service| ]]