2008-08-14 14 views
16

Użyłem Apache CXF do ujawnienia około dziesięciu klas java jako usług internetowych.Jaka jest różnica między punktem końcowym, usługą i portem podczas pracy z usługami sieciowymi?

Wygenerowałem klientów przy użyciu CXF, osi i .NET.

W Axis i CXF generowana jest "usługa" lub "lokalizator". Z tej usługi można uzyskać "Port". "Port" służy do wykonywania indywidualnych połączeń z metodami udostępnianymi przez serwis internetowy.

W .NET "Usługa" bezpośrednio ujawnia połączenia do serwisu internetowego.

Czy ktoś może wyjaśnić różnicę między portem, usługą, lokalizatorem i punktem końcowym, jeśli chodzi o usługi sieciowe?

Axis:

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

CXF:

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

.net:

PatientServiceImplService service = new PatientServiceImplService(); 

Odpowiedz

6

Chciałbym przeskoczyć do http://www.w3.org/TR/wsdl.html, który moim zdaniem dobrze wyjaśnia port, usługę i punkt końcowy. Lokalizator jest mechanizmem specyficznym dla implementacji stosowanym przez niektóre pakiety WS, aby zapewnić dostęp do punktów końcowych usługi.

1

Jak już wspomniano, te terminy oznaczają różne rzeczy w różnych zestawach - nie ma nikogo odpowiednia ogólna odpowiedź na usługi sieciowe.

31

Znalazłem informacje oparte na odpowiedzi Kevina Kenny'ego, ale pomyślałem, że opublikuję ją tutaj dla innych.

Dokument WSDL definiuje usługi jako kolekcje punktów końcowych sieci lub portów. W WSDL abstrakcyjna definicja punktów końcowych i komunikatów jest oddzielona od ich konkretnych powiązań sieciowych lub formatów danych. Pozwala to na ponowne użycie abstrakcyjnych definicji: komunikatów, które są abstrakcyjnymi opisami wymienianych danych oraz typów portów, które są abstrakcyjnymi zbiorami operacji. Specyficzne specyfikacje protokołów i formatów danych dla określonego typu portu stanowią wiązanie wielokrotnego użytku. Port jest zdefiniowany przez powiązanie adresu sieciowego z wiązaniem wielokrotnego użytku, a zbiór portów definiuje usługę. Stąd, dokument WSDL wykorzystuje następujące elementy w definicji usług sieciowych:

  • Rodzaje - pojemnik do definicji typów danych wykorzystujących jakiś system typu (takich jak XSD).
  • Wiadomość - abstrakcyjna, wpisana definicja przekazywanych danych. Operacja
  • - abstrakcyjny opis akcji obsługiwanej przez usługę.
  • Typ portu - abstrakcyjny zestaw operacji obsługiwanych przez co najmniej jeden punkt końcowy.
  • Oprawa - konkretna specyfikacja protokołu i formatu danych dla określonego typu portu.
  • Port - pojedynczy punkt końcowy zdefiniowany jako połączenie adresu powiązania i sieci.
  • Usługa - zbiór powiązanych punktów końcowych.
3

Chciałbym dodać, że <port> i <endpoint> służyć temu samemu celowi, ale port jest używany przez WSDL 1.1 i endpoint przez WSDL 2.0.

Początkowo pomyliłem się.

Powiązane problemy