Upload
eriveraa
View
223
Download
0
Embed Size (px)
Citation preview
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 !!