Ответ 1
Отказ от ответственности: большая часть этой записи является субъективной. Здесь не предпринималось никаких попыток строго определить что-либо, просто пытаться контекстуализировать и давать глобальный обзор концепций и того, как они соотносятся друг с другом.
Я думал, что знаю, что REST/ "RESTFul", restfulservices, webservices, SOA и микросервисы
Я бы сказал, что все эти термины входят в сферу SOA. Веб-сервисы - это SOA, использующая веб-технологии. REST и его подмножество RESTful представляют собой набор практик для внедрения веб-сервисов. Наконец, микросервисы представляют собой новый набор практик SOA.
Я надеюсь получить четкое представление о том, что упомянутые выше термины представляют
Я попытаюсь рассмотреть этот вопрос, но используя неофициальные определения и не вдаваясь в преимущества и недостатки. Это было бы слишком долго, и я думаю, что самые большие моменты должны быть очевидны из объяснений.
SOA
Я думаю, что в этом случае имя самоочевидно: SOA относится к архитектурам, разработанным с упором на услуги. Теперь сложная часть заключается в том, что вы можете или не можете рассматривать сервис, и это совершенно другая тема.
Веб-службы
Это относится к подмножеству SOA с использованием технологий, связанных с сетью. Обычно это связано с HTTP и XML, но он также может использовать FTP. Я думаю, что термин "сеть здесь" довольно расплывчатый, поскольку он обычно относится к стандартным интернет-технологиям.
REST (FUL)
REST - это подмножество веб-сервисов - и, следовательно, SOA, которое вращается вокруг HTTP для связи. Существует определенный набор общих практик, таких как заданная определенная релевантность для URL-адресов.
Около 10 лет назад, когда я познакомился с REST, RESTful был представлен мне как более строгая реализация REST, где ресурс будет иметь уникальный URI, и он будет управляться с помощью операций CRUD, сопоставленных с HTTP-глаголами - Create = PUT, Read = GET, Update = POST, Delete = Delete.
Обновление информации о пользователе через HTTP GET или POST-запрос o /users/1/update
URL-адрес будет полностью корректным в REST, но это не будет RESTful. Для последнего подход должен был бы использовать HTTP POST поверх /users/1
(который также был бы URL-адресом для остальных операций, просто изменяя HTTP-глагол).
Я нахожу, что эти различия стали размытыми с годами. Тем не менее, по-прежнему стоит, что RESTful является более строгим подмножеством REST. (Точные требования могут быть спорными.)
Microservices
Это более поздний термин; он способствует внедрению приложений как набора простых независимо развертываемых сервисов. Это контрастирует с классическим подходом к архитектуре SOA как набором довольно сложных сервисов, используемых для создания сложных систем, в типичном случае с использованием служебной шины предприятия. Однако важно отметить, что, хотя обычно SOA ассоциируется с такими системами, это более широкий термин, и действительно, микросервисы также являются подмножеством SOA.
Микросервисы обычно появляются вручную с помощью современных JavaScript-стеков, т.е. с использованием JavaScript для всех вертикальных компонентов, от сервера до пользовательского интерфейса. Возможно, это связано с тем, что использование этих JavaScripts полных стеков происходит быстрее благодаря упрощенной интеграции. Эти стеки и, следовательно, микросервисы, реализованные с их использованием, обычно архивируются через REST, но с теоретической точки зрения нет ничего, мешающих вам использовать другой подход к той же философии.