Різниця між REST та SOAP

Вступ

У цій статті розглядаються два протоколи доступу до веб-служб, Мило ("Простий протокол доступу до об'єктів") та ВІДПОВІДЬ ("Передача представницької держави").

Веб-сервіси

Веб-сервіси визначаються для активного отримання, зчитування чи передачі даних із визначеного джерела для отримання заданого результату - результату.

Наведений нижче рудиментарний приклад показує основне використання веб-сервісів, перш ніж зрозуміти, як передаються дані в веб-сервіс і з нього, використовуючи SOAP або REST.

Якщо розробник пише програму, яка вимагає певного обчислення даних в одному місці, метод записує метод обчислення в коді в цьому одному місці. Однак, якщо обчислення даних потрібне в інших частинах програми, було б неефективно і недоцільно підтримувати, якщо розробник розмістив метод обчислення в кожній необхідній області.

Потрібно внести одну зміну до цього методу, вимагає знайти кожен екземпляр для редагування (і повторного тестування). Цей сценарій виграє від використання веб-сервісу для оптимальної роботи та покращення спритності бізнесу.

Створюючи одну веб-службу з доступними методами додавання, віднімання, ділення та множення, програма буде залучатись до цієї веб-служби, коли потрібно обчислення даних; він закликає веб-сервіс зробити розрахунок і створити результат. Тому розробник має лише одне місце для підтримки методу обчислення даних.

Спосіб обробки даних у веб-службах визначається тим, чи реалізовано SOAP чи REST.

SOA та BPMN

Додаток, побудований на виконуваних процесах, заснований на a Сервісно-орієнтована архітектура ("SOA"). Це підхід щодо використання служб, які передають, виробляють, перевіряють чи обчислюють дані.

SOA стає все більш сприятливим для покращення якості та часу розробки, а також для підвищення продуктивності та масштабування додатків.

Позначення моделювання бізнес-процесів ("BPMN") - це моделювання сервісу або бізнес-процесу, який можуть бути здійснені нетехнічними людьми, тобто бізнес-аналітиком. Використання BPMN, бізнес-моделі (для послуг) легко інтерпретуються розробниками, які реалізують модель як виконуваний процес, і ці процеси можуть або не потребують взаємодії з людьми.

Простий протокол доступу до об’єктів (SOAP)

SOAP - це метод передачі даних через Інтернет.

Спочатку розроблений Microsoft завдяки появі Інтернету, SOAP замінив старий DCOM і CORBA технологій, і це вже довше, ніж REST.

SOAP вважається важчим, ніж REST, тобто для передачі даних потрібно більше багажу, а це означає, що потрібно більше пропускної здатності на запит повідомлення, а джерело даних та цілі мають ще багато роботи для упаковки та отримання даних.

SOAP використовує тільки XML для сервісів обміну повідомленнями через Інтернет, і запити XML-повідомлень можуть бути дуже складними, і якщо вони розробляються вручну, потрібна ретельна увага, тому що SOAP негнучкі до помилок.

Можливо автоматизувати запити SOAP-повідомлення за допомогою мов .NET (як приклад), де розробникам не потрібно працювати з XML, оскільки він генерується автоматично у фоновому режимі.

Якщо виникають проблеми з запитом на повідомлення, детальна інформація про помилку повертається у відповіді на повідомлення, і цей процес також може бути автоматизований шляхом посилання на стандартні коди помилок, надані у відповіді на повідомлення..

Тому використовувана мова програмування є визначальним фактором того, наскільки складно буде реалізувати SOAP.

Один з предметів багажу, який супроводжує повідомлення SOAP, - це Опис веб-служб Мова ("WSDL"), щоб пояснити, як працює веб-служба. Коли програма посилається на веб-службу, вона читає і розуміє, що робити з веб-службою.

SOAP не пов'язаний з використанням HTTP (Виключно протокол передачі гіпертексту); його можна використовувати через SMTP та інші транспортні протоколи.

Оскільки SOAP був стандартизований, він є більш жорстким, ніж REST, хоча обидва залежать від встановлених правил.

ВІДПОВІДЬ

REST - це новіший і гладкіший двоюрідний брат SOAP, який швидко стає вибором для більшості веб-і мобільних додатків.

Більше десятиліття після його впровадження REST - це більш легкий, доступний та масштабований спосіб взаємодії з веб-сервісами.

На відміну від SOAP, REST не використовує XML виключно; простий текст, CSV, і RSS можна використовувати, а також JSON для дзвінків AJAX; до тих пір, поки і джерело, і цілі можуть зрозуміти використовувані формати.

REST менш складний і вважається меншою кривою навчання, ніж порівняно з SOAP. Більшість сучасних мов програмування мають бібліотеки та рамки для полегшення REST (RESTful) послуг, таких як C #, Python, Java та Perl.

REST швидше завдяки мінімальній обробці та більш ефективному використанню різних форматів повідомлень.

Для обох є переваги та недоліки, тому, розглядаючи протокол доступу, який слід використовувати, враховуйте мови програмування, що використовуються в організації, середовище програми та вимоги програми.