webservice how examples consumir consume change java .net web-services cxf axis

java - how - ¿Cuál es la diferencia entre un punto final, un servicio y un puerto cuando se trabaja con servicios web?



web service java netbeans examples (4)

Utilicé Apache CXF para exponer unas diez clases de Java como servicios web.

He generado clientes usando CXF, Axis y .NET.

En Axis y CXF se genera un "Servicio" o "Localizador". De este servicio puedes obtener un "Puerto". El "Puerto" se utiliza para hacer llamadas individuales a los métodos expuestos por el servicio web.

En .NET, el "Servicio" expone directamente las llamadas al servicio web.

¿Puede alguien explicar la diferencia entre un puerto, un servicio, un localizador y un punto final cuando se trata de servicios web?

Eje:

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

CXF:

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

.red:

PatientServiceImplService service = new PatientServiceImplService();


Como ya lo mencionó, esos términos significan cosas diferentes en diferentes pilas: no hay una respuesta genérica correcta para los servicios web.


Encontré la información basada en la respuesta de Kevin Kenny, pero pensé que la publicaría aquí para otros.

Un documento WSDL define los servicios como colecciones de puntos finales de red o puertos. En WSDL, la definición abstracta de puntos finales y mensajes está separada de su implementación concreta de red o de los enlaces de formato de datos. Esto permite la reutilización de definiciones abstractas: mensajes, que son descripciones abstractas de los datos que se intercambian, y tipos de puertos que son colecciones abstractas de operaciones. El protocolo concreto y las especificaciones de formato de datos para un tipo de puerto particular constituyen un enlace reutilizable. Un puerto se define asociando una dirección de red con un enlace reutilizable, y una colección de puertos define un servicio. Por lo tanto, un documento WSDL utiliza los siguientes elementos en la definición de servicios de red:

  • Tipos : un contenedor para definiciones de tipos de datos que utilizan algún tipo de sistema (como XSD).
  • Mensaje : una definición abstracta y mecanografiada de los datos que se comunican.
  • Operación : descripción abstracta de una acción respaldada por el servicio.
  • Tipo de puerto : un conjunto abstracto de operaciones admitidas por uno o más puntos finales.
  • Enlace : un protocolo concreto y especificación de formato de datos para un tipo de puerto particular.
  • Puerto : un único punto final definido como una combinación de un enlace y una dirección de red.
  • Servicio : una colección de puntos finales relacionados.

Me acerco a http://www.w3.org/TR/wsdl.html, que creo que explica Port, Service y Endpoint razonablemente bien. Un localizador es un mecanismo específico de implementación que algunas pilas de WS utilizan para proporcionar acceso a los puntos finales del servicio.


Me gustaría agregar que <port> y <endpoint> tienen el mismo propósito, pero WSDL 1.1 y el endpoint utilizan WSDL 2.0.

Me confundió al principio.