2011-01-14 17 views
5

ok questa potrebbe essere una domanda piuttosto zoppa e basilare ma è rimasta impressa nella mia testa poiché non ho mai avuto la possibilità di lavorare sui servizi web.Differenza tra servizio web e servlet basato su testo

Possiamo ottenere la stessa risposta "basi di testo" (xml, json ecc.) Dal nostro server mediante implementazioni molto semplici/semplici (diciamo servlet) quindi perché qualcuno deve sviluppare un servizio web.

Qual è l'eccezione a cui un servizio Web fornisce una semplice risposta http?

+0

ottima domanda! oggi c'è un tale pasticcio nella terminologia del web. – Andrey

+0

+1 per chiedere una domanda comunemente confusa – Nishant

risposta

5

A livello di base, si è abbastanza corretti, da un punto di vista di basso livello, è solo testo (XML) su un socket.

Per servizi Web semplici, un servlet è adeguato (sto scrivendo uno di questi mentre parliamo).

Quando si parla di servizi Web SOAP e WSS- *, tuttavia, sono disponibili numerose funzioni di elaborazione e caratteristiche delle piastre di caldaia rispetto agli standard che gli strumenti di servizio Web espongono come transazioni di livello superiore.

Un semplice esempio è il marshalling dei dati. Se si trattano esclusivamente come XML, allora il vostro servizio migliora sostanzialmente per elaborare XML a mano - analizzarlo, valutarlo, popolano i vostri modelli interni, ecc

Contrasto questo per qualcosa di simile da Java EE:

@WebService 
public Person getPerson(String personId) { 
    Person p; 
    ... 
    return p; 
} 

Lo stack di servizi Web convertirà l'oggetto Person in un blob XML conforme a SOAP. Produrrà anche un WSDL che è possibile utilizzare per creare codice client (su molte piattaforme: .NET, PHP, ecc.) Per creare il codice del servizio web.

Alla fine, il client e il server hanno solo poche righe di codice, mentre i framework fanno tutto il lavoro di analisi, marshalling e pubblicazione per te.

Quindi, il valore dello stack WS è che gestisce gran parte della burocrazia della scrittura di servizi Web conformi a WSS.

Non è una panacea, ma per molte implementazioni moderne, SOAP < -> L'elaborazione remota SOAP può essere, per lo più, una soluzione cross-platform, trascina e rilascia.

0

Dipende. Se il tuo servizio web ha bisogno di rispondere a una semplice domanda si/no come "esiste questo nome utente?", Allora restituire sì, no, 0, 1, ecc. Potrebbe essere sufficiente. Se ne hai uno che restituisce tutti gli attributi di facoltà, XML o JSON possono essere appropriati a causa della natura strutturata. È un po 'meno incline a analizzare gli errori piuttosto che cercare di analizzare il testo normale.

+1

ok, ha senso. ma data l'apis, possiamo analizzare l'xml che riceveremo in risposta. SAX/DOM api per java sono abbastanza buoni in quel mondo e ce ne sono molti altri. allo stesso modo, se guardi tutte le ultime API JavaScript (Visualizzazione Google, YUI, ecc.), tutte utilizzano JSON in risposta e utilizzano ** dati di grandi dimensioni in risposta **. La domanda è ancora la stessa. sul servizio web, stai spendendo uno sforzo "extra" per svilupparlo e poi elaborarlo, tuttavia, con uno sforzo molto minore con la servlet di base e la risposta di base del testo, puoi ottenere lo stesso risultato. –

+0

Se il testo funziona solo per te, fallo. Altrimenti, la risposta di Will è azzeccata. – Satya

Problemi correlati