разъяснение по поводу понятия “веб-сервиса”

Я немного смущен на переменных определениях и реализациях веб-сервисов, доступных как реализации. Нужно некоторое разъяснение.

Я использовал до настоящего времени:

  1. Если поставщик дает мне определенный формат XML, который я могу отправить заполненный с данными для запроса, и я делаю простой HTTP POST по интернет-передаче в Строке XML как полезная нагрузка, действительно ли это - вызов веб-сервиса? Если так, есть ли собственное имя к нему, этот вид веб-сервиса? Поскольку, очевидно, это не использует ничего как Ось, WSDL или SOAP для установления этого соединения.

  2. Вариант этого - То, если поставщик дает мне XSD, я использую JAXB для создания класса Java из него и передачи в сериализированной версии объекта, который в конечном счете удается для совпадения с опцией 1.

  3. УСПОКОИТЕЛЬНЫЙ веб-сервис: Поставщик дает мне URL как http://restfulservice/products, и я могу сделать Запросы HTTP к URL и в зависимости от того, какой глагол HTTP я использую, appropropriate действие называют и ответ, отправленный по проводу.

Я только считал about\, имеют смутное представление о

  1. SOAP. Как это работает?.. Я прочитал учебное руководство W3Schools и меня undertsand, что существует очень определенная форма XML, который стандартизирован согласно стандартам W3C, которые мы используем для передачи того же вида сообщений, как мы сделали в опции 1. Но как это работает в реальной жизни? Поставщик отправляет меня что? Я генерирую классы? Я сериализирую некоторые объекты, и http отправляют их на адрес? Или сами сгенерированные объекты имеют методы соединения, которые сделают их для меня?

  2. Что относительно WSDL? Когда поставщик отправляет мне WSDL и что я делаю с ним? Я предполагаю, что могу генерировать классы от него. Если да, то, что я делаю со сгенерированными классами?

  3. Когда мне нужна та банка оси для генерации классов от чего-то, что отправляет поставщик?

Как Вы видите, я имею, некоторые очищаются и другие главным образом смутные представления о различных видах доступных веб-сервисов. помог бы, если кто-то ould проясняет and\or мысль к большему количеству реальных ресурсов. Я немного изучил веб-сервисы Java в Интернете и многочисленных четырех акронимах буквы, которые брошены в меня, заставляют меня вызвать головокружение.

Спасибо

5
задан udit 28 March 2010 в 23:37
поделиться

2 ответа

Если поставщик предоставляет мне определенный формат XML, который я могу отправить, заполненный данными для запроса, и я делаю простой HTTP POST через Интернет, передавая { {1}} строка XML в качестве полезной нагрузки, это вызов веб-службы? Если да, есть ли у этого конкретное название, такого рода веб- сервис?

Да, это все еще веб-сервис. У него нет «официального» названия, я обычно называю его XML-over-HTTP, главным образом потому, что я не могу придумать лучшего имени.

МЫЛО. Как это работает? .. Я прочитал руководство по W3Schools и понимаю, что существует очень особая форма XML, стандартизированная в соответствии с W3C Стандарты , которые мы используем для передачи того же типа сообщений, что и в варианте 1

. SOAP предоставляет стандартный слой-оболочку для типа сообщений, которые вы отправляли в (1). Эта оболочка предоставляет такую ​​информацию, как указание на то, какую операцию вы вызываете. Он также может предоставлять услуги безопасности, информацию о транзакциях и т. Д. Обычно это довольно тонкий слой.

А как насчет WSDL? Когда поставщик отправляет мне WSDL и что мне с ним делать ? Думаю, я могу сгенерировать классы из этого. Если да, то что мне делать со сгенерированными классами?

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

Скажем, например, у вас есть схема XML и веб-служба, как вы описали.

  • Использование JAXB для генерации исходного кода Java из схемы
  • Отправка документов XML, соответствующих этой схеме, через HTTP в веб-службу

С помощью WSDL и SOAP вы бы немного расширили это:

  • Напишите тонкую оболочку WSDL вокруг схемы XML, формализуя, какие операции доступны.
  • Используйте инструмент импорта WSDL для создания заглушек клиент / сервер для этого WSDL / схемы. В Java это часто включает JAXB.
  • Использование клиента / сервера SOAP для вызова веб-службы

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

4
ответ дан 15 December 2019 в 00:56
поделиться

Если вы откуда-то получаете документ WSDL, все, что вам действительно нужно знать, это то, что он определяет интерфейс службы. Вы запускаете его через генератор привязок вашего любимого языка, чтобы создать код, который можно использовать для вызова службы. Обычно это означает, что вы будете общаться со службой по сети, используя сообщения SOAP через HTTP. SOAP - это просто оболочка, отправляющая довольно произвольные XML-сообщения.

Axis - это библиотека для выполнения этих задач на Java (как на стороне клиента, так и на стороне сервера). Подозреваю, что в других библиотеках есть реализации получше.

0
ответ дан 15 December 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: