Tema 18. Servicios Web.



Documentos relacionados
Un poco de culturilla...1 Crear un servicio Web...1 Usar servicios web...6

GALA. Servicios WEB. Curso ASP.NET Desarrollo de Sitios y Servicios Web con Visual Basic 2010, 24 h. L25. Servicios Web en Integración

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Internet Information Server

Explotación de Sistemas Informáticos IES Murgi PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE

SISTEMAS DE INFORMACIÓN III TEORÍA

2524 Developing XML Web Services Using Microsoft ASP.NET

TciSatSingleW32 Versión 3.1

30 de Mayo de

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

Anexo 2: Configuración del Programa en Red.

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

IIS 7(Internet Information Services 7)

WINDOWS : TERMINAL SERVER

IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA

MANUAL DE AYUDA MANEJO DE SHAREPOINT CON GOTELGEST.NET

Luis Omar Decena Gómez Mat.: Sistema Operativo 2. Prof.: José Doñe. < Crear un Servidor IIS en Windows 2003 Server>.

Cursos de Extensión Universitaria UNIVERSIDAD DE OVIEDO. Servicios Web (II)

Clientes del dominio

GUÍA BÁSICA USUARIO MOODLE 2.6

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

ASP.NET. Prof. Gina Huertas Camacho

Migrar una organización Microsoft Exchange 2003 a Microsoft Exchange 2007

Arturo Cepeda Pérez. Software Engineering Tutor MANUAL DE INSTALACIÓN Y CONFIGURACIÓN

INSTALACIÓN DE MÚLTIPLES SUPERVISOR VS EN RED

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua.

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

Programación Aplicada II Ing. Héctor Abraham Hernández

Conexión a red LAN con servidor DHCP

Creación y administración de grupos de dominio

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Tutorial: Primeros Pasos con Subversion

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Crear un servidor Web en IIS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Software Criptográfico FNMT-RCM

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

- A continuación, se nos abrirá la siguiente ventana pidiendo contraseña, que el cliente haya especificado al instalar Wingest 7

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

PLANTILLAS DE DOCUMENTOS EN WORD 2007

Guía de uso del Cloud Datacenter de acens

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Notas para la instalación de un lector de tarjetas inteligentes.

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

UNIDAD DIDACTICA 6 PERFILES LOCALES Y MÓVILES DE USUARIO

Creación un instalador con Visual Studio.NET. Irene Sobrón. Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao

Unidad Didáctica 12. La publicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

MANUAL DE INSTALACIÓN PLATAFORMA PROGRESA AUTOR: ASAC COMUNICACIONES DEPARTAMENTO DE DESARROLLO NOVIEMBRE DE 2007

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

Insertar Estadísticas de Google Analytics. Tutorial

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

DESARROLLO WEB EN ENTORNO SERVIDOR

DBmessage TM. Manual de usuario

Sistemas de Gestión de Contenidos

Uso de carpetas, archivos e impresoras compartidas

Escudo Movistar Guía Rápida de Instalación Para Windows

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

NORMA 34.14(SEPA) 05/11/2013

Manual Proceso Completo [3/11/2009]

LiLa Portal Guía para profesores

CITRIX Citrix Application Streaming

DEPÓSITO DIGITAL D2 (para ejercicios iniciados a partir del 01/01/2008) Manual de usuario

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Plantillas Office. Manual de usuario Versión 1.1

D.T.Informática S.L. [Sistema hada] hilo Administrador Desarrollo Activo

SERVIDOR WEB. Servidores web IIS (Windows) / Apache (Windows y Linux)

CREACIÓN Y CONFIGURACIÓN DE WIKIS

Guía de instalación de la carpeta Datos de IslaWin

CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003

Implantar Microsoft Software Updates Service (SUS)

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

DOCENTES FORMADORES UGEL 03 PRIMARIA

SERVIDOR DNS DINÁMICO EN WINDOWS 2000/2003 SERVER.

Guía de instalación de la carpeta Datos de ContaWin

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Citrix Conferencing Manager

COPIAS DE SEGURIDAD CON COBIAN BACKUP INSTALACIÓN Y CONFIGURACIÓN

INSTRUCCIONES BÁSICAS DE ACCESO AL PORTAL DEL CLIENTE

REGISTRAR LOS SITIOS WEB MÁS INTERESANTES

SEMANA NO.1. GUIA No.1 INTRODUCCIÓN A DISEÑO WEB CON ADOBE DREAMWEAVER CS3

INFORMACIÓN ACCESOS AL PORTAL PARA EMPLEADOS DE LA DIPUTACIÓN DE SEVILLA INDICE

Manual de Usuaria FACEBOOK. Presentación

MANUAL INSTALACIÓN ABOGADOS MF

Transcripción:

Tema 18. Servicios Web. Los web services son componentes software que permiten a los usuarios usar aplicaciones de negocio que comparten datos con otros programas modulares, vía Internet. Son aplicaciones independientes de la plataforma que pueden ser fácilmente publicadas, localizadas e invocadas mediante protocolos web estándar, como XML, SOAP, UDDI o WSDL. Mediante los web services, las empresas pueden compartir servicios software con sus clientes y sus socios de negocio. Esto ayudará a las compañías a escalar sus negocios, reduciendo el coste en desarrollo y mantenimiento de software, y sacando los productos al mercado con mayor rapidez. La integración de aplicaciones hará posible obtener la información demandada en tiempo real, acelerando el proceso de toma de decisiones. Protocolos que intervienen en un servicio web XML (extensible Markup Language): Un servicio web es una aplicación web creada en XML. Ventajas del XML: o Se trata de un lenguaje abierto. Reconocido por todo el mundo. o Simplicidad de sintaxis. o Independencia del protocolo de transporte. SOAP (Simple Object Access Protocol): Permite que programas que corren en diferentes sistemas operativos se comuniquen. La comunicación entre las diferentes entidades se realiza mediante mensajes que son rutados en un sobre SOAP. WSDL (Web Services Definition Service): Este protocolo se encarga de describir el web service cuando es publicado. Se trata de un dialecto basado en XML sobre el esquema que describe un servicio Web. Un documento WSDL proporciona la información necesaria al cliente para interaccionar con el servicio Web. WSDL es extensible y se pude utilizar para describir, prácticamente, cualquier servicio de red. Los documentos WSDL definen los servicios como colecciones de puntos finales de red o puertos. En WSDL, la definición abstracta de puntos finales y de mensajes se separa de la instalación concreta de red o de los enlaces del formato de datos. Esto permite la reutilización de definiciones abstractas: mensajes, que son descripciones abstractas de los datos que se están intercambiando y tipos de puertos, que son colecciones abstractas de operaciones. Las especificaciones concretas del protocolo y del formato de datos para un tipo de puerto determinado constituyen un enlace reutilizable. Un puerto se define por la asociación de una dirección de red y un enlace reutilizable; una colección de puertos define un servicio. Por esta razón, un documento WSDL utiliza los siguientes elementos en la definición de servicios de red: o Types: contenedor de definiciones del tipo de datos que utiliza algún sistema de tipos (por ejemplo XSD). o Message: definición abstracta y escrita de los datos que se están comunicando. o Operation: descripción abstracta de una acción admitida por el servicio. - 225 -

o o o o Port Type: conjunto abstracto de operaciones admitidas por uno o más puntos finales. Binding: especificación del protocolo y del formato de datos para un tipo de puerto determinado. Port: punto final único que se define como la combinación de un enlace y una dirección de red. Service: colección de puntos finales relacionados UDDI (Universal Description Discovery and Integration): Este protocolo permite la publicación y localización de los servicios. Los directorios UDDI actúan como una guía telefónica de web services. Bloques Constructivos de Servicios Web Descubrimiento UDDI, DISCO Descripción WSDL, Esquema XML, Docs Formato de Mensaje SOAP Codificación XML Transporte HTTP, SMTP y otros Descubrimiento: La aplicación cliente que necesita acceder a la funcionalidad que expone un Servicio Web necesita una forma de resolver la ubicación de servicio remoto. Descripción: Una vez que se ha resuelto el extremo de un servicio Web dado, el cliente necesita suficiente información para interactuar adecuadamente con el mismo. La descripción de un servicio Web implica meta datos estructurados sobre la interfaz que intenta utilizar la aplicación cliente así como documentación escrita sobré el servicio Web incluyendo ejemplo de uso. Formato del mensaje: Para el intercambio de datos, el cliente y el servidor tienen que estar de acuerdo en un mecanismo común de codificación y formato de mensaje. El uso de un mecanismo estándar de codificar los datos asegura que los datos que codifica el cliente los interpretará correctamente el servidor. Codificación: Los datos que se trasmiten entre el cliente y el servidor necesitan codificarse en un cuerpo de mensaje. Dcom utiliza un esquema de codificación binaria para serializar los datos de los parámetros que se intercambian entre el cliente y el servidor. Transporte: Una vez se ha dado formato al mensaje y se han serializado los datos en el cuerpo del mensaje se debe transferir entre el cliente y el servidor utilizando algún protocolo de transporte. DCOM dispone de varios protocolos propietarios como TCP, SPX, NetBEUI y NetBIOS sobre IPX. - 226 -

Crear un Servicio Web 1. Crear un nuevo sitio Web Servicio web ASP.NET, denominado MiPrimerServicio y que guardaremos bajo la carpeta wwwroot del IIS. 2. Se crea un archivo asmx que será el servicio web con un código de prueba. 3. Seleccionamos el fichero del servicio web Ver en el explorador y nos muestra: Si nos diera un error puede ser debido a que hemos instalado el IIS después de tener instalado el Framework 2.0. Para solucionarlo, debemos ir al panel de control Agregar o quitar software seleccionamos el Framework 2.0 y le damos a eliminar nos aparece una pantalla en la cual nos da la opción para reparar le damos a reparar y finalmente reiniciamos. Con esto queda solucionado el problema 4. Hacemos clic sobre HelloWorld y nos muestra: 5. Al invocar el servicio nos aparece la siguiente pantalla: 6. El archivo Service.asmx comienza con la directiva WebService ASP.NET y establece el lenguaje en Visual Basic y el fichero que contiene el code-behind. <%@ WebService Language="vb" CodeBehind="~/App_Code/Service.vb" Class="Service" %> - 227 -

7. En el fichero service.vb se importa el espacio de nombres System.Web, System.Web.Services y System.Web.Services.Protocols. Seguidamente, se declara la clase HelloWorld. Esta clase se deriva de la clase base WebService; la derivación de la clase base WebService es opcional. Por último, cualquier método que sea accesible como parte del servicio tiene el atributo <WebMethod()> en Visual Basic. 8. Para acceder a la página podemos hacerlo a través de nuestro IIS, http://localhost/ MiPrimerServicio/Service.asmx. La página resultante muestra los métodos públicos para este servicio Web, es decir, aquellos marcados con el atributo WebMethod, así como los protocolos (SOAP o http GET) que se pueden usar para invocar dichos métodos. 9. Al insertar la dirección http://localhost/miprimerservicio/service.asmx?wsdl en el explorador, se devuelve un documento de lenguaje de descripción del servicio web (WSDL). Este documento lo usarán los clientes que tengan acceso al servicio. Consumir servicios web desde Windows Forms 1. Crear un Nuevo proyecto WindowsForms denominado MiClienteWinForm. 2. Añadimos una referencia al servicio web creado previamente. En el explorador de soluciones Agregar Referencia Web o bien especificamos la url donde se encuentra el fichero Service.asmx o bien hacemos clic en Servicios Web del equipo local y de la lista resultante seleccionamos el fichero del servicio web (Service.asmx). 3. Hacemos clic en Agregar referencia. 4. En nuestro formulario incluímos una referencia al espacio de nombres del servicio: Imports MiClienteWinForm.miservicioweb 5. Para hacer la prueba, podríamos poner un botón que al hacer clic muestre el saludo del servicio. El código que tendríamos que incluir sería: 'Crear una instancia al servicio, que en nuestro caso se llama Service Dim saludo As New Service MsgBox(saludo.HelloWorld()) - 228 -

Consumir servicios web desde ASP.NET 1. Crear un Nuevo proyecto web denominado MiClienteWebForm. 2. Añadimos una referencia al servicio web creado previamente. Le cambiamos el nombre de la carpeta default por MiServicio. 3. En el código behind del webform incluímos una referencia al espacio de nombres del servicio: Imports MiServicio. 4. Para hacer la prueba, podríamos poner un botón que al hacer clic muestre el saludo del servicio dentro de un textobox. El código a incluir en el clic del botón sería: Dim saludo As New Service Me.txtSaludo.Text = saludo.helloworld Consumir servicios web teniendo sólo el WSDL En la siguiente URL se explica el proceso completo de crear clientes de servicios web: http://msdn2.microsoft.com/es-es/library/w3h45ebk(vs.80).aspx. En muchas ocasiones, disponemos del fichero WSDL que define un servicio web y nos interesaría poder consumirlo. Para ello el SDK del Framework de Microsoft nos proporciona una herramienta, wsdl.exe, que es capaz de generarlos (http://msdn2.microsoft.com/es-es/library/d2s8y7bs(vs.80).aspx). Esta herramienta se encuentra en el directorio C:\Archivos de programa\microsoft Visual Studio 8\SDK\v2.0\Bin. Antes de usarlo, debemos hacer que en las variables de entorno de nuestro ordenador se añadan las del SDK para poder ejecutarlo desde cualquier parte del equipo ya que se hace a nivel de consola. Esto se consigue ejecutando el fichero bat sdkvar.bat que se encuentra en este mismo directorio. Vamos a crear el proxy del servicio web que hemos elaborado previamente: 1. Nos situamos en el directorio c:\inetpub\wwwroot\ y creamos una nueva carpeta MiPrimerCliente. 2. Abrimos una consola de msdos y nos situamos en este directorio. 3. Si tenemos el wsdl del servicio web que queremos consumir en el directorio, la forma de generar el cliente sería: wsdl esquema.wsdl /language:vb. 4. Si tenemos la url del servicio web la sintaxis sería: wsdl http://localhost/miprimerservicio/service.asmx?wsdl /language:vb. 5. Cualquiera de estas dos acciones, nos genera un fichero vb que contiene una clase Proxy del servicio web que queremos consumir. Si nos fijamos en la clase Proxy que hemos generado contiene tres métodos para llamar al servicio web: HelloWorld, BeginHelloWorld y EndHelloWorld. El método HelloWorld de la clase de proxy se utiliza para comunicarse de forma sincrónica con el método de servicio Web, mientras que los métodos BeginHelloWorld y EndHelloWorld se utilizan para comunicarse de forma asincrónica con un método de servicio Web. Una vez generado el Proxy ya sólo nos queda crear una aplicación cliente que llame a los métodos de la clase Proxy. Crearemos un cliente (Windows form o web form) que incluya una referencia a la clase Proxy generada. Se creará una instancia a la clase Proxy y se llamará al método de la clase Proxy correspondiente al método del servicio web con el queremos comunicarnos. - 229 -

Crear un servicio web que tenga acceso a datos En la siguiente URL se explica cómo crear un servicio web que ataca la base de datos Northwind y devuelve un DataSet que puede ser usado por cualquier cliente: http://www.elguille.info/net/aspnet/ejemplosmut2005.aspx Probar el ejemplo que se plantea: 1º crear el servicio web que ataque la base de datos y luego crear dos aplicaciones una webform y otra Windows form que ataquen el servicio, tal y como se explica en el ejemplo. Ejemplos de el Guille sobre servicios web En la siguiente URL se da acceso a varios servicios web para poder hacer alguna prueba. También se explica cómo usarlos: http://www.elguille.info/net/webservices/indice.asp Práctica Crear y Consumir un ServicioWeb - Calculadora 1. Crear un nuevo proyecto de servicio web denominado Calculadora. 2. Dentro de este nuevo servicio, declararemos 4 funciones, que reciben como parámetros dos números a y b: suma, resta, división y multiplicación. 3. Comprobaremos que los métodos creados funcionan, para ello nos situaremos en el fichero del servicio Ver en el Explorador. 4. Creremos un nuevo proyecto web denominado ClienteCalculadora. 5. Tendremos que incluir la referencia web a nuestro servicioweb y continuación hacer un import en el código de la página asp. En este punto, podemos hacerlo o bien en el código behind o en el código in-line. 6. Se ha de crear un formulario como el que se muestra a continuación: 7. Los botones deberán llamar a la función del servicio web que corresponda y mostrar el resultado en la parte inferior. Se ha de comprobar que los datos introducidos sean numéricos para ello podemos usar las etiquetas vistas para validación. - 230 -

Práctica Consumir un ServicioWeb externo 1. En la siguiente url disponemos del WSDL de un servicio Web que nos permite hacer búsquedas en Google: http://api.google.com/googlesearch.wsdl. 2. Creamos el Proxy vb para el servicio web. Así podremos abrirlo, y ver que propiedades y métodos tiene, cosa que nos puede ayudar a ver qué podemos usar y cuando (wsdl.exe). 3. Vamos a necesitar una clave para poder usar el servicio. A partir del 5 de diciembre de 2006, Google ya no da más códigos, así que todos tendremos que usar el siguiente: Cne9tftQFHIcdf76xWaHIO+46UKNkqWj. Este código será el primer campo que se le pase al método dogooglesearch. 4. Vamos a crear una aplicación de Windows que consuma este servicio, denominada ConsumirBusquedaGoogle. La pantalla principal sería: 5. Lo primero será incluir la referencia web del WSDL en nuestro proyecto. A continuación incluir la referencia a él en el código de nuestro proyecto. 6. El botón buscar, debe: - Crear un objeto de búsqueda Google (GoogleSearchService). Pe: busqueda - Crear un objeto donde almacenar los resultados de la búsqueda Google (GoogleSearchResult). Pe: resultado - Realizar la búsqueda usando el método dogooglesearch sobre el objeto busqueda y almacenarlo en el objeto resultado. - El número estimado de resultados es una propiedad (estimatedtotalresultscount) del objeto resultado. 7. Ahora, crearemos un nuevo proyecto Web denominado ConsumirBusquedaGoogle_asp cuya página principal sería: Y la de resultados: - 231 -

8. Tendremos que incluir la referencia al WSDL del servicio. Para realizar la búsqueda ser hará de la misma forma. En esta ocasión limitaremos el número de resultados a 15. 9. Mostraremos los enlaces de las páginas encontradas. Para ello haremos que los resultados se almacenen en un repeater de asp. Por ejemplo, si mi repeater se llama resultadosencontrados el código que tendríamos que añadir a continuación de haber hecho la búsqueda sería el siguiente: resultadosencontrados.datasource = resultado.resultelements resultadosencontrados.databind() 10. Luego, en el código asp tendremos que utilizar el <asp:repeater> de la siguiente forma: <asp:repeater id="resultadosencontrados" runat="server" visible="true"> <ItemTemplate> <br /> <a href="<%# DataBinder.Eval(Container.DataItem, "URL") %>"><%# DataBinder.Eval(Container.DataItem, "Title")%> </a> <br /><%# DataBinder.Eval(Container.DataItem, "snippet") %> %> <br /><%# DataBinder.Eval(Container.DataItem, "URL") %> </ItemTemplate> </asp:repeater> 11. Lo que hacemos en este código es primero poner en el atributo ref. del enlace la URL del resultado obtenido, a continuación muestra el título y el comentario y por último se repite la url pero esta vez se muestra. - 232 -