JSON, REST, SOAP, WSDL и SOA: как они все связаны вместе

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

SOA-решение для связи потребителей/поставщиков услуг. (насколько я понимаю, это общий термин для всего остального)

WSDL-язык, описывающий службу поставщика.

SOAP-XML-протокол 'wrapper' используется службами для отправки сообщений. Работает совместно с WSDL как обеспечить параметры?

REST-шаблон дизайна, который похож на SOAP в функции, но избегает XML? (действительно не уверен в этом)

JSON-альтернатива XML, использующая javascript? (не уверен и в этом)

глядя вокруг в интернете, кажется, нет четкого определения того, что все это и как они взаимосвязаны.

2 ответов


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

вы создаете API и позволяете другим реализовывать свои собственные интерфейсы над ним. То, что вы только что сделали, это реализовать SOA методология, т. е. использование веб-сервисов.

веб-службы делают функциональные строительные блоки доступными по стандарту Протокол интернета независимо от платформ и языков программирования.

Итак, вы создаете механизм обмена между back-end (веб-сервисом), который выполняет обработку и генерацию чего-то полезного, и front-end (который потребляет данные), который может быть чем угодно. (Веб -, мобильное или настольное приложение или другая веб-служба). Единственное ограничение здесь заключается в том, что front-end и back-end должны "говорить" на одном и том же "языке".


вот где мыло и отдых заходи. Это стандартные способы общения с веб-сервисом.

мыло:

мыло внутренне использует XML для отправки данных туда и обратно. Сообщения SOAP имеют жесткую структуру, и ответ XML затем должен быть проанализирован. WSDL - это спецификация того, что запросы могут быть сделаны, с какими параметрами, и что они вернутся. Это полная спецификация вашего API.

остальное:

REST-это концепция дизайна.

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

Он не такой жесткий, как мыло. RESTful web-services используйте стандартные URI и методы для вызовов веб-службы. Когда вы запрашиваете URI, он возвращает представление объекта, который затем можно проанализировать операции по (например, GET, PUT, POST, DELETE). Вы не ограничены выбором XML для представления данных, вы можете выбрать что-нибудь действительно (включая JSON)

REST API Flickr идет дальше и позволяет возвращать изображения.


JSON и XML, функционально эквивалентны, и могут быть выбраны. XML считается слишком многословным и более сложным для анализа, поэтому много раз данные более адекватно представлены с помощью JSON. (Например. сериализация)

тем не менее выбор.


WSDL: означает язык описания веб-службы

в SOAP (Simple object access protocol), когда вы используете веб-службу и добавляете веб-службу в свой проект, ваше клиентское приложение(ы) не знает о функциях веб-службы. В настоящее время это как-то старомодно, и для каждого вида разных клиентов вы должны реализовать разные WSDL файлы. Например, вы не можете использовать один и тот же файл для .Net и php клиент. The WSDL файл имеет некоторые описание функций веб-службы. Тип этого файла XML. SOAP является альтернативой для REST.

остальное: расшифровывается как передача репрезентативного состояния

это еще один вид сервиса API, он очень прост в использовании для клиентов. Им не нужно иметь специальное расширение файла, как WSDL файлы. Операция CRUD может быть реализована различными HTTP Verbs(GET для чтения, POST для создания, PUT или PATCH для обновления и удаления для удаления нужного документа), они основаны на HTML протокола и в большинстве случаев ответ находится в JSON или . С другой стороны, клиентское приложение должно точно вызвать связанный HTTP Verb через точные имена и типы параметров. Из-за отсутствия специального файла для определения, как WSDL, это задание вручную с использованием конечной точки. Но это не имеет большого значения, потому что теперь у нас есть много плагинов для разных IDEs для генерации реализации на стороне клиента.

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

включает в себя все программирования с концепциями веб-служб и архитектуры. Представьте, что вы хотите реализовать крупномасштабные приложения. Одна практика может иметь некоторые различные услуги, называемые микро-услуги, и весь механизм приложения будет вызывать необходимую веб-службу в нужное время. Оба!--9--> и SOAP web-сервисов вроде SOA.

JSON: стенды для javascript Object Notation

при сериализации объекта для javascript типом формата объекта является JSON. представьте, что у вас есть человеческий класс:

class Human{
 string Name;
 string Family;
 int Age;
}

и у вас есть несколько экземпляров из этого класса:

Human h1 = new Human(){
  Name='Saman',
  Family='Gholami',
  Age=26
}

при сериализации объекта h1 в JSON результат:

  [h1:{Name:'saman',Family:'Gholami',Age:'26'}, ...]

javascript можно оценить этот формат по