Что такое конечная точка веб-сервиса?

Скажем, мой веб-сервис находится в http://localhost:8080/foo/mywebservice, а мой WSDL находится в http://localhost:8080/foo/mywebservice?wsdl.

Является ли http://localhost:8080/foo/mywebservice конечной точкой, т.е. такой же, как URI моей веб-службы, или где сообщения SOAP получены и немаршаллированы?

Не могли бы вы объяснить мне, что это такое и какова его цель?

Ответ 1

Это более короткий и, надеюсь, более четкий ответ... Да, конечная точка - это URL-адрес, к которому ваша служба может быть доступна клиенту. Одна и та же веб-служба может иметь несколько конечных точек, например, чтобы сделать ее доступной с использованием разных протоколов.

Ответ 2

Обновленный ответ от Peter в комментариях:

Это "старая терминология", используйте WSDL2 "endepoint" определение (WSDL2 перевел "порт" на "конечную точку" ).


Возможно, вы нашли ответ в этом документе: http://www.w3.org/TR/wsdl.html

Документ WSDL определяет службы как коллекции конечных точек сети или портов. В WSDL абстрактное определение конечных точек и сообщений отделено от их конкретного развертывания сети или привязок формата данных. Это позволяет повторно использовать абстрактные определения: сообщения, которые являются абстрактными описаниями обменных данных, и типы портов, которые являются абстрактными коллекциями операций. Конкретные протоколы и спецификации формата данных для определенного типа порта представляют собой многоразовые привязки. Порт определяется путем связывания сетевого адреса с повторно используемым связыванием, а набор портов определяет службу. Следовательно, документ WSDL использует следующие элементы в определении сетевых сервисов:

  • Типы - контейнер для определения типов данных с использованием некоторой системы типов (например, XSD).
  • Сообщение - абстрактное, типизированное определение передаваемых данных.
  • Операция - абстрактное описание действия, поддерживаемого службой.
  • Port Type - абстрактный набор операций, поддерживаемых одной или несколькими конечными точками.
  • Binding - конкретный протокол и формат данных для определенного типа порта.
  • Порт - единственная конечная точка, определенная как комбинация привязки и сетевого адреса.
  • Сервис - набор связанных конечных точек.

http://www.ehow.com/info_12212371_definition-service-endpoint.html

Конечная точка - это точка подключения, в которой отображаются HTML файлы или страницы активного сервера. Конечные точки предоставляют информацию, необходимую для решения конечной точки веб-службы. Конечная точка предоставляет ссылку или спецификацию, которая используется для определения группы или семейства свойств адресации сообщений и предоставляет сквозные характеристики сообщений, такие как ссылки для источника и назначения конечных точек, а также идентификационные сообщения, позволяющие единообразно адресация "независимых" сообщений. Конечной точкой может быть терминал ПК, КПК или точка доступа.

Ответ 3

Конечная точка веб-службы - это URL-адрес, который будет использоваться другой программой для связи с вашей программой. Чтобы увидеть WSDL, вы добавляете ?wsdl к URL конечной точки веб-службы.

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

Итак: Конечная точка: http://www.blah.com/myproject/webservice/webmethod

Таким образом, WSDL: http://www.blah.com/myproject/webservice/webmethod?wsdl


Чтобы еще больше расширить элементы WSDL, мне всегда полезно сравнить их с кодом:

WSDL имеет 2 части (физические и абстрактные).

Физическая часть:

Определения - переменные - ex: myVar, x, y и т.д.

Типы - типы данных - ex: int, double, String, myObjectType

Операции - методы/функции - ex: myMethod(), myFunction() и т.д.

Сообщения - входные параметры метода/функции и типы возврата

  • ex: public myObjectType myMethod ( String myVar)

Porttypes - классы (т.е. они являются контейнером для операций) - ex: MyClass {} и т.д.

Абстракция:

Связывание - они соединяются с типами портов и определяют выбранный протокол для связи с этой веб-службой.  - протокол - это форма связи (так что текст /SMS, против телефона и электронной почты и т.д.).

Сервис - это список адресов, где другая программа может найти ваш веб-сервис (т.е. ваша конечная точка).

Ответ 4

В прошлых проектах, над которыми я работал, конечная точка была относительным свойством. То есть он может быть добавлен или не добавлен, но он всегда содержал protocol://host:port/partOfThePath.

Если вызываемая служба имеет для нее динамическую часть, например ?param=dynamicValue, то эта часть будет добавлена ​​к конечной точке. Но много раз конечная точка могла использоваться как без необходимости исправления.

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

hostForServiceA=someIp
portForServiceA=8080
pathForServiceA=/some/service/path
hostForServiceB=someIp
portForServiceB=8080
pathForServiceB=/some/service/path

Или, если один и тот же узел и порт для нескольких служб:

host=someIp
port=8080
pathForServiceA=/some/service/path
pathForServiceB=/some/service/path

В этих случаях полный код должен быть сконструирован в вашем коде как таковой:

String url = "http://" + host + ":" + port + pathForServiceA  + "?" + dynamicParam + "=" + dynamicValue;

В контракте это может быть сохранено как конечная точка как таковая

serviceAEndpoint=http://host:port/some/service/path?dynamicParam=

И да, много раз мы сохраняли конечную точку до и включали '='. Это приведет к следующему коду:

String url = serviceAEndpoint + dynamicValue;

Надеюсь, что пролить некоторый свет.