P. 1
Sesión 08 - Servicios Web

Sesión 08 - Servicios Web

4.5

|Views: 1,903|Likes:
Published by eriveraa
Sesión 08 del Curso Desarrollo de Aplicaciones .NET (2007-II) - Universidad San Ignacio de Loyola (USIL)
Sesión 08 del Curso Desarrollo de Aplicaciones .NET (2007-II) - Universidad San Ignacio de Loyola (USIL)

More info:

Published by: eriveraa on Nov 18, 2007
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/15/2013

pdf

text

original

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 Web Service Woodgrove Bank Web Service

Firewall

Internet

Firewall

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> <n1>2</n1> <n2>4</n2> </Add> <AddResult> <sum>6</sum> </AddResult> SOAP Response

HTTP

Client
HTTP

Web Service

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" > <soapv:Body> <ns1:Add> <n1>22</n1> <n2>33</n2> </ns1:Add> </soapv:Body> </soapv:Envelope>
SOAP Frame

Payload

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
Internet

Find

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

Web Service Consumer

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
• NET Framework y los servicios Web
– Ejemplo
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; } } }
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're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->