Che cos'è un "servizio Web" in inglese?


186

Ho letto dei "servizi web" qui su SO, su Wikipedia, Google, ecc. E non capisco bene cosa siano. Qual è la semplice definizione / descrizione in inglese?

Se creo un semplice sito Web utilizzando PHP che, per esempio, stampa un intero casuale sulla pagina ... è un "servizio web"? In caso contrario, perché no?

Risposte:


286

Una definizione semplice: un servizio Web è una funzione a cui è possibile accedere da altri programmi sul Web (HTTP).

Ad esempio, quando crei un sito Web in PHP che genera HTML, la sua destinazione è il browser e per estensione l'essere umano che legge la pagina nel browser. Un servizio web non è destinato agli umani ma piuttosto ad altri programmi.

Quindi il tuo sito PHP che genera un numero intero casuale potrebbe essere un servizio Web se genera l'intero in un formato che può essere utilizzato da un altro programma. Potrebbe essere in un formato XML o in un altro formato, purché altri programmi possano comprendere l'output.

La definizione completa è ovviamente più complessa ma hai chiesto un inglese semplice.


2
Questa spiegazione è buona, ma cosa rompe la capacità di consumare l'intero casuale da un altro programma da HTML? Ci sono molte librerie per leggere HTML e questo equivale a leggere XML per me e quasi a leggere JSON. Conosco questo post molto vecchio, anche se commenta per favore, se possibile.
Pavlo,

7
È una questione di intenzione piuttosto che di capacità. L'intenzione del servizio Web è di essere consumata da altre applicazioni. L'intenzione di html è di essere resa per l'utente dal browser.
Vincent Ramdhanie,

per chiunque sembri che questo sembri molto simile a un'API - leggi questo fantastico articolo per le differenze tra un servizio web e un API
Sami Birnbaum,

60

Spiegazione semplificata e non tecnica: un servizio Web consente a un PROGRAMMA di comunicare con una pagina Web, anziché utilizzare il browser per aprire una pagina Web.

Esempio: posso andare su maps.google.com, digitare il mio indirizzo di casa e vedere una mappa di dove vivo nel mio browser.

E se scrivessi un programma per computer in cui volevi prendere un indirizzo e mostrare una bella mappa, proprio come Google Maps?

Bene, potresti scrivere da zero un programma di mappatura completamente nuovo, oppure puoi chiamare un servizio web fornito da Google Maps, inviargli l'indirizzo e restituirà una mappa grafica della posizione, che puoi visualizzare nel tuo programma.

C'è molto di più, dato che alcuni degli altri post vanno in, ma il risultato è che consente alla tua applicazione di recuperare informazioni DA o inviare informazioni ad alcune risorse. Alcuni altri esempi:

  1. Puoi utilizzare un servizio Web per recuperare informazioni sui libri su Amazon.com
  2. Puoi utilizzare un servizio web simile per inviare un ordine ad Amazon.com
  3. È possibile CREARE un servizio Web per consentire alle applicazioni esterne di scoprire informazioni sui prodotti all'interno dell'azienda
  4. potresti creare un servizio web per consentire alle applicazioni esterne di inviare ordini alla tua azienda.

34

Sì, questo è un semplice servizio web.

I servizi Web non sono altro che un meccanismo di richiesta / risposta che consente a un client di accedere / modificare da remoto i dati. Esistono standard formali per i servizi Web (SOAP, SOA ecc.), Ma anche la tua semplice pagina è un servizio.

Il principale svantaggio di stamparlo su una pagina è che il tuo servizio restituirebbe HTML. I formati di dati preferibili sono JSON e XML, poiché la maggior parte dei framework client (e framework server) sono progettati attorno a JSON e XML.

Quindi se hai modificato il tuo servizio per tornare:

<RANDOM>some random number</RANDOM>

piuttosto che:

<HEAD>...</HEAD>  
<BODY>some random number</BODY>

quindi sarebbe più utile per la maggior parte dei clienti


Ho aggiornato la mia risposta per riflettere ciò. Problemi con SO che non visualizza le schede XML / HTML :)
David Arno,

Grazie. Esattamente quello che penso a riguardo. XML è molto simile all'HTML, quindi la pagina HTML di cui stiamo parlando fornita dal servizio web.
Pavlo,

21

In termini troppo semplificati, un servizio Web è qualcosa che fornisce dati come servizio tramite il protocollo http. Certo che non è sempre il caso .... ma è vicino.

I servizi Web standard utilizzano il protocollo SOAP che definisce la comunicazione e la struttura dei messaggi e XML è il formato dei dati.

I servizi Web sono progettati per consentire alle applicazioni create utilizzando tecnologie diverse di comunicare senza problemi.

Esempi di servizi Web sono cose come Weather.com che fornisce informazioni meteo che è possibile utilizzare sul proprio sito o UPS che fornisce un metodo per richiedere preventivi di spedizione o tracciabilità dei pacchi.

modificare

Modificato il testo in riferimento a SOAP, poiché non è sempre SOAP come ho già detto, ma volevo renderlo più chiaro. La chiave sta fornendo dati come servizio, non un elemento dell'interfaccia utente.


1
Non deve essere SOAP: se si parla di servizi Web (in minuscolo), REST è sempre più comune.
John Topley,

17

Un servizio Web differisce da un sito Web in quanto un servizio Web fornisce informazioni consumabili dal software piuttosto che dagli esseri umani. Di conseguenza, di solito stiamo parlando di servizi JSON , XML o SOAP esposti .

I servizi Web sono un componente chiave in "mashup". I mashup si verificano quando le informazioni di molti siti Web vengono automaticamente aggregate in un nuovo e utile servizio. Ad esempio, ci sono siti che aggregano Google Maps con informazioni sui rapporti della polizia per darti una rappresentazione grafica del crimine nella tua zona. Un altro tipo di mashup sarebbe quello di prendere i dati di borsa reali forniti da un altro sito e combinarli con un'applicazione di trading falsa per creare un "gioco" di borsa.

I servizi Web vengono anche utilizzati per fornire notizie (vedi RSS), gli ultimi elementi aggiunti a un sito, informazioni su nuovi prodotti, podcast e altre fantastiche funzionalità che trasformano il web moderno.

Spero che questo ti aiuti!


15

La migliore spiegazione inglese semplice deriva dall'uso di un'analogia:

  • Le pagine Web consentono alle persone di comunicare e collaborare tra loro.
  • I servizi Web consentono ai programmi di comunicare e collaborare tra loro.

Il tuo esempio PHP è un servizio web secondo quella definizione, perché l'output potrebbe essere consumato da un altro programma. Ma in realtà, lo screen scraping HTML non è un modo affidabile o sostenibile di produrre servizi web.


13

Per la maggior parte dei siti hai pagine HTML che visiti quando usi il browser. Queste sono pagine leggibili dall'uomo (una volta rese nel tuo browser) in cui molti dati potrebbero essere raggruppati insieme, perché ha senso per gli umani.

Ora immagina che qualcun altro voglia utilizzare alcuni di questi dati. Potrebbero scaricare la tua pagina e iniziare a filtrare tutto il "rumore" per ottenere i dati desiderati, ma la maggior parte dei siti Web non è costruita in un modo in cui i dati sono sicuri al 100% di essere collocati nello stesso punto per tutti gli elementi, quindi in aggiunta per essere ingombrante diventa anche inaffidabile.

Inserisci i servizi web.

Un servizio Web è qualcosa che un sito Web sceglie di offrire a coloro che desiderano leggere, aggiornare e / o eliminare i dati dal tuo sito Web. Potresti chiamarlo "backdoor" per i tuoi dati. Invece di presentare i dati come parte di una pagina Web, vengono forniti in un modo predeterminato in cui alcuni dei più popolari sono XML e JSON. Esistono diversi modi per comunicare con un servizio web, alcuni usano SOAP, altri hanno servizi web REST, ecc.

Ciò che è comune a tutti i servizi Web è che sono l'equivalente leggibile automaticamente alle pagine Web che il sito offre altrimenti. Ciò significa che altri che desiderano utilizzare i dati possono inviare una richiesta per recuperare alcuni dati che sono facili da analizzare e utilizzare. Alcuni siti potrebbero richiedere di fornire un nome utente / password nella richiesta, per dati sensibili, mentre altri siti consentono a chiunque di estrarre tutti i dati di cui potrebbero aver bisogno.


12

Un servizio Web è una raccolta di protocolli e standard aperti utilizzati per lo scambio di dati tra applicazioni o sistemi. Le applicazioni software scritte in vari linguaggi di programmazione e in esecuzione su varie piattaforme possono utilizzare i servizi Web per scambiare dati su reti di computer come Internet in un modo simile alla comunicazione tra processi su un singolo computer. Questa interoperabilità (ad es. Tra Java e Python o applicazioni Windows e Linux) è dovuta all'uso di standard aperti (XML, SOAP, HTTP).

Tutti i servizi Web standard funzionano utilizzando i seguenti componenti:

  • SOAP (Simple Object Access Protocol)
  • UDDI (descrizione universale, scoperta e integrazione)
  • WSDL (linguaggio di descrizione dei servizi Web)

Funziona in questo modo:

  • Il programma client raggruppa le informazioni di registrazione dell'account in un messaggio SOAP.
  • Questo messaggio SOAP viene inviato al servizio Web come corpo di una richiesta POST HTTP.
  • Il servizio Web decomprime la richiesta SOAP e la converte in un comando comprensibile dall'applicazione.
  • L'applicazione elabora le informazioni come richiesto e risponde con un nuovo numero di conto univoco per quel cliente.
  • Successivamente, il servizio Web impacchetta la risposta in un altro messaggio SOAP, che invia al programma client in risposta alla sua richiesta HTTP.
  • Il programma client decomprime il messaggio SOAP per ottenere i risultati del processo di registrazione dell'account.

1
" Tutti i servizi Web standard funzionano utilizzando i seguenti componenti: " ... il problema con questa risposta è che suggerisce che i servizi Web funzionano o devono operare all'interno del meccanismo SOAP / WSDL. Questo è inaccurato. Representational State Transfer (REST) ​​è un altro paradigma molto popolare per l'implementazione di servizi web. Alcuni importanti siti Web hanno deprecato i loro servizi SOAP a favore dei servizi web REST.
Scott

@scottb Sono totalmente d'accordo. Grazie per l'aggiornamento. Inoltre, a mia difesa, la mia conoscenza dei servizi Web era molto limitata a quei tempi!
vanguard69,

7

Simple way to explain web service is ::

  • Un servizio web è un metodo di comunicazione tra due dispositivi elettronici sul World Wide Web.
  • Può essere chiamato un processo che un programmatore utilizza per comunicare con il server
  • Per invocare questo processo il programmatore può usare SOAP ecc
  • I servizi Web sono basati su standard aperti come TCP / IP, HTTP

Il vantaggio di un servizio web è, ad esempio, sviluppare un pezzo di codice in .net e si desidera utilizzare JAVA per consumare questo codice. Puoi interagire direttamente con il livello estratto e non sei a conoscenza della tecnologia utilizzata per sviluppare il codice.


Immagine


7

Webservice è una tecnologia mediante la quale due o più applicazioni Web remote interagiscono tra loro su rete / Internet. Può essere implementato usando Java, .net, PHP ecc.

Caratteristiche del servizio Web: -

  1. Utilizzando i servizi Web due o più sistemi scambiano dati sulla rete. I dati vengono scambiati tramite XML o JSON.
  2. Qualsiasi servizio Web ha due parti Server end in cui il servizio è distribuito e la parte client in cui il servizio è accessibile dai suoi client. Qualsiasi servizio Web può avere più client. Quando un portale di viaggi vende i biglietti di un aereo di linea. Il portale è client e la compagnia aerea è il server in quanto sta vendendo il suo servizio.
  3. I servizi Web possono essere sincroni o anche asincroni. Un'applicazione Web può interagire con molti servizi Web ma questi servizi Web sono liberamente associati alle loro applicazioni Web client. Ciò significa che qualsiasi modifica nell'applicazione padre ha un effetto scarso o nullo sui servizi Web o viceversa.
  4. I servizi Web possono trasportare documenti allegati anche come PDF, Word ecc. Con il loro payload XML. Java fornisce API separate per questo tipo di servizi web.
  5. Un servizio Web nasconde sempre la complessità interna del servizio ai propri clienti. Ad esempio, un aereo di linea che vende biglietti tramite un portale di terze parti sta solo raccogliendo informazioni sull'utente finale tramite un servizio Web e in cambio fornisce biglietti. Il portale che vende biglietti non deve preoccuparsi della complessità interna dei sistemi di prenotazione dei biglietti delle compagnie aeree.
  6. Un servizio web può essere di fuoco e dimenticare il tipo o può restituire qualcosa. Supponiamo che un'applicazione Web desideri solo inviare alcune informazioni a un'applicazione di terze parti. Il mittente non necessita di alcun riconoscimento da parte del destinatario. In questo tipo di scenario abbiamo bisogno di un incendio e dimenticare il tipo di servizio web.

5

Un servizio Web, utilizzato dagli sviluppatori di software, si riferisce generalmente a un'operazione eseguita su un server remoto e invocata utilizzando la specifica XML / SOAP. Come per tutte le definizioni, ci sono sfumature, ma è l'uso più comune del termine.


1
Mi dispiace Jezelll, ha dovuto lanciare un voto negativo. Questo non è ciò che considererei "inglese semplice" :( Non ho problemi con l'intento della tua definizione, ma l'uso di parole come "operazione", "server remoto", "invocato" e "specifica" rende difficile per i principianti per capire. Vedi la risposta dei venditori di Mitchel come esempio di "inglese semplice".
Dhaust

5

Un sistema operativo fornisce una GUI (e CLI) con cui puoi interagire. Fornisce inoltre un'API con cui è possibile interagire a livello di codice.

Allo stesso modo, un sito Web fornisce pagine HTML con cui è possibile interagire e può anche fornire un'API che offre le stesse informazioni e operazioni a livello di programmazione. O tali servizi potrebbero essere disponibili solo tramite un'API senza interfaccia utente associata.


4

Bene,

Come @Vincent Ramdhanie ha affermato che un servizio web non è pensato per essere visto / consumato dall'utente finale, ma da un altro programma. Quindi tecnicamente la logica nel tuo programma sarà:

In caso di agire come un normale programma

user on website -> HTML/JS/JQuery etc -> give me a random number ->ur program

Adesso

ur program -> generate random number -> generate HTML and encapsulate o/p -> go back to user

ma nel caso del servizio web il flusso cambia leggermente:

user -> my application -> XML/JSON/some other format -> give me a random number ->ur program Adesso

ur program -> generate random number -> generate XML/JSON/some other format -> my application -> generate HTML and encapsulate o/p -> go back to user

Spero che questo ti aiuti :)


3

Una semplice definizione sarebbe una richiesta HTTP che si comporta come una normale chiamata di metodo; vale a dire, accetta parametri e restituisce un risultato strutturato, generalmente XML, che può essere deserializzato in uno o più oggetti.


3

I servizi Web sono quasi come una normale pagina Web. La differenza è che sono formattati per rendere molto semplice per un programma estrarre i dati dalla pagina, al punto da non utilizzare probabilmente alcun HTML. In genere sono anche più affidabili per quanto riguarda la coerenza del formato, possono utilizzare un diverso processo formale per definire il contenuto come soap o xml grezzo e spesso esiste anche un documento descrittivo che definisce formalmente la struttura per i dati.


3

Un modo per inviare un messaggio per invocare un'operazione su un altro computer. La differenza tra i servizi Web e i metodi precedenti è che ciò che viene inviato via cavo è standardizzato a un livello superiore.

Vecchio modo: descrivi endiani, codifica, numeri di porta, ecc. Servizio Web: URL, XML


3

Il servizio Web è come un mezzo di comunicazione tra due programmi non correlati. I programmi utilizzano un protocollo specificato (di solito SOAP) come mezzo per comprendere quale RICHIESTA / RISPOSTA devono elaborare / eseguire sul rispettivo fine.


2

Un servizio Web definisce un contratto di azioni che un server eseguirà per te. Il formato e il protocollo non contano davvero, ma dovresti avere una definizione definita di come avviene la comunicazione.

Nel tuo esempio, dipende, se viene utilizzato in un'altra applicazione che legge quel numero, sì, è un servizio, altrimenti è solo una pagina web con un numero.


1

In parole semplici, il servizio Web potrebbe essere un semplice programma, ad esempio aggiungere due numeri che dovrebbero essere pubblicati sull'UDDI e che possono essere utilizzati da un altro programma. WSDL avrà l'endpoint per individuare il servizio web e anche i dettagli di associazione e porta.


0

"Web Service" è composto da due parole, "Web" e "Service".
Che cos'è il "Web"? "Web" significa "World Wide Web".
'Servizio' per cosa? Non per Human, in tal caso, si tratta di una "Pagina Web", come testo, immagini, video, ecc.
È per i Programmi di comunicare attraverso Internet utilizzando la stessa tecnologia utilizzata dal "Web", come TCP, HTTP, ecc.
"Servizio" significa anche che fornisce alcune funzioni, come il "Livello di servizio" in CRUD. Esistono principalmente due tipi:
1. SOAP (Simple Object Access Protocol)
2. RESTful (Rappresentational state transfer)


0

Fatte salve altre definizioni, direi che un servizio Web è un sistema software che consente l'interazione interoperabile macchina-macchina / applicazione-applicazione su una rete. Queste definizioni generiche aiuterebbero anche a considerare le architetture REST come un servizio web in quanto forniscono funzionalità simili seppur uno stile architettonico diverso dal SOAP che è un protocollo completamente definito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.