Что REST, RESTFul, SOA и микросервисы просты?

Я думал, что знаю, что REST/ "RESTFul", restfulservices, webservices, SOA и микросервисы были, но я натолкнулся так много разных определений, что пришел к выводу, что эти термины чрезмерно используются, неправильно используются или просто плохо определены.

Я надеюсь получить четкое представление о том, что представляют собой вышеупомянутые термины, их конкретное определение, их общность и различия, преимущества и недостатки, а главное - нижеследующий результат - самые важные вещи, которые нужно запомнить, чтобы правильно использовать эти термины,

Ответы

Ответ 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, но с теоретической точки зрения нет ничего, мешающих вам использовать другой подход к той же философии.

Ответ 2

Позвольте мне представить вам таксономический взгляд на эти термины:

Microservices

- это подтип услуг, специализирующихся на минимальной ответственности.

Webservices

также являются подтипом служб, специализирующихся на типе предоставляемой ими услуги, которая подпадает под требования и потребности Интернета.

SOA

является подтипом архитектуры и, следовательно, структурным представлением некоторых компонентов и их отношений, где, как правило, используются службы и коммуникации между этими службами.

Остальные

- это подтип связи, лежащий в основе протокола http.

успокоительные

- это подтип архитектуры (структурный вид некоторых компонентов и их отношений), где специализируется по отношениям между компонентами, предназначенными для связи с отдыхом.