Servicios Web

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

MICROSOFT .

NET

Presentacin 3: Servicios Web


Jueves, 21 de Octubre de 2004

Ivn Bernal, Ph.D.


imbernal@mailfie.epn.edu.ec
http://
wwwfie.epn.edu.ec//ibernal
http://wwwfie.epn.edu.ec

Escuela Politcnica Nacional


Quito Ecuador
Copyright @2004, I. Bernal

Agenda

Visin general 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

Bibliografa (1)

D. Platt, Introducing Microsoft .NET, 3rd


Edition, Microsoft Press, 2003.
ISBN:0735619182.
Nota:

Las transparencias de esta presentacin fue


elaborado tomando como referencia principal el libro
de D. Platt; se utilizan ejemplos y figuras del libro de
Platt.
Algunos captulos, y los ejemplos utilizando C# y
VB.NET estn disponibles gratuitamente en:

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)

J. Webb, Developing Web Applications


with Microsoft Visual Basic.NET and
Visual C#.NET, Microsoft Press, 2003.
ISBN:0735619271.
J. Archer, A. Whitechapel, Inside C#,
Microsoft Press, 2002. ISBN:0735616485.

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)

En el Web, los browsers presentan pginas que viene


de un servidor, para ser consumidas por nosotros
(seres humanos).
Que tal si programas clientes especficos (ya no solo
el browser) pudiesen consumir datos del Internet, as
como lo hacen los humanos.
Dispositivos de cualquier ndole pueden conectarse al
Internet, programas en estos dispositivos podran consumir
datos.
Interfaces especializadas en los clientes (Napster, Kazaa).
Menos trabajo para los servidores ya que el formateo de
los datos en el cliente.
Puedo tener consumidores que no tengan interfaz de usuario.
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 (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.

Se necesitan mecanismos para escribir


rpida y fcilmente programas que se
comuniquen con otros mediante el Internet.
Esfuerzos previos: RPC, DCOM, MSMQ.
Solo trabajan entre sistemas similares.
Un cliente DCOM se comunica con un servidor DCOM.
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 (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.

Servicios Web XML:


Una forma en la que objetos en un servidor
aceptan pedidos de clientes usando el comn
denominador del Internet HTTP/XML.
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 (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

Servicios Web (1)


Para escribir servicios Web en .NET, no se
debe cambiar la forma de programar.
Se escriben los objetos .NET como si fuesen a ser
accedidos directamente por clientes locales.
Se marcan los mtodos con atributos que indican que
se desea que el mtodo est disponible para clientes
del Web, y ASP.NET hace el resto.
resto
ASP.NET automticamente conecta una infraestructura
prefabricada que acepta pedidos con HTTP y los asocia
con llamadas al objeto .NET
El objeto puede trabajar con cualquiera en el Web
que hable HTTP y XML, sin importar el sistema
operativo y ambiente de ejecucin en el que corren.
La infraestructura de comunicaciones del Web la
provee el .NET framework.
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

11

Servicios Web (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

12

Servicios Web (3)


En el lado del cliente se quiere dar la ilusin
de que se estn invocando mtodos en un
objeto local, cuando en realidad se invocan
mtodos en un servicio Web remoto.
.NET provee clases proxy.
Una herramienta de generacin automtica lee la
descripcin del Servicio Web y genera la clase proxy, en el
lenguaje seleccionado para el cliente.
Cuando el cliente realiza un llamada a una funcin en el
proxy, se crea un pedido HTTP y se lo enva al servidor.
Cuando la respuesta regresa del servidor, la clase proxy la
analiza y obtiene los resultados y se retorna del llamado
hecho por el cliente.
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

13

Servicios Web (4)

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

Servicios Web (5)


Existen aspectos comunes a aplicaciones
que no son manejados por el paquete de
conectividad bsico.
Seguridad, entrega confiable de mensajes, integridad
operacional.
Al ser problemas comunes, hace sentido manejarlos a
nivel de Sistema Operativo.
Pero los servicios Web son para interactuar con
sistemas que no son de Microsoft, el proceso de diseo
es lento y requiere compromisos entre muchas partes.
WSE (Web Service Enhancement)

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)

Servicio Web con un mtodo para obtener la


hora en el servidor.
El argumento decide si presentar o no los segundos.

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)

Entre los archivos


generados se tiene:

*.asmx que contiene la


directiva de
procesamiento
WebService, que
incluye como uno de
sus atributos una
referencia a la clase que
implementa la lgica y
expone los mtodos
marcados con el atributo
WebMethod (codebehind).
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

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.

Contiene toda la infraestructura necesaria para


procesar pedidos HTTP y enrutarlos a los mtodos
adecuados en el objeto instanciado.
Para exponer un mtodo a los clientes web, se debe
incluir el atributo WebMethod.
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

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)

ASP.NET puede generar la descripcin a


partir de los metadatos del cdigo del
servicio.
La descripcin est basada en XML
utilizando el vocabulario Web Service
Description Language.
Para obtener la descripcin:
(http://localhost/TimeService/Service1.asmx? WSDL)
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

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

Ejemplo (1): Cliente


La parte de ASP.NET que escucha las
peticiones a un servicio Web, acepta tres
formas de empaquetar los pedidos
(formatos):
HTTP GET
HTTP POST
SOAP

Los dos primeros se conservan por


compatibilidad solamente.

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

Ejemplo (2): Cliente


SOAP (Simple Object Acces Protocol)
Vocabulario XML que describe llamadas a funciones y sus
parmetros.

Un cliente formateara un paquete de pedido


como se indica en la siguiente figura y
utilizara la operacin HTTP POST para
enviarla.
El servicio Web procesa el paquete que
recibe, invoca el mtodo indicado con los
respectivos parmetros y retorna un paquete
de respuesta SOAP.
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

28

Ejemplo (3): Cliente

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

Ejemplo (4): Cliente


Se debe generar proxies en el lado del
cliente para acceder a los servicios
Web.
Proxies se generan de acuerdo al lenguaje del
cliente.
Facilitan el modelo de programacin, es como
estar accediendo localmente un objeto .NET

Wsdl.exe sirve para generar proxies.


El protocolo de transporte predefinido es SOAP.
Alternativas: HttpGet, HttpPost
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

30

Ejemplo (5): Cliente

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

Ejemplo (6): Cliente


Visual Studio ejecuta wsdl.exe internamente,
solicitando un proxy basado en SOAP, en el
lenguaje del proyecto.

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

Ejemplo (7): Cliente

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

Ejemplo (8): Cliente


El archivo que contiene el proxy, Reference.cs
est en un subdirectorio del proyecto

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

Ejemplo (9): Cliente


El archivo que contiene el proxy

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

Ejemplo (10): Cliente


La clase generada se deriva de
SoapHttpClientProtocol.
Se hereda la propiedad Url, que especifica el
URL del servidor al cual se dirigen las
llamadas.
El valor predefinido obtenido del archivo WSDL,
pero que puede cambiarse en tiempo de
ejecucin.

Cuando el cliente llama al mtodo (GetTime)


del proxy, el proxy llama al mtodo genrico
Invoke, tambin heredado.
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

36

Ejemplo (11): Cliente


Invoke crea un paquete SOAP que contiene
el nombre del mtodo, y los parmetros
necesarios, y los enva al servidor sobre
HTTP.
Cuando el paquete SOAP de respuesta
regresa desde el servidor, la clase base
recupera el valor de retorno y lo entrega al
proxy, que a su vez lo retorna al cliente.
Propiedad del proxy: Timeout
Nmero de milisegundos que el proxy esperar por
la respuesta antes de retornar un error.
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

37

Ejemplo (12): Cliente


Por los retardos en la red, que pueden ser
altos, no es posible bloquear el interfaz de
usuario de una aplicacin.
El proxy permite realizar llamadas sincrnica y
asincrnicamente.
BeginGetTime
GetTime y EndGetTime
GetTime..
La primera permite realizar la llamada en un hilo
separado y retorna inmediatamente.
La segunda permite obtener los resultados.
Se puede preguntar peridicamente sobre la finalizacin
de la operacin o recibir notificaciones (callback).
Esto se discuti al hablar de Delegados.

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

Manejo de Estado (1)


Los servicios Web, en su estado natural, no guardan
informacin de estado.
ASP.NET crea una nueva instancia del servicio Web para
cada pedido, y destruye la instancia al final de la llamada.
Esto puede ser lo que se desea; en caso contrario se puede
mantener el estado de los objetos.
El objeto se crea y destruye pero se almacena informacin
indicada.

Se puede utilizar los objetos Session y Application,


que se utilizan en pginas ASP.NET
En servicios Web, por predefinicin los objetos Session estn
deshabilitados.
Para habilitarlos se usan atributos en la definicin del mtodo.
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

39

Manejo de Estado (2)


En cada llamada a un mtodo del servicio se debe crear
un objeto Session, recuperar su estado, y asociarlo al
servicio.
Tambin se requiere espacio para almacenar informacin.

El tiempo de vida del objeto Session es un problema.


Se invoca funcin A del servicio y se guarda informacin en el
objeto Session, luego el cliente invoca la funcin B que depende
del estado almacenado.
Puede ser que el tiempo de vida del objeto Session haya expirado
y sea destruido.
Incrementar el intervalo puede provocar mantener objetos
Session para clientes que ya no los estn utilizando.
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

40

Manejo de Estado (3)


La alternativa es guardar informacin de
estado en el lado del cliente.
El cliente debe enviar la informacin de estado
al servidor cada vez que utilice un mtodo del
servicio.
En el lado del cliente se puede modificar la
informacin de estado; si sta es crtica se debe
encriptar.
No hay que preocuparse por el tiempo de
expiracin del objeto Session, y no se requieren
recursos para almacenar la informacin.
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

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

El cliente procesa esta excepcin como


cualquier otra.
Obtiene el mensaje original.
Cualquier informacin para diferenciar entre las
fuentes de error, debera venir codificada en la
cadena del mensaje.
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

44

Namespace URI (1)


Al generar el servicio Web se utiliza un
namespace predefinido, que debe cambiarse.

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

Namespace URI (2)


El namespace URI permite identificar de
forma nica a un servicio.
Un nombre largo (cualquiera pro nico) que identifica
a todos los servicios Web que yo cree.
Suele comenzar con la direccin URL, porque nadie
mas la debera estar usando.
Se garantiza adems que se est en control de todos
los servicios Web que estn dentro de este
namespace, y que en l no existen conflictos.
Podra argumentarse que la direccin URL sirve para
diferenciarlo de otros, pero se quiere identificar al
servicio de forma independiente de su ubicacin.
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

46

Namespace URI (3)


Un proxy especifica el namespace URI, a mas
de los nombres del servicio y el mtodo que se
desea utilizar.
El servidor compara el URI pedido con el URI que tiene, y
lanza una excepcin si no concuerdan.

Para cambiar el namespace URI se usan


atributos al definir la clase.
Esto luego aparece en el archivo WSDL y luego en los
proxies.

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

Servicios Web Implementados (1)

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

Servicios Web Implementados (2)


My Desktop
Windows

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

Programacin con atributos


Atributos de metadatos.
Son una manera de pasar informacin a la
funcionalidad prefabricada del cdigo del
sistema.
La alternativa es utilizar variables miembro,
haciendo difcil diferenciar atributos
inmutables de tiempo de ejecucin de
aquellos que pueden cambiar durante la
ejecucin del programa.
Esta estrategia hace mas difcil el equivocarse.
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

52

También podría gustarte