You are on page 1of 33

Desarrollo de Aplicaciones

Capítulo 08
Servicios Web

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Agenda
• Repaso sesión anterior.
• Servicios Web
– Introducción
– Qué es un Servicio Web?
– Posibles aplicaciones
– Tecnologías alrededor de los servicios web
• XML
• SOAP
• WSDL
• HTTP
• UDDI
– Transporte de datos
– NET Framework y los servicios Web
• Que veremos la próxima sesión?

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Repaso sesión anterior

• XML
– Estándares soportados
– Estructura y gramática
– XSLT
– XPath

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

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)

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Introducción / Aplicaciones Distribuidas


– La comunicación entre computadoras separadas es algo esencial en
el software moderno y han evolucionado en aplicaciones
distribuidas.
– Los servicios web son una aproximación y/o solución a la
construcción de aplicaciones distribuidas.
– Los servicios web proveen una manera de comunicación entre
distintas aplicaciones o softwares utilizando protocolos de
comunicación estándares (HTTP + XML).
– La arquitectura de los servicios web es una arquitectura orientada a
servicios que permite a las aplicaciones ser distribuidas a través de
redes e internet utilizando cualquier lenguaje y sistema operativo.
– HTTP y XML son tecnologías estandarizadas que son utilizadas en
multiples ambientes aparte de Visual Studio.

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Qué es un Servicio Web?


– Es una pieza de software (componente) que expone
datos y funcionalidad en entornos distribuidos.
– Están basados en XML y son accedidos por internet
mediante protocolos estándar (HTTP, HTTPS, SMTP).
– Utilizan el protocolo de comunicaciones SOAP (Simple
Object Access Protocol). SOAP provee una forma
estándar para presentar mensajes en el formato XML.
– No tienen una interfaz gráfica (como ASP.Net, winforms).
– Todo lo que necesita el consumidor para invocar dichos
métodos es utilizar los protocolos estándar HTTP y XML.
– Permite la comunicación entre sistemas y plataformas
heterogéneos.
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Qué es un Servicio Web?


– Los consumidores pueden utilizar múltiples servicios web
para crear aplicaciones más grandes y distribuidas.
– El consumidor considera el servicio web como una
interface que expone una serie de métodos
(funcionalidad).
– Desde el punto de vista del consumidor, no es
importante el COMO está desarrollado el servicio web.
– Pueden ser construídos con Visual Studio y otras
plataformas de desarrollo (Java, IBM, Oracle, etc.)
– Pueden ser programados con múltiples lenguajes de
programación (C#, VB.Net, C++, J#, F#, Java, etc.)

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Posibles aplicaciones:
– Exponer datos a sistemas externos.
– Entregar datos de órdenes de compra a sistemas
contables.
– Entregar datos de ventas e inventario a sucursales en
múltiples países.
– Entregar información crediticia de un cliente a sistemas
de auditoría.
– Devolver cálculos en base a parámetros recibidos:
• Devolver tu signo del zodiaco en base a tu fecha de nacimiento.
• Devolver el tipo de cambio del dólar/euro en base a la fecha.
• …no hay límites..!!

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Posibles aplicaciones:
Contoso
Micropayment Woodgrove
Web Service Bank Web
Service
Firewall

Firewall
Internet

Web Service
Consumer

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Posibles aplicaciones:

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Posibles aplicaciones:

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Posibles aplicaciones:

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– XML
• Estándar 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 .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– HTTP
• Es el protocolo estándar por donde transita la información y
datos de los servicios web.
• Es un protocolo orientado a transacciones y sigue el esquema
petición-respuesta entre un cliente y un servidor.
• La información transmitida se le llama recurso:
– Archivos
– Resultado de la ejecución de un programa
– Una consulta a una base de datos
– Un documento traducido, etc.
• Es un protocolo sin estado, es decir no guarda información de
conexiones anteriores. (ASP.Net cubre ese brecha).

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– SOAP
• Protocolo de mensajería basado en XML y estandarizado por la W3C.
• Construído sobre el protocolo HTTP.
• Especifica las reglas necesarias para la comunicación con los servicios
web.
• La traducción entre las llamadas a los métodos y los mensajes SOAP
son 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 métodos)
– Como procesar las respuestas.

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– SOAP

SOAP Request

<Add>
HTTP <n1>2</n1>
<n2>4</n2>
</Add>
Web
Client
<AddResult> Service
<sum>6</sum> HTTP
</AddResult>
SOAP Response

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– SOAP
<soapv:Envelope
xmlns:soapv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://www.develop.com/schemas/math" SOAP
> Frame
<soapv:Body>
<ns1:Add>
<n1>22</n1>
Payload
<n2>33</n2>
</ns1:Add>
</soapv:Body>
</soapv:Envelope>

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– WSDL (Web Service Description Language)
• Permite describir totalmente el servicio web en tiempo de
desarrollo / ejecución.
• Provee la descripción de los métodos del servicio web.
• Provee la información de los tipos necesarios para la invocación
de los métodos (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 información brindada por el WSDL permite a los
consumidores, construir los mensajes SOAP en una forma que el
servicio web los comprenda.
• WSDL es entendido por varios clientes: NET, Java, Macromedia
Flash, Oracle, etc.
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– WSDL (Web Service Description Language)

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– WSDL

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– WSDL (WSDL de un servicio web)

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– UDDI (Universal Description, Discovery and Integration)
• Tecnología que permite ubicar servicios web.
• Es un protocolo para el descubrimiento de servicios web y
repositorio de los mismos.
• Permite el registro de los servicios web y su relación con los
negocios.
• Permite la categorización y listado de servicios web sobre los
servidores UDDI.
• Las aplicaciones pueden realizar consultas UDDI para descubrir
los servicios y sus capacidades.
• No es obligatorio y solo es requerido para publicar información
de negocio y/o técnica 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 .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– UDDI (Universal Description, Discovery and Integration)

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Tecnologías alrededor de los servicios web


– UDDI
UDDI (Web
Service Broker)

Publish Find
Internet

Bind
Web Service
Provider Web Service
Consumer
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Transporte del servicio web

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• Detalle del transporte

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• NET Framework y los servicios Web


– Los servicios Web se implementan como: ASP.Net Web Services.
– Se implementan mediante archivos .asmx (métodos a exponer y su
lógica).
– 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 se
ejecutan sobre un servidor Web (IIS).
– ASP.Net permite acceder a las páginas .asmx desde un browser.
– Los métodos requieren el atributo [WebMethod].
– Para que el cliente pueda invocar los servicios web, el desarrollador
debe crear una clase proxy.

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
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 información del archivo .asmx o del WSDL, Visual Studio
crea la clase proxy automáticamente en el proyecto.
– La aplicación cliente instancia el proxy e invoca los métodos
expuestos como cualquier clase de .NET.
– Las peticiones y respuestas serán canalizadas por el proxy.
– Los servicios Web pueden ser invocados en forma asíncrona.
– Los servicios Web ASP.Net pueden utilizar objetos de ASP.Net para
manejar el estado.
– Los servicios Web ASP.Net pueden usar transacciones.

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web

• NET Framework y los


servicios Web
1. El cliente manda un
pedido (request) por la
página .asmx (Servicio
Web)
2. El archivo .asmx es
cargado en el dominio de
la aplicación y ejecutado.
3. El resultado de la
ejecución es devuelto al
cliente via SOAP.

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Servicios Web
using System.ComponentModel;
• NET Framework y los using System.Web.Services;

servicios Web namespace WSSistema


– Ejemplo {
[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;
}
}
}

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Que veremos la próxima sesión?

• Se culminó los aspectos teóricos.


• Revisión de proyectos y práctica final.

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Fin de la sesión

• Dudas, comentarios, sugerencias?


• Comunicarse por email a eriveraa@gmail.com
• Gracias por su atención !!

Desarrollo de aplicaciones .NET


Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)

You might also like