Sesión 08 - Servicios Web

download Sesión 08 - Servicios Web

of 33

Transcript of Sesión 08 - Servicios Web

  • 8/14/2019 Sesin 08 - Servicios Web

    1/33

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Desarrollo de Aplicaciones

    Captulo 08

    Servicios Web

  • 8/14/2019 Sesin 08 - Servicios Web

    2/33

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Agenda

    Repaso sesin anterior. Servicios Web

    Introduccin Qu es un Servicio Web? Posibles aplicaciones Tecnologas alrededor de los servicios web

    XML SOAP

    WSDL HTTP UDDI

    Transporte de datos NET Framework y los servicios Web

    Que veremos la prxima sesin?

  • 8/14/2019 Sesin 08 - Servicios Web

    3/33

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Repaso sesin anterior

    XML

    Estndares soportados

    Estructura y gramtica

    XSLT

    XPath

  • 8/14/2019 Sesin 08 - Servicios Web

    4/33

    Servicios Web

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Referencias

    1. Apress Pro Dot Net 2.0 XML Caps 9.2. Professional C# 2005 with .NET 3.0 Caps 36 (Web Services with ASP.Net)3. Understanding .NET Caps 7 (Building Distributed Applications)

  • 8/14/2019 Sesin 08 - Servicios Web

    5/33

    Servicios Web

    Introduccin / Aplicaciones Distribuidas

    La comunicacin entre computadoras separadas es algo esencial enel software moderno y han evolucionado en aplicacionesdistribuidas.

    Los servicios web son una aproximacin y/o solucin a laconstruccin de aplicaciones distribuidas.

    Los servicios web proveen una manera de comunicacin entredistintas aplicaciones o softwares utilizando protocolos decomunicacin estndares (HTTP + XML).

    La arquitectura de los servicios web es una arquitectura orientada aservicios que permite a las aplicaciones ser distribuidas a travs de

    redes e internet utilizando cualquier lenguaje y sistema operativo.

    HTTP y XML son tecnologas estandarizadas que son utilizadas enmultiples ambientes aparte de Visual Studio.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    6/33

    Servicios Web

    Qu es un Servicio Web?

    Es una pieza de software (componente) que exponedatos y funcionalidad en entornos distribuidos.

    Estn basados en XML y son accedidos por internetmediante protocolos estndar (HTTP, HTTPS, SMTP).

    Utilizan el protocolo de comunicaciones SOAP (SimpleObject Access Protocol). SOAP provee una formaestndar para presentar mensajes en el formato XML.

    No tienen una interfaz grfica (como ASP.Net, winforms).

    Todo lo que necesita el consumidor para invocar dichosmtodos es utilizar los protocolos estndar HTTP y XML.

    Permite la comunicacin entre sistemas y plataformasheterogneos.Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    7/33

    Servicios Web

    Qu es un Servicio Web?

    Los consumidores pueden utilizar mltiples servicios webpara crear aplicaciones ms grandes y distribuidas.

    El consumidor considera el servicio web como unainterface que expone una serie de mtodos

    (funcionalidad).

    Desde el punto de vista del consumidor, no esimportante el COMO est desarrollado el servicio web.

    Pueden ser construdos con Visual Studio y otras

    plataformas de desarrollo (Java, IBM, Oracle, etc.)

    Pueden ser programados con mltiples lenguajes deprogramacin (C#, VB.Net, C++, J#, F#, Java, etc.)

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    8/33

    Servicios Web

    Posibles aplicaciones:

    Exponer datos a sistemas externos.

    Entregar datos de rdenes de compra a sistemascontables.

    Entregar datos de ventas e inventario a sucursales enmltiples pases.

    Entregar informacin crediticia de un cliente a sistemasde auditora.

    Devolver clculos en base a parmetros recibidos:

    Devolver tu signo del zodiaco en base a tu fecha de nacimiento.

    Devolver el tipo de cambio del dlar/euro en base a la fecha.

    no hay lmites..!!

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    9/33

    Servicios Web

    Posibles aplicaciones:

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Firewall

    ContosoMicropaymentWeb Service

    WoodgroveBank Web

    Service

    FirewallInternet

    Web ServiceConsumer

  • 8/14/2019 Sesin 08 - Servicios Web

    10/33

    Servicios Web

    Posibles aplicaciones:

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    11/33

    Servicios Web

    Posibles aplicaciones:

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    12/33

    Servicios Web

    Posibles aplicaciones:

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    13/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    14/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    XML

    Estndar para el intercambio de datos y de plataforma neutral.

    Permite representar datos en forma definida por el usuario.

    Es estandarizado por la W3C.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    15/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    HTTP

    Es el protocolo estndar por donde transita la informacin ydatos de los servicios web.

    Es un protocolo orientado a transacciones y sigue el esquema

    peticin-respuesta entre un cliente y un servidor. La informacin transmitida se le llama recurso:

    Archivos

    Resultado de la ejecucin de un programa

    Una consulta a una base de datos

    Un documento traducido, etc.

    Es un protocolo sin estado, es decir no guarda informacin deconexiones anteriores. (ASP.Net cubre ese brecha).

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    16/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    SOAP Protocolo de mensajera basado en XML y estandarizado por la W3C.

    Construdo sobre el protocolo HTTP.

    Especifica las reglas necesarias para la comunicacin con los serviciosweb.

    La traduccin entre las llamadas a los mtodos y los mensajes SOAPson realizados por el NET Framework.

    Es necesario entender SOAP para entender el funcionamiento behind

    the scenes

    Define:

    El formato de los mensajes SOAP. Como debe ser codificada la data.

    Como enviar los mensajes (llamadas a los mtodos)

    Como procesar las respuestas.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    17/33

    Client

    2

    4

    SOAP Request

    6

    SOAP Response

    Web

    Service

    HTTP

    HTTP

    Servicios Web

    Tecnologas alrededor de los servicios web

    SOAP

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    18/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    SOAP

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    22

    33

    Payload

    SOAPFrame

  • 8/14/2019 Sesin 08 - Servicios Web

    19/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    WSDL (Web Service Description Language)

    Permite describir totalmente el servicio web en tiempo dedesarrollo / ejecucin.

    Provee la descripcin de los mtodos del servicio web.

    Provee la informacin de los tipos necesarios para la invocacinde los mtodos (string, int, datasets, datatable, etc.)

    Para describir el servicio web utiliza esquemas XML.

    Acceso al WSDL de un servicio web (ejemplo):

    http://localhost/NorthwindServices/Service.asmx?wsdl

    Toda esta informacin brindada por el WSDL permite a losconsumidores, construir los mensajes SOAP en una forma que elservicio web los comprenda.

    WSDL es entendido por varios clientes: NET, Java, MacromediaFlash, Oracle, etc.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    20/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    WSDL (Web Service Description Language)

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    21/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    WSDL

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    22/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    WSDL (WSDL de un servicio web)

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    23/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    UDDI (Universal Description, Discovery and Integration)

    Tecnologa que permite ubicar servicios web.

    Es un protocolo para el descubrimiento de servicios web yrepositorio de los mismos.

    Permite el registro de los servicios web y su relacin con losnegocios.

    Permite la categorizacin y listado de servicios web sobre losservidores UDDI.

    Las aplicaciones pueden realizar consultas UDDI para descubrir

    los servicios y sus capacidades. No es obligatorio y solo es requerido para publicar informacin

    de negocio y/o tcnica hacia clientes potenciales (marketing).

    Se puede pensar como un directorio de servicios web.

    Est soportado por Microsoft Visual Studio y otras plataformas.Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    24/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    UDDI (Universal Description, Discovery and Integration)

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    25/33

    Servicios Web

    Tecnologas alrededor de los servicios web

    UDDI

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    UDDI (WebService Broker)

    Web ServiceProvider Web Service

    Consumer

    Publish Find

    Bind

    Internet

  • 8/14/2019 Sesin 08 - Servicios Web

    26/33

    Servicios Web

    Transporte del servicio web

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    27/33

    Servicios Web

    Detalle del transporte

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    28/33

    Servicios Web

    NET Framework y los servicios Web

    Los servicios Web se implementan como: ASP.Net Web Services. Se implementan mediante archivos .asmx (mtodos a exponer y su

    lgica).

    No tienen interfaz de usuario.

    Acceder a los archivos .asmx es similar a acceder a los archivos.aspx (ASP.Net)

    Funcionalmente, son aplicaciones web (ASP.Net applications) y seejecutan sobre un servidor Web (IIS).

    ASP.Net permite acceder a las pginas .asmx desde un browser.

    Los mtodos requieren el atributo [WebMethod]. Para que el cliente pueda invocar los servicios web, el desarrollador

    debe crear una clase proxy.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    29/33

    Servicios Web

    NET Framework y los servicios Web

    Los proxies exponen la funcionalidad del servicio web. El proxy se crea al agregar una referencia web a un proyecto

    (windows, web, consola, etc.)

    Con la informacin del archivo .asmx o del WSDL, Visual Studiocrea la clase proxy automticamente en el proyecto.

    La aplicacin cliente instancia el proxy e invoca los mtodosexpuestos como cualquier clase de .NET.

    Las peticiones y respuestas sern canalizadas por el proxy.

    Los servicios Web pueden ser invocados en forma asncrona.

    Los servicios Web ASP.Net pueden utilizar objetos de ASP.Net paramanejar el estado.

    Los servicios Web ASP.Net pueden usar transacciones.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    30/33

    Servicios Web

    NET Framework y los

    servicios Web1. El cliente manda un

    pedido (request) por lapgina .asmx (ServicioWeb)

    2. El archivo .asmx escargado en el dominio dela aplicacin y ejecutado.

    3. El resultado de laejecucin es devuelto al

    cliente via SOAP.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    31/33

    Servicios Web

    NET Framework y los

    servicios Web Ejemplo

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    using System.ComponentModel;

    using System.Web.Services;

    namespace WSSistema

    {

    [WebService(Namespace = "http://ejemplos.org/")]

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    [ToolboxItem(false)]

    public class WSBasico : System.Web.Services.WebService

    {

    [WebMethod]

    public string HelloWorld()

    {

    return "Hello World";

    }

    [WebMethod]public double Sumar(double a, double b)

    {

    return a + b;

    }

    }

    }

  • 8/14/2019 Sesin 08 - Servicios Web

    32/33

    Que veremos la prxima sesin?

    Se culmin los aspectos tericos.

    Revisin de proyectos y prctica final.

    Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

  • 8/14/2019 Sesin 08 - Servicios Web

    33/33

    Desarrollo de aplicaciones .NET

    Fin de la sesin

    Dudas, comentarios, sugerencias?

    Comunicarse por email a [email protected]

    Gracias por su atencin !!