Differenza tra REST e SOAP Differenza tra

Anonim

Introduzione

In questo articolo vengono descritti due protocolli di accesso al servizio Web, SOAP ("Simple Object Access Protocol") e REST ("Trasferimento dello stato di rappresentanza").

Servizi Web

I servizi Web sono definiti per prelevare, leggere o trasferire attivamente dati da un'origine definita per produrre un risultato specificato: un risultato.

Il seguente esempio rudimentale mostra un utilizzo di base dei servizi Web prima di comprendere come vengono trasferiti i dati da e verso il servizio Web, utilizzando SOAP o REST.

Se uno sviluppatore sta scrivendo un'applicazione che richiede alcuni calcoli di dati in un posto, scriverà il metodo di calcolo nel codice, in quella posizione. Tuttavia, se il calcolo dei dati è necessario in altre parti dell'applicazione, sarebbe inefficiente e poco pratico mantenere se lo sviluppatore ha inserito il metodo di calcolo in ogni area che è necessaria.

Dovendo apportare una modifica a quel metodo, è necessario trovare ogni istanza da modificare (e ripetere il test). Questo scenario trarrebbe vantaggio dall'utilizzo di un servizio Web per funzionare in modo ottimale e migliorare l'agilità aziendale.

Creando un servizio Web con metodi accessibili per aggiungere, sottrarre, dividere e moltiplicare, l'applicazione si impegnerà con quel servizio Web ogni volta che è richiesto il calcolo dei dati; chiama il servizio web per eseguire il calcolo e produrre il risultato. Quindi c'è solo un posto per lo sviluppatore per mantenere il metodo di calcolo dei dati.

Il modo in cui i dati vengono gestiti nei servizi Web è determinato dall'implementazione di SOAP o REST.

SOA e BPMN

Un'applicazione costruita su processi eseguibili si basa su un'architettura orientata ai servizi ("SOA"). È un approccio su come utilizzare i servizi che trasferisce, produce, convalida o calcola i dati. SOA

sta diventando sempre più favorevole per migliorare la qualità e il tempo di sviluppo e migliorare le prestazioni e la scalabilità delle applicazioni. Notazione di modificazione dei processi aziendali

("BPMN") sta modellando un servizio o un processo aziendale, che può essere fatto da persone non tecniche i. e. l'analista di business. Usando BPMN , i modelli di business (per i servizi) sono facilmente interpretabili dagli sviluppatori che implementano il modello come un processo eseguibile e questi processi possono o meno richiedere l'interazione umana. SOAP (Simple Object Access Protocol)

SOAP è un metodo di trasferimento dei dati su Internet.

Originariamente sviluppato da Microsoft a causa dell'avvento di Internet, SOAP ha sostituito le vecchie

DCOM e CORBA ed è in circolazione da molto più tempo rispetto a REST. SOAP è considerato più pesante di REST i.e. c'è più bagaglio richiesto per trasferire i dati, il che significa che è necessaria più larghezza di banda per ogni richiesta di messaggio e l'origine dati e gli obiettivi hanno più lavoro da fare quando si impacchettano e ricevono i dati.

SOAP utilizza solo

XML per servizi di messaggistica su Internet e le richieste di messaggi XML possono essere molto complesse e, se sviluppate manualmente, è necessaria un'attenzione particolare perché SOAP è inflessibile con errori. È possibile automatizzare le richieste di messaggi SOAP utilizzando. Linguaggi NET (ad esempio), in cui gli sviluppatori non devono lavorare con l'XML poiché viene generato automaticamente in background.

Se si verificano problemi con la richiesta di messaggio, nella risposta del messaggio vengono restituite informazioni dettagliate sull'errore e questo processo può anche essere automatizzato facendo riferimento ai codici di errore standard forniti nella risposta del messaggio.

Pertanto, il linguaggio di programmazione utilizzato è un fattore determinante per quanto sarà difficile implementare SOAP.

Uno dei pezzi di bagaglio che accompagna un messaggio SOAP è il

Lingua di descrizione dei servizi Web ("WSDL") per spiegare come funziona il servizio web. Quando un'applicazione richiama il servizio Web, legge e comprende cosa fare con il servizio web. SOAP non è vincolato all'utilizzo esclusivo di

HTTP (HyperText Transfer Protocol); può essere utilizzato su SMTP e altri protocolli di trasporto. Poiché SOAP era standardizzato, è più rigido di REST, anche se entrambi dipendono da regole stabilite.

REST

REST è il nuovo e più elegante cugino di SOAP e sta diventando rapidamente la scelta per la maggior parte delle applicazioni web e mobili.

Più di un decennio dopo la sua introduzione, REST è un modo più leggero, più manutenibile e scalabile di interagire con i servizi web.

Diversamente da SOAP, REST non usa

XML esclusivamente; testo normale , CSV e RSS possono essere utilizzati, nonché JSON per chiamate AJAX; fintanto che sia la fonte che i target possono comprendere i formati utilizzati. REST è meno complesso e considerato una curva di apprendimento più piccola rispetto a SOAP. La maggior parte dei moderni linguaggi di programmazione dispone di librerie e framework per facilitare i servizi REST (RESTful), come C #, Python, Java e Perl.

REST è più veloce grazie all'elaborazione minima ed essendo più efficiente utilizzando diversi formati di messaggio.

Vi sono vantaggi e svantaggi per entrambi, quindi quando si considera quale protocollo di accesso utilizzare, considerare i linguaggi di programmazione utilizzati nell'organizzazione, l'ambiente dell'applicazione ei requisiti dell'applicazione.