Diferența dintre REST și SOAP

Introducere

Acest articol discută două protocoale de acces la servicii web, SĂPUN ("Protocolul de acces simplu al obiectului") și ODIHNĂ ("Transfer de stat reprezentativ").

Servicii Web

Serviciile Web sunt definite pentru a prelua în mod activ, citi sau transfera date de la o sursă definită pentru a produce un rezultat specific - un rezultat.

Următorul exemplu rudimentar arată o utilizare de bază a serviciilor web înainte de a înțelege modul în care datele sunt transferate către și de la serviciul web, folosind SOAP sau REST.

Dacă un dezvoltator scrie o aplicație care necesită un calcul al datelor într-un singur loc, va scrie metoda de calcul în cod, în acel loc. Cu toate acestea, în cazul în care calculul datelor este necesar în alte părți ale aplicației, ar fi ineficient și impracticabil să se mențină dacă dezvoltatorul a plasat metoda de calcul în fiecare domeniu în care este necesară.

Dacă trebuie să faceți o schimbare la această metodă, este necesar să găsiți fiecare instanță pentru a edita (și retesta). Acest scenariu ar beneficia de folosirea optimă a unui serviciu web și de îmbunătățirea agilității afacerii.

Prin crearea unui serviciu web cu metode accesibile de adăugare, scădere, împărțire și multiplicare, aplicația se va angaja cu serviciul web ori de câte ori este necesară calcularea datelor; solicită serviciului web să facă calculul și să producă rezultatul. Deci, există doar un singur loc pentru dezvoltator de a menține metoda de calcul al datelor.

Modul de gestionare a datelor în serviciile web este determinat de implementarea SOAP sau REST.

SOA și BPMN

O aplicație construită pe procese executabile se bazează pe o Arhitectura orientată spre servicii ( „SOA“). Este o abordare a modului de utilizare a serviciilor care transferă, produce, validează sau calculează date.

SOA devine din ce în ce mai favorabil pentru a îmbunătăți calitatea și timpul de dezvoltare și pentru a îmbunătăți performanța și scalabilitatea aplicațiilor.

Modificarea notării proceselor de afaceri ("BPMN") modelează un serviciu sau un proces de afaceri, care poate fi realizat de persoane non-tehnice, adică analist de afaceri. Utilizarea BPMN, modelele de afaceri (pentru servicii) sunt interpretate cu ușurință de către dezvoltatorii care implementează modelul ca proces executabil și aceste procese pot sau nu pot necesita interacțiuni umane.

Protocol de acces obiect simplu (SOAP)

SOAP este o metodă de transfer de date prin Internet.

Dezvoltat inițial de Microsoft ca urmare a apariției internetului, SOAP a înlocuit vechiul DCOM și CORBA tehnologii, și a fost în jur de mult mai mult decât REST.

SOAP este considerat ca fiind mai greu decât REST, adică există mai mult bagaj necesar pentru a transfera date, ceea ce înseamnă că este nevoie de mai multă lățime de bandă pentru fiecare cerere de mesaj, iar sursa și țintele de date au mai mult de lucru atunci când ambalează și primesc datele.

SOAP utilizează numai XML pentru serviciile de mesagerie prin internet și cererile de mesaje XML pot fi foarte complexe și dacă sunt dezvoltate manual, este necesară o atenție deosebită deoarece SOAP este inflexibil cu erori.

Este posibil să se automatizeze cererile de mesaje SOAP folosind limbile .NET (ca exemplu), unde dezvoltatorii nu trebuie să lucreze cu XML, deoarece sunt generați automat în fundal.

Dacă se întâlnesc probleme cu cererea de mesaj, în răspunsul mesajului sunt returnate informații detaliate de eroare, iar acest proces poate fi de asemenea automatizat prin trimiterea la codurile de eroare standard furnizate în răspunsul mesajului.

Prin urmare, limbajul de programare folosit este un factor determinant în cât de dificil va fi implementarea SOAP.

Una dintre piese de bagaje care însoțește un mesaj SOAP este Descrierea serviciilor web Language ("WSDL") pentru a explica modul în care funcționează serviciul web. Atunci când o aplicație se referă la serviciul web, citește și înțelege ce trebuie să facă cu serviciul web.

SOAP nu este obligat să utilizeze HTTP (Protocol de transfer HyperText) exclusiv; acesta poate fi folosit peste SMTP și alte protocoale de transport.

Deoarece SOAP a fost standardizat, este mai rigid decât REST, deși ambele depind de reguli stabilite.

ODIHNĂ

REST este vărul mai nou și mai elegant al SOAP și devine rapid alegerea pentru majoritatea aplicațiilor web și mobile.

Mai mult de un deceniu după introducerea sa, REST este un mod mai ușor de întreținut și scalabil de a interacționa cu serviciile web.

Spre deosebire de SOAP, REST nu utilizează XML exclusiv; text simplu, CSV, și RSS pot fi utilizate, precum și JSON pentru apelurile AJAX; atâta timp cât sursa și țintele pot înțelege formatele utilizate.

REST este mai puțin complexă și este considerată o curbă de învățare mai mică decât în ​​comparație cu SOAP. Cele mai multe limbi de programare moderne au biblioteci și cadre pentru a facilita serviciile REST (RESTful), cum ar fi C #, Python, Java și Perl.

REST este mai rapid datorită procesării minime și fiind mai eficient utilizând diferite formate de mesaje.

Există avantaje și dezavantaje pentru ambele, deci atunci când se analizează ce protocol de acces trebuie utilizat, luați în considerare limbajele de programare utilizate în organizație, mediul aplicațiilor și cerințele de aplicație.