1.22.2012

WCF: ¿Qué es el metadata exchange - MEX?

Para los que trabajamos a diario con WCF este tema nos puede parecer simple y sencillo de comprender; sin embargo, en ocasiones me encuentro con desarrolladores que pese a que utilizan WCF muy seguido no saben el porque de este endpoint en el archivo de configuración. En este post vamos a aclarar el término y su importancia.

¿Qué es el metadata exchange - MEX?

El endopoint MEX es la manera en que se publica el metadata del servicio. ¿ Y que es este metadata? El metadata del servicio es la información que consumen los clientes para crear el proxy del servicio y así poder llamar el servicio. En otras palabras, cuando accedemos un servicio desde un cliente lo hacemos a través de un proxy – una clase – que se genera a partir del metadata del servicio – más acerca del proxy en el próximo post.

image

¿Es el MEX lo mismo que el WSDL?

Ahora, si hemos usado servicios web desde antes de que WCF entrara a escena nos va a surgir la pregunta ¿Es el MEX lo mismo que el WSDL del servicio? La respuesta es si y no. En realidad el WSDL y el MEX cumplen la misma función pero el MEX es la nueva versión de lo que antes era el WSDL – más al respecto en este link. En otras palabras, el MEX endpoint no es algo definido por Microsoft, si no más bien un estándar establecido por la W3C para exponer la metadata del servicio. El “no”, esta relacionado con el hecho de que aunque los dos hacen lo mismo lo hacen de diferente forma; siendo la principal diferencia el hecho de que el metadata expuesto a través del MEX se obtiene en menos viajes al servidor que si se hace utilizando el WSDL – en realidad para el MEX solo se requiere un viaje en cambio para el WSDL requiere de varios request para obtener todas las partes de la descripción del mensaje. Además el metadata con el MEX se puede exponer a través de más protocolos que el WSDL el cual solo soportaba HTTP(S).

¿Cuáles tipos de MEX tengo disponibles en WCF?

Existen muchos tipos de MEX en WCF, entre los que podemos mencionar MexHttpBinding, MexHttpsBinding, MexTcpbinding. Como podemos ver, la variación que existe esta relacionada a través del protocolo sobre el cual queremos exponer la metadata del servicio.

Etiquetas de Technorati: ,

7 comentarios:

Anónimo dijo...

Excelente articulo amigo :)

Diego Rojas dijo...

gracias por tu comentario

saludos

Rodrigo Díaz Concha dijo...

Hasta donde yo sabía, WSDL no es de Microsoft, sino de la W3C. Salu2!

Diego Rojas dijo...

Es correcto Rodrigo, sin embargo los desarrolladores tienden a creer que el endpoint MEX de WCF es algo propietario de Microsoft y no una definición del estándar de la W3C para describir servicios, algo que no es correcto.

Saludos

Juan Manuel dijo...

Muy bien, me has aclarado algunos puntos sobre los que estaba confundido.

Saludos...

JomaCorp dijo...

Buena explicación Salu2.

Johnny Pérez dijo...

Muchas gracias, me despejó algunas dudas.