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

Я использовал 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();

.сеть:

PatientServiceImplService service = new PatientServiceImplService();
14.08.2008 19:23:54
4 ОТВЕТА
РЕШЕНИЕ

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

8
14.08.2008 19:54:23

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

1
14.08.2008 19:26:35

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

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

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

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

4
1.08.2018 15:58:07