PDF de programación - Servicios Web

Imágen de pdf Servicios Web

Servicios Webgráfica de visualizaciones

Publicado el 6 de Mayo del 2020
767 visualizaciones desde el 6 de Mayo del 2020
9,1 MB
71 paginas
Creado hace 11a (05/10/2012)
Servicios web

Jorge Iván Meza Martínez

[email protected]

Especialización en Gestión de Redes de Datos

Universidad Nacional de Colombia – Sede Manizales

1/71

Contenidos

● Que es un servicio web.
● Tecnologías apoyan su implementación.
● Arquitectura de sus componentes.
● Tipos principales.

– REST
– SOAP

● Utilidad de los servicios web.
● Ejemplo de implementación servicio web SOAP en

Java utilizando Netbeans JEE.

● Ejemplo consumir servicio web SOAP desde PHP.

2/71

Evaluación pre-contenido

1.Qué es un servicio web ?
2.Cuál es la utilidad de los servicios web ?
3.Para qué sirven XML y JSON ?
4.Qué son RDF, CSV, RSS, ATOM, KML ?
5.Puedo desde una tecnología específica (Java por

ejemplo) consumir servicios web desarrollados en otra
distinta (.NET por ejemplo) ?

6.Qué ventajas/desventajas encuentra entre los servicios

web y la invocación remota de métodos ?

3/71

Qué es un servicio web ?

“a software system designed to support interoperable

machine-to-machine interaction over a network”.

-W3C defintion

4/71

Introducción

● Proveen una interfaz de servicio conocida para la

interacción entre cliente y servidor como lo hace el
navegador.

● Los clientes acceden a servicios remotos (request) y

obtienen respuestas (response) codificadas
usualmente con XML (o JSON) a través del
protocolo HTTP (request-reply).

● Apoyan la interoperabilidad en un mundo

heterogéneo: mashups, grid y cloud computing
(middleware).

5/71

Introducción

● Apoya el desacoplamiento en un sistema distribuido

al minimizar las dependencias entre servicios.

● Se consideran una especialización o extensión de la

web.

● Sin embargo sus servidores no necesariamente

deben ser servidores web, ya que estos últimos sólo
proveen el servicio HTTP básico.

● Requiere de un método para la representación de
datos y el marshalling de los mensajes → XML.

6/71

Introducción

● El protocolo SOAP determina las para que se

empaqueten los mensajes utilizando XML.

● Generalmente también proveen una descripción de
la interfaz del servicio → Web Service Description
Language (WSDL).

● También es posible incluír un servicio de directorio

para servicios web → Universal Description
Discovery and Integration (UDDI).

7/71

Introducción

● XML Security implementa la seguridad en los

mensajes: cifrar y firmar.

● Su implementación puede utilizar middlewares

como los siguientes.

– .NET Web services (Microsoft)
– JAX-RPC (Oracle)
– Apache Axis (Apache)

8/71

Arquitectura general

Request

SOAP

Protocolo HTTP

Cliente

Red

Ops

WSDL

Servidor

SOAP

Response

Recursos

9/71

Infraestructura y componentes

10/71

Combinación de servicios

11/71

Tipos de servicios web

● SOAP → Simple Object Access Protocol.
● REST → REpresentational State Transfer.

(RESTful).

12/71

REST

● El cliente accede al estado de los recursos remotos

mediante URLs y las operaciones o verbos del
protocolo HTTP.

– GET → obtener información del estado (idempotente).
– PUT → modificar el estado.
– DELETE → remover el recurso.
– POST → crear el recurso.

● La identificación de los recursos se realiza a través

del URI → Nice URLs.

13/71

14/71

15/71

REST

● No existe un estándar oficial ya que es un estilo de

arquitectura y no un protocolo.

● La representación de los mensajes se puede realizar

en diferentes formatos: XML, JSON, RDF, CSV,
TXT, RSS, ATOM, KML, ...

16/71

17/71

Ejemplo: Twitter

● POST

https://api.twitter.com/1.1/statuses/update.json

status=Maybe%20he%27ll%20finally%20find
%20his%20keys.%20%23peterfalk

● GET

https://api.twitter.com/1.1/statuses/show.json?
id=210462857140252672

18/71

Ejemplo: Twitter

● 200 OK: Success!
● 304 Not Modified
● 400 Bad Request
● 401 Unauthorized
● 403 Forbidden
● 404 Not Found
● 406 Not Acceptable
● 420 Enhance Your Calm
● 500 Internal Server Error
● 502 Bad Gateway
● 503 Service Unavailable

19/71

Ejemplo Geonames - XML

http://api.geonames.porg/countryInfo?
lang=es&country=CO&username=demo&style=full

20/71

Ejemplo Geonames - XML

21/71

Ejemplo Geonames - JSON

http://api.geonames.org/countryInfoJSON?
formatted=true&lang=es&country=CO&username
=demo&style=full

22/71

Ejemplo Geonames - JSON

23/71

Ventajas de REST

● Independiente de lenguaje y plataforma.
● Es mas simple de desarrollar que con SOAP.
● Baja curva de aprendizaje.
● Menor dependencia a las herramientas.
● No necesita una capa de mensajería adicional.
● Cercano a la filosofía de la web.

24/71

Desventajas de REST

● Sólo es útil en un modelo de comunciación punto a
punto. No en sistemas distribuidos en los cuales se
pase por varios intermediarios.

● Falta de estándares: seguridad, políticas, fiabilidad

de los mensajes, etc.

● Depende del modelo de transporte de HTTP.

25/71

SOAP

● Es el sucesor de XML-RPC.
● Depende de XML para empaquetar sus mensajes.
● Originalmente se basó en HTTP pero puede ser

utilizado con otros protocolos como SMTP o JMS.

● Es extensible → módulos.
● Neutral → diferentes protocolos de transporte.
● Independiente → modelo de programación.

26/71

Protocolo XML

● Sobre (envelope) → que hace parte del mensaje y

como procesarlo.

● Reglas de codificación (encoding rules) → tipos de

datos.

● Convención para representar las invocaciones

remotas y sus respuestas.

27/71

Sobre SOAP

28/71

Request (POST)

29/71

Request (Sobre)

30/71

Response (Sobre)

31/71

32/71

Web Service Definition Language

(WSDL)

33/71

WSDL

● Service → funciones publicadas.
● Endpoint → punto de conexión (HTTP URL).
● Binding → formatos de mensaje y representación

de datos.

● Interface → operaciones que pueden ser solicitadas

y los mensajes requeridos.

● Operation → acciones SOAP y codificación del

mensaje.

● Types → descripción de los datos.

34/71

Experimentar

● Tabla periódica

http://www.webservicex.net/periodictable.asmx?
wsdl

● Conversor de moneda

http://www.webservicex.net/CurrencyConvertor.
asmx?wsdl

● Geo IP Service

http://www.webservicex.net/geoipservice.asmx?
wsdl

35/71

Ventajas de SOAP

● Independiente de lenguaje, plataforma y transporte.
● Diseñado para ser utilizado en ambientes

distribuidos.

● Es el estándar de hecho para los servicios web.
● Tiene buen soporte para otros estándares (WSDL,

WS-*), herramientas y proveedores.

● Provee internamente manejo de errores.
● Es extensible.

36/71

Desventajas de SOAP

● Conceptualmente es mas complejo que REST.
● Su comunicación requiere de mas mensajes

(verbose).

● La curva de aprendizaje es mas empinada.
● Se tiende a depender mas de herramientas para su

desarrollo.

37/71

38/71

Ejemplo implementación servicio web

SOAP desde Java

● Crear el proyecto web
● Crear el servicio web
● Agregar operaciones al servicio web
● Probar su funcionamiento
● Obtener su WSDL
● Invocar el servicio web desde un cliente JSP

39/71

Crear el proyecto

40/71

Tipo del proyecto

41/71

Nombre y ubicación

42/71

Servidor de aplicaciones

43/71

Proyecto creado

44/71

Crear un nuevo servicio web

45/71

Nombre para el nuevo servicio web

46/71

Nuevos elementos del proyecto

47/71

Implementación de las operaciones del

servicio web

48/71

Operaciones del servicio web en vista

de diseño

49/71

Agregar una nueva operación

50/71

Servicio web en vista de diseño

51/71

Implementación de la operación gritar

52/71

Agregar operación directamente

53/71

Probar el servicio web

54/71

JSP de demostración

55/71

Información del servicio web

http://localhost:8080/HolaMundo/MiServicio

56/71

WSDL del servicio web

http://localhost:8080/HolaMundo/MiServicio?wsdl

57/71

Probador del servicio web

http://localhost:8080/HolaMundo/MiServicio?tester

58/71

Invocación de la operación gritar

59/71

Creación del cliente Java

60/71

Información del servicio web para el

cliente

61/71

Invocar el servicio web desde el cliente

62/71

Elegir la operación deseada

63/71

Personalizar la invocación de la

operación

64/71

El resultado final de la invocación

65/71

66/71

<!doctype html>  
<html lang="es">  

<head>  

<meta charset="utf­8">  
<title>Demostración del cliente SOAP de PHP</title>  
<meta name="author" content="Jorge I. Meza">  

</head>  
<body>  
<?php

$client = new SoapClient("http://localhost:8080/HolaMundo/MiServicio?wsdl");

try 
{

$quote = "Be less curious about people and more curious about ideas";

$response1 =  $client ­> gritar(array("mensaje" => $quote));

$response2 =  $client ­> longitud(array("mensaje" => $quote));

$response3 =  $client ­> hello(array("name" => "Marie Curie"));

}
catch (Exception $e)
{

echo 'Caught exception: ',  $e ­> getMessage(), "\n";

}

echo "It's true: " . $response1 ­> return . "<br>";
echo "Length: " . $response2 ­> return . "<br>";
echo "Greeting: " . $response3 ­> return . "<br>";

?>
</body>  

</html>  

67/71

El resultado final de la invocación

68/71

69/71

Evaluación post-contenido

1. Qué es un servicio web ?
2. Cuál es la utilidad de los servicios web ?
3. Para qué sirven XML y JSON ?
4. Qué son RDF, CSV, RSS, ATOM, KML ?
5. Puedo desde una tecnología específica (Java por

ejemplo) consumir servicios web desarrollados en otra
distinta (.NET por ejemplo) ?

6. Qué ventajas/desventajas encuentra entre los servicios

web y la invocación remota de métodos ?

70/71

Actividad

Se desea desarrollar una calculadora distribuida que
permita realizar las siguientes operaciones: suma, resta,
multiplicación, división y módulo.
Estas operaciones deberán ser realizadas en un servidor
remoto y el cliente sólo se deberá encargar de las tareas
de presentación de la información.
Para esto se deberá implementar un servicio web en
Java que provea las operaciones mencionadas y un
cliente JSP para verificar su funcionamiento.

71/71
  • Links de descarga
http://lwp-l.com/pdf17614

Comentarios de: Servicios Web (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad