Servicios Web
Servicios Web
Servicios Web
NET
Agenda
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Bibliografa (1)
http://www.introducingmicrosoft.net
El presente material (transparencias) y algunas cosas
adicionales, que de seguro encontrarn interesantes,
pueden obtenerlas en:
http://wwwfie.epn.edu.ec/ibernal
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Bibliografa (2)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Objetivo
Presentar una visin global de Servicios
Web.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Introduccin (1)
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Introduccin (2)
Se puede entonces estructurar las
aplicaciones en base a servicios
disponibles en el Web.
Similar a la estructuracin de aplicaciones en base a
componentes a nivel de una mquina.
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Introduccin (3)
Se quiere que un programa escrito para
alguna plataforma se comunique con otros
programas escritos en cualquier plataforma
y escritos por alguien mas.
Independencia a nivel de Sistema Operativo y de la
implementacin interna (del lenguaje: C++, Visual
Basic, etc, de la versin, del vendedor).
Acceso programtico universal.
Consideraciones:
Conjunto de nodos heterogneos, cuyo nmero cambia
de forma aleatoria, que quieren comunicarse con un
servidores y entre si.
Los lenguajes de programacin utilizados en cada
nodo son diversos y probablemente incompatibles.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Introduccin (4)
Se debe estandarizar en dos reas:
Mecanismo para la transmisin de la
informacin en el Internet: HTTP.
Forma de codificar la informacin para
transmisin: XML.
Las dos cosas juntas son la base de Servicios
Web.
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
Introduccin (5)
A web service is a web site intended for
use by computer programs instead of
human beings. (Barclay et al, MSR-TR2002-53)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
10
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
11
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
12
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
13
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
14
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
15
Ejemplo (1)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
16
Ejemplo (2)
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
17
Ejemplo (3)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
18
Ejemplo (4)
Revisando el archivo *.asmx:
<%@ %> inicio de ASP.NET
La directiva de procesamiento WebService indica a
ASP.NET que el cdigo de la pagina debe
exponerse como un servicio Web.
El atributo Language indica a ASP.NET que
compilador usar, de acuerdo al lenguaje utilizado.
El atributo Class indica a ASP.NET que tipo de
objeto activar para los pedidos a este servicio que
se reciban.
Codebehind indica el archivo en donde est el
cdigo.
Nota: si no especifico este atributo, el cdigo
puede estar en el mismo archivo *.asmx y ser
compilado cuando llegue un pedido.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
19
Ejemplo (5)
La clase generada se deriva de
WebService.
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
20
Ejemplo (6)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
21
Ejemplo (7)
ASP.NET ofrece soporte para generar clientes de
prueba.
ASP.NET detecta el acceso directo a la pgina del
servicio Web (http://localhost/TimeService/Service1.asmx)
y no a uno de los mtodos del servicio, y responde
con una pgina que indica las funciones que
soporta el servicio.
Con un click en el nombre de la funcin , ASP.NET
responde con una pgina que provee
funcionalidad para probar la funcin.
Ingresar argumentos y presionar Invoke.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
22
Ejemplo (8)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
23
Ejemplo (9)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
24
WSDL (1)
Para que se desarrollen clientes de los
Servicios Web, estos deben proveer una
descripcin de sus capacidades.
Nombre de las funciones, tipos de los argumentos
y del valor de retorno.
Protocolos soportados (ver grafico anterior: SOAP)
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
25
WSDL (2)
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
26
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
27
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
28
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
29
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
30
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
31
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
32
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
33
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
34
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
35
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
36
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
37
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
38
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
39
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
40
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
41
Excepciones (1)
SEH (Structured Exception Handling) solo
trabaja en .NET porque todos los
programas usan MSIL.
Los Servicios Web No trabajan solo con
.NET, entonces como manejar las
excepciones?
La especificacin de SOAP incluye el
elemento <Fault>
Cuando un Servicio Web lanza una excepcin,
ASP.NET la captura y encapsula el mensaje de error en
un elemento <Fault>.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
42
Excepciones (2)
Por ejemplo, si se intenta acceder a una
propiedad de un objeto Session sin haber
habilitado a ste, se lanza una excepcin.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
43
Excepciones (3)
Un proxy debera leer el elemento
<Fault> y transformarlo en una
excepcin.
System.Web.Services.Protocols.SoapException
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
44
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
45
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
46
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
47
Seguridad (1)
Como los servicios Web corren sobre ASP.NET se
tiene a disposicin lo referente a seguridad.
Esto no es siempre lo que se necesita.
Los clientes de un servicio Web pueden no ser
humanos, pueden ser otros programas.
En autenticacin con WinForms en ASP.NET, se
redirecciona a clientes no autenticados a una forma
para solicitar credenciales.
Tiene a un ser humano como centro del esquema.
Se podran obtener mejores resultados con
autenticacin con Windows, pero eso limita al uso
exclusivo de ambientes Windows.
Los servicios Web intentan ser abiertos para
todos.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
48
Seguridad (2)
Se requiere un mecanismo de
seguridad que trabaje sin importar los
ambientes de software y hardware
que usen los clientes.
No se tiene tal mecanismo de una forma
directa y sencilla.
Se tienen facilidades para implantar un
esquema propio.
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
49
http://terraserver.microsoft.com/
http://terraserver.microsoft.com/
http://soap.amazon.com/
http://www.xmethods.net
Listado de Servicios Web
Oct. 20042004-CICC
ASP.NET
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
50
The Internet
TCP/IP
GoogleSearchService s =
new GoogleSearchService();
foreach (string q in queries)
{ s.doGoogleSearch(myKey, q); }
Implementation via
proxy class and
HTTP transport
Vendor-neutral
XML-encoding
over HTTP
Oct. 20042004-CICC
ASP.NET
Google.com/apis
[WebMethod]
doGoogleSearch(myKey, q)
SOAP
Request
Implementation via
WebService classes
in Web Server
SOAP
Response
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Google
database
Escuela Polit
Politcnica Nacional
Quito - Ecuador
51
Iv
Ivn Bernal, Ph.D.
Ph.D.
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec
Escuela Polit
Politcnica Nacional
Quito - Ecuador
52