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

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

Pregunta

He utilizado 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".Desde este servicio puede obtener un "Puerto".El "Puerto" se utiliza para realizar llamadas individuales a los métodos expuestos por el servicio web.

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

¿Alguien puede 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();

.neto:

PatientServiceImplService service = new PatientServiceImplService();
¿Fue útil?

Solución

saltaría a http://www.w3.org/TR/wsdl.html lo cual creo que explica razonablemente bien el puerto, el servicio y el punto final.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.

Otros consejos

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

Un documento WSDL define servicios como colecciones de puntos finales o puertos de red.En WSDL, la definición abstracta de puntos finales y mensajes está separada de su implementación de red concreta o 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.Las especificaciones concretas de protocolo y 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 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 sistema de tipos (como XSD).
  • Mensaje– una definición abstracta y mecanografiada de los datos que se comunican.
  • Operación– una descripción abstracta de una acción soportada por el servicio.
  • Tipo de puerto–un conjunto abstracto de operaciones soportadas por uno o más puntos finales.
  • Vinculante– una especificación concreta de protocolo y formato de datos para un tipo de puerto particular.
  • Puerto– un único punto extremo definido como una combinación de una vinculación y una dirección de red.
  • Servicio– una colección de puntos finales relacionados.

Me gustaría agregar eso <port> y <endpoint> tiene el mismo propósito, pero port es utilizado por WSDL 1.1 y endpoint por WSDL 2.0.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top