Что такое конечная точка веб-сервиса?
Скажем, мой веб-сервис находится в 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;
Надеюсь, что пролить некоторый свет.