Post on 22-Jan-2016
Web ServicesWeb ServicesWeb ServicesWeb Services
Daniel SearaDaniel Seara
FundamentosFundamentos
Intercambio de informaciónIntercambio de información
ProcesamientoProcesamientoSin intervención del usuarioSin intervención del usuario
Acelerando tiempos de respuestaAcelerando tiempos de respuesta
NormalizaciónNormalizaciónEntre plataformasEntre plataformas
Entre lenguajesEntre lenguajes
Entre sistemas operativosEntre sistemas operativos
EscenariosEscenarios
SimpleSimplePublicación de informaciónPublicación de información
Integración de AplicacionesIntegración de AplicacionesPermite realizar tareas remotasPermite realizar tareas remotas
Soluciones de Flujo de Trabajo Soluciones de Flujo de Trabajo (Workflow)(Workflow)
Integrados con BizTalk©Integrados con BizTalk©
EstándaresEstándares
HTTP, SMTPHTTP, SMTP
XMLXML
SOAPSOAP
InfraestructuraInfraestructura
UDDI, WSDLUDDI, WSDL
UDDI: Mecanismo de descubrimiento UDDI: Mecanismo de descubrimiento de Servicios Web disponiblesde Servicios Web disponibles
http://uddi.microsoft.comhttp://uddi.microsoft.com
WSDL: Lenguaje de definición del WSDL: Lenguaje de definición del Servicio WebServicio Web
http://www.w3.org/TR/wsdlhttp://www.w3.org/TR/wsdl
Formas de ComunicaciónFormas de Comunicación
HTTP-GETHTTP-GETArgumentos en la URLArgumentos en la URL
HTTP-POSTHTTP-POSTArgumentos en el documento enviadoArgumentos en el documento enviado
SOAPSOAPMensaje estructurado, en XML con Mensaje estructurado, en XML con posibilidad de implementar múltiples posibilidad de implementar múltiples formatos, seguridad etc.formatos, seguridad etc.
Creando Web ServicesCreando Web Services
Aplicación WebAplicación WebIndependienteIndependiente
Junto con funcionalidades específicasJunto con funcionalidades específicas
Tipo especial de claseTipo especial de claseExtensión ASMXExtensión ASMX
Los métodos a publicar se marcan Los métodos a publicar se marcan con el atributo con el atributo WebMethodWebMethod
EjemplosEjemplos
VBVB
C#C#
<WebMethod()> _ Public Function TraerDatos() As Data.DataTable End Function
[WebMethod] public Data.DataTable TraerDatos() { }
Publicar un Servicio WebPublicar un Servicio Web
Creado desde Visual Studio, sólo es Creado desde Visual Studio, sólo es necesario publicarlo como un sitio necesario publicarlo como un sitio WebWeb
Usando las herramientas de Usando las herramientas de publicación de VS2005publicación de VS2005
httphttp
FtpFtp
Front Page Server ExtensionsFront Page Server Extensions
¡Copiar y pegar!¡Copiar y pegar!
Publicar un Servicio Web Publicar un Servicio Web (2)(2)
Publicar un Servicio Web Publicar un Servicio Web (3)(3)
Acceder a un Servicio WebAcceder a un Servicio Web
Desde un proyecto, basta con Desde un proyecto, basta con agregar una Referencia Webagregar una Referencia Web
Buscándolo por UDDIBuscándolo por UDDI
Utilizando el vínculo al WSDLUtilizando el vínculo al WSDL
Llamando al servicio Web con el Llamando al servicio Web con el argumento ?wsdlargumento ?wsdl
Acceder a un Servicio Web Acceder a un Servicio Web (2)(2)
Acceder a un Servicio Web Acceder a un Servicio Web (3)(3)
Acceder a un Servicio Web Acceder a un Servicio Web (4)(4)
Acceder a un Servicio Web Acceder a un Servicio Web (5)(5)
Acceder a un Servicio Web Acceder a un Servicio Web (6)(6)
Datos desde Servicios Datos desde Servicios WebWeb
Es preferible utilizar SOAP dada la Es preferible utilizar SOAP dada la riqueza del mensajeriqueza del mensaje
Es posible retornar un XMLEs posible retornar un XML como cadena de caracterescomo cadena de caracteres
O directamente un DataSetO directamente un DataSetPero algunos clientes no lo soportanPero algunos clientes no lo soportan
Encriptación y Servicios Encriptación y Servicios WebWeb
SOAP/XML usan caracteresSOAP/XML usan caracteres
La encriptación suele generar La encriptación suele generar caracteres especiales incompatiblescaracteres especiales incompatibles
SoluciónSoluciónGenerar una cadena de caracteres con Generar una cadena de caracteres con los códigos ANSI de los caracteres, con los códigos ANSI de los caracteres, con algún separador para “reconstruir” en el algún separador para “reconstruir” en el receptorreceptor
123~034~111…….123~034~111…….
Mejoras para Servicios Mejoras para Servicios WebWeb
WSE WSE Actualmente en beta la versión 3Actualmente en beta la versión 3
Específica para ASP.Net 2.0Específica para ASP.Net 2.0
Facilita Facilita autenticación de usuarios autenticación de usuarios
Encriptación de datosEncriptación de datos
Transmisión de grandes volúmenes binariosTransmisión de grandes volúmenes binarios
Permite publicar servicios Web vía TCP sin Permite publicar servicios Web vía TCP sin necesidad de IISnecesidad de IIS
http://msdn.microsoft.com/webservices/webservices/building/wse/default.aspx
ImportanciaImportanciaEs el fundamento de las arquitecturas Es el fundamento de las arquitecturas orientadas a serviciosorientadas a servicios
SOASOA
Publicar las reglas de negocio por una Publicar las reglas de negocio por una interfaz de Servicios Web permite el interfaz de Servicios Web permite el acceso por parte de múltiples clientesacceso por parte de múltiples clientes
WebWeb
Windows FormsWindows Forms
Clientes inteligentesClientes inteligentesDispositivosDispositivos
OfficeOffice