Quelle est la différence entre un point de terminaison, un service et un port lorsque vous travaillez avec des services Web ?

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

Question

J'ai utilisé Apache CXF pour exposer une dizaine de classes Java en tant que services Web.

J'ai généré des clients en utilisant CXF, Axis et .NET.

Dans Axis et CXF, un « Service » ou un « Locator » est généré.A partir de ce service, vous pouvez obtenir un "Port".Le "Port" est utilisé pour effectuer des appels individuels aux méthodes exposées par le service Web.

Dans .NET, le "Service" expose directement les appels au service Web.

Quelqu'un peut-il expliquer la différence entre un port, un service, un localisateur et un point de terminaison lorsqu'il s'agit de services Web ?

Axe:

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

CXF :

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

.filet:

PatientServiceImplService service = new PatientServiceImplService();
Était-ce utile?

La solution

je sauterais vers http://www.w3.org/TR/wsdl.html ce qui, je pense, explique assez bien le port, le service et le point de terminaison.Un localisateur est un mécanisme spécifique à l'implémentation que certaines piles WS utilisent pour fournir un accès aux points de terminaison du service.

Autres conseils

J'ai trouvé les informations basées sur la réponse de Kevin Kenny, mais j'ai pensé que je les publierais ici pour les autres.

Un document WSDL définit les services comme des ensembles de points de terminaison du réseau ou de ports.Dans WSDL, la définition abstraite des points de terminaison et des messages est séparée de leur déploiement réseau concret ou de leurs liaisons de format de données.Cela permet la réutilisation de définitions abstraites :les messages, qui sont des descriptions abstraites des données échangées, et les types de ports qui sont des collections abstraites d'opérations.Les spécifications concrètes du protocole et du format de données pour un type de port particulier constituent une liaison réutilisable.Un port est défini en associant une adresse réseau à une liaison réutilisable, et un ensemble de ports définit un service.Ainsi, un document WSDL utilise les éléments suivants dans la définition des services réseau :

  • Les types– un conteneur pour les définitions de types de données utilisant un système de types (tel que XSD).
  • Message– une définition abstraite et typée des données communiquées.
  • Opération– une description abstraite d'une action prise en charge par le service.
  • Type de port–un ensemble abstrait d'opérations prises en charge par un ou plusieurs points d'extrémité.
  • Obligatoire– une spécification concrète de protocole et de format de données pour un type de port particulier.
  • Port– un point d'extrémité unique défini comme une combinaison d'une liaison et d'une adresse réseau.
  • Service– une collection de points de terminaison associés.

Je voudrais ajouter ça <port> et <endpoint> servir le même objectif, mais port est utilisé par WSDL 1.1 et endpoint par WSDL 2.0.

Comme vous l'avez déjà mentionné, ces termes signifient différentes choses dans différentes piles - il n'y a pas de bonne réponse générique pour les services Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top