Какие методы SOA наиболее распространены? - PullRequest
2 голосов
/ 16 сентября 2010

Я изучаю концепцию SOA и узнаю методы (я должен так это называть?) SOAP и REST (только эти). Я хочу знать, существуют ли какие-либо другие методы (?), Которые сосуществуют в этом контексте, и что они представляют. они чем-то лучше? многие люди их используют? и т. д. спасибо (:

Ответы [ 3 ]

5 голосов
/ 16 сентября 2010

Важно отделить архитектуру SOA от SOAP, REST и других реализаций архитектуры.

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

Основные характеристики архитектуры SOA: -

  • Клиенты отправляют простые сообщения с запросами.
  • Сервер отвечает сообщениями с одним ответом.
  • Сервисные интерфейсы четко определены и «объявлены» клиентам.т.е. клиенты могут запрашивать сервер о том, какие службы поддерживаются и каков интерфейс для этих служб.
  • Нет репликации данных и нет локального хранилища.Если клиент хочет узнать о виджете, он запрашивает службу виджета, клиент не сохраняет никаких данных виджета.Аналогичным образом, если клиент хочет обновить данные виджета, он отправляет запрос на обновление в службу виджетов.
  • Синхронный, асинхронный и пакетный интерфейсы приемлемы.

Ключевые преимущества этогоК архитектуре относятся: -

  • Единственный контакт между сервером и его клиентами - это «интерфейс».Клиент не знает и не нуждается в абсолютных знаниях о реализации серверов, также сервер не заботится о том, как реализован клиент.
  • Данные принадлежат и управляются службой и только службой.Это устраняет проблемы с синхронизацией, репликацией и практически сводит к нулю возможность двойного обновления.
  • Абсолютная простота получившейся архитектуры обеспечивает большую гибкость.
  • Абсолютная простота получившейся архитектуры делаетдля очень надежных систем.

Однако, как вы совершенно верно сделали вывод, в реальном мире в основном используются SOAP и REST.Когда люди говорят SOAP, они обычно ссылаются на серию стандартов и протоколов WS- * -> WSDL (язык определения веб-служб), WSM (обмен сообщениями веб-служб), WS-Security и т. Д. И т. Д., Которые используют SOAP в качестве транспортного механизма..

Принимая во внимание, что REST обладает преимуществом простоты, а WS * очень сложен и сложнее в реализации, я бы рекомендовал подход WS * для любой достаточно большой системы.Стандарты WS * поддерживают не только простой запрос / ответ, но и асинхронные сообщения и транспорты, отличные от http (JMS, файлы и т. Д.), И, что более важно, стандарт безопасности WS хорошо работает и поддерживает безопасную деловую связь с бизнесом.

3 голосов
/ 16 сентября 2010

Во-первых, прочитайте это: http://www.soaspecs.com/ws.php.

Затем прочитайте это: http://en.wikipedia.org/wiki/Web_service

В конечном счете, все идет прямо по HTTP.Это основной протокол.То, о чем вы спрашиваете, это как минимум две разные вещи.Кодировка документа (или аргументов) в XML, JSON или что-то еще.Семантика того, что передается: неограниченно или ограничено HTTP.

XMLRPC - http://en.wikipedia.org/wiki/XML-RPC. Это превратилось в SOAP.Сообщение в XML.Семантика - это вызов функции.Сообщение включает метод и аргументы.

SOAP - http://en.wikipedia.org/wiki/SOAP. Сообщение закодировано в XML.Он похож на XMLRPC, с большим количеством опций, более сложным XML и формальными описаниями WSDL.http://en.wikipedia.org/wiki/Web_Services_Description_Language

Если вы используете JSON вместо XML, хорошего названия для него нет.Это WS или REST с JSON.Это только SOAP, если он использует XML.

Существует два основных типа архитектур.Запрос в стиле SOAP, где в запросе может быть определен любой глагол, вместо REST, где есть только четыре глагола: POST, GET, UPDATE, DELETE, и они являются частью метода HTTP-запроса.REST - http://en.wikipedia.org/wiki/Representational_State_Transfer. Вы можете использовать любую кодировку сообщений с REST.Некоторые люди используют XML, некоторые люди используют JSON или YAML.Вы можете легко придумать другие представления помимо XML и JSON / YAML.Однако вы вынуждены использовать четыре канонических глагола.

0 голосов
/ 24 сентября 2010

, если вы хотите быть в курсе стандартов WS, используйте стек WS *.

...