Różnica między REST a SOAP

Wprowadzenie

W tym artykule omówiono dwa protokoły dostępu do usług internetowych, MYDŁO („Simple Object Access Protocol”) i ODPOCZYNEK („Reprezentatywne przeniesienie stanu”).

Usługi internetowe

Usługi sieciowe są zdefiniowane w celu aktywnego pobierania, odczytu lub przesyłania danych z określonego źródła w celu uzyskania określonego wyniku - wyniku.

Poniższy podstawowy przykład pokazuje podstawowe użycie usług sieciowych przed zrozumieniem, w jaki sposób dane są przesyłane do i z usługi internetowej, przy użyciu SOAP lub REST.

Jeśli programista pisze aplikację, która wymaga pewnych obliczeń danych w jednym miejscu, zapisuje metodę obliczeń w kodzie, w tym jednym miejscu. Jeśli jednak obliczenia danych są potrzebne w innych częściach aplikacji, utrzymanie go byłoby nieefektywne i niepraktyczne, gdyby deweloper umieścił metodę obliczeń w każdym potrzebnym obszarze.

Konieczność wprowadzenia jednej zmiany w tej metodzie wymagałaby znalezienia każdej instancji do edycji (i ponownego przetestowania). Ten scenariusz skorzystałby na korzystaniu z usługi internetowej w celu optymalnego działania i poprawy sprawności biznesowej.

Tworząc jedną usługę internetową z dostępnymi metodami dodawania, odejmowania, dzielenia i mnożenia, aplikacja będzie współpracować z tą usługą internetową, ilekroć wymagane będzie obliczenie danych; wywołuje usługę internetową, aby wykonać obliczenia i wygenerować wynik. Jest więc tylko jedno miejsce dla dewelopera do utrzymania metody obliczania danych.

Sposób przetwarzania danych w usługach sieciowych zależy od tego, czy implementowany jest protokół SOAP czy REST.

SOA i BPMN

Aplikacja zbudowana na procesach wykonywalnych jest oparta na architektura zorientowana na usługi („SOA”). Jest to podejście do korzystania z usług, które przenoszą, produkują, weryfikują lub obliczają dane.

SOA Coraz bardziej sprzyja poprawie jakości i czasu programowania oraz poprawie wydajności i skalowalności aplikacji.

Notacja modelowania procesów biznesowych („BPMN”) to modelowanie usługi lub procesu biznesowego, które mogą być wykonywane przez osoby nietechniczne, tj. Analityka biznesowego. Za pomocą BPMN, modele biznesowe (dla usług) są łatwo interpretowane przez programistów, którzy wdrażają model jako proces wykonywalny, a procesy te mogą, ale nie muszą, wymagać interakcji człowieka.

Simple Object Access Protocol (SOAP)

SOAP to metoda przesyłania danych przez Internet.

Pierwotnie opracowany przez Microsoft z powodu pojawienia się Internetu, SOAP zastąpił stary DCOM i CORBA technologie i istnieje już o wiele dłużej niż REST.

Protokół SOAP jest uważany za cięższy niż REST, tzn. Do przesłania danych wymagany jest większy bagaż, co oznacza, że ​​potrzeba więcej pasma na żądanie wiadomości, a źródło danych i cele mają więcej do zrobienia podczas pakowania i odbierania danych.

SOAP używa tylko XML w przypadku usług przesyłania wiadomości przez Internet, a żądania wiadomości XML mogą być bardzo złożone, a jeśli są tworzone ręcznie, wymagana jest ostrożność, ponieważ SOAP jest nieelastyczny z błędami.

Możliwe jest zautomatyzowanie żądań komunikatów SOAP przy użyciu języków .NET (na przykład), w których programiści nie muszą pracować z plikiem XML, ponieważ jest on generowany automatycznie w tle.

W przypadku napotkania jakichkolwiek problemów z żądaniem komunikatu zwracane są szczegółowe informacje o błędzie w odpowiedzi na komunikat, a proces ten można również zautomatyzować, odwołując się do standardowych kodów błędów podanych w odpowiedzi na komunikat.

Dlatego używany język programowania jest czynnikiem decydującym o tym, jak trudne będzie wdrożenie SOAP.

Jednym z elementów bagażu towarzyszącym wiadomości SOAP jest Język opisu usług internetowych („WSDL”), aby wyjaśnić, jak działa usługa internetowa. Gdy aplikacja odwołuje się do usługi internetowej, odczytuje i rozumie, co zrobić z usługą internetową.

SOAP nie jest zobowiązany do używania HTTP (HyperText Transfer Protocol) wyłącznie; może być używany przez SMTP i inne protokoły transportowe.

Ponieważ SOAP został znormalizowany, jest bardziej sztywny niż REST, chociaż oba zależą od ustalonych reguł.

ODPOCZYNEK

REST to nowszy i bardziej elegancki kuzyn SOAP i szybko staje się wyborem dla większości aplikacji internetowych i mobilnych.

Ponad dekadę po wprowadzeniu REST jest lżejszym, łatwiejszym w utrzymaniu i skalowalnym sposobem interakcji z usługami internetowymi.

W przeciwieństwie do SOAP REST nie używa XML wyłącznie; zwykły tekst, CSV, i RSS może być używany, jak również JSON dla połączeń AJAX; pod warunkiem, że zarówno źródło, jak i elementy docelowe mogą zrozumieć stosowane formaty.

REST jest mniej złożony i uważa się go za mniejszą krzywą uczenia się niż w porównaniu z SOAP. Większość współczesnych języków programowania ma biblioteki i struktury ułatwiające usługi REST (RESTful), takie jak C #, Python, Java i Perl.

REST jest szybszy ze względu na minimalne przetwarzanie i jest bardziej wydajny przy użyciu różnych formatów wiadomości.

Oba mają zalety i wady, dlatego rozważając, którego protokołu dostępu użyć, należy wziąć pod uwagę języki programowania używane w organizacji, środowisko aplikacji i wymagania aplikacji.