В чем разница между конечной точкой, сервисом и портом при работе с веб-сервисами?

StackOverflow https://stackoverflow.com/questions/11561

Вопрос

Я использовал Apache CXF для предоставления около десяти классов Java в качестве веб-сервисов.

Я создавал клиентов, используя CXF, Axis и .NET.

В Axis и CXF генерируется "Сервис" или "Локатор".С помощью этого сервиса вы можете получить "Порт"."Порт" используется для выполнения отдельных вызовов методов, предоставляемых веб-службой.

В .NET "Сервис" напрямую предоставляет вызовы веб-службе.

Кто-нибудь может объяснить разницу между портом, сервисом, локатором и конечной точкой, когда речь заходит о веб-сервисах?

Ось:

PatientServiceImplServiceLocator locator = 
    new PatientServiceImplServiceLocator();
PatientService service = locator.getPatientServiceImplPort();

CXF:

PatientServiceImplService locator = new PatientServiceImplService();
PatientService service = locator.getPatientServiceImplPort();

.net:

PatientServiceImplService service = new PatientServiceImplService();
Это было полезно?

Решение

Я бы перескочил к http://www.w3.org/TR/wsdl.html что, я думаю, достаточно хорошо объясняет Порт, Сервис и Конечную точку.Локатор - это специфичный для реализации механизм, который некоторые стеки WS используют для предоставления доступа к конечным точкам службы.

Другие советы

Я нашел информацию, основанную на ответе Кевина Кенни, но решил опубликовать ее здесь для других.

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

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

Я хотел бы добавить, что <port> и <endpoint> служат той же цели, но port используется WSDL 1.1 и endpoint с помощью WSDL 2.0.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top