2010-09-16 3 views
2

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

+1

Когда вы говорите «техника», кажется, вы имеете в виду «протокол». –

+0

Да, я смущен тем, как их называть. но REST не является протоколом. –

+0

Это моя точка зрения. В этом вопросе вы собрали несколько вещей. –

ответ

5

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

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

Ядром характеристикой архитектуры SOA являются: -

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

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

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

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

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

+0

«Я бы рекомендовал подход WS * для любой достаточно большой системы»? Зачем? Кажется, пользователи Amazon.com предпочитают REST. http://www.oreillynet.com/pub/wlg/3005. Все это кажется не по теме, поскольку вопрос касался альтернатив, а не рекомендаций. –

+0

WS- * способ переоценить. Наличие набора протоколов, который позволяет вам что-либо делать, - это рецепт сложности _adding_ для уже сложной системы. Точно противоположность концепции абсолютной простоты, которую вы рекламируете ранее. –

+0

_ "данные принадлежат и управляются Сервисом и только службой" _. Можете ли вы дать ссылку на этот вопрос? Кажется, полная противоположность _service statelessness_, которая известна как принцип SOA. –

3

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

Тогда прочтите это:. http://en.wikipedia.org/wiki/Web_service

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

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

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-запроса.

ОТДЫХ - http://en.wikipedia.org/wiki/Representational_State_Transfer. Вы можете использовать любую кодировку сообщений с помощью REST. Некоторые люди используют XML, некоторые люди используют JSON или YAML. Вы можете легко изобретать другие представления за пределами XML и JSON/YAML. Тем не менее, вы ограничены в использовании четырех канонических глаголов.

0

Если вы хотите быть действующим стандартом WS, используйте WS * stack.

Смежные вопросы