PDF de programación - Servicios Web: SOAP y REST

Imágen de pdf Servicios Web: SOAP y REST

Servicios Web: SOAP y RESTgráfica de visualizaciones

Publicado el 3 de Junio del 2021
1.285 visualizaciones desde el 3 de Junio del 2021
603,8 KB
33 paginas
Creado hace 9a (10/03/2015)
Tuesday, March 10, 2015

Servicios Web:
SOAP y REST

Laboratorio de Tecnologías de Información

Dr. Víctor J. Sosa Sosa

Cinvestav-Tamaulipas

Caso de estudio:
Caso de estudio:
Caso de estudio:
Caso de estudio:
Proyecto Axis (SOAP)
Proyecto Axis (SOAP)
Proyecto Axis (SOAP)
Proyecto Axis (SOAP)
[email protected]
[email protected]
[email protected]
[email protected]

Objetivos y temas de la sesión

 Introducción a los Servicios Web con SOAP y REST
 Estándares de interoperabilidad para los Servicios
Web: portabilidad usando los APIs de Java (recordar
que Java ya es oficialmene Open Source bajo GPLv2).
 Conocer algunas opciones para producir y consumir

servicios Web con software libre:
 Proyecto

Axis

ejemplo
(construcción, despliegue e invocación de servicios).
 http://ws.apache.org/axis/ o http://ws.apache.org/axis2/

(Java): Desglosamos

sencillo

 Proyecto Mono (C#): Descripción breve.

 http://www.mono-project.com/

Tuesday, March 10, 2015

1

Tuesday, March 10, 2015

Servicios Web (Web Services)
Definiciones







Componentedesoftwarereutilizableydistribuidoqueofreceuna
funcionalidadconcreta,
lenguajede
independientetantodel
programaciónenqueestáimplementadocomodelaplataformade
ejecución
que
auto-contenidas
Aplicaciones
ser
descritas,
pueden
publicadas,localizadaseinvocadassobrelaInternet
(ocualquier
otrared).
ActividadesrelacionadasconlosServiciosWebllevadasenel
WebConsortium(W3C):http://www.w3.org/2002/ws/Activity.html

Tuesday, March 10, 2015

Servicios como abstracción

 La

computación Orientada

a Servicio se
fundamenta en una comunicación que se abstrae
del modelo de comunicación propio del
lenguaje y
de la plataforma de ejecución
 No queremos “saber” si el servicio está programado en

Java, Lisp, C, C++,Fortran, etc…

 No quiero saber si tengo que invocar un procedimiento,

método, función, …

 No quiero saber nada de estructuras de datos en Java,

Lisp, C, C++

 No quiero saber nada de UNIX, Windows,…

Tuesday, March 10, 2015

2

Tuesday, March 10, 2015

Algunas Tecnologías para

Servicios Web

Servidores de aplicaciones para servicios Web:

•Axis y el servidor Jakarta Tomcat (de Apache): ws.apache.org/axisaxisaxisaxis/
•Proyecto Mono: http://www.monomonomonomono-project
project.com/
project
project
•Java Web Services Development Pack (JWSDP) de Sun Microsystems (basado
en Jakarta Tomcat): http://java.sun.com/webservices/
•IBM Lotus Domino a partir de la versión 7.0: www.lotus
lotus.com
lotus
lotus
•ColdFusion MX de Macromedia: http://www.adobe.com/products/coldfusion/
•JOnAS (parte de ObjectWebuna iniciativa de código abierto) :
http://wiki.jonas.objectweb.org/
•Microsoft .NET: http://msdn.microsoft
microsoft.com/netnetnetnetframework/
microsoft
microsoft
•Novell exteNd (basado en la plataforma J2EE):
http://www.novell
novell.com/documentation/extend
extend5
novell
novell
extend
extend
•WebLogic: http://www.beasys.com
•WebSphere: http://www.ibm.com/websphere
websphere
websphere
websphere
•Zope es un servidor de aplicaciones Web orientado a objetos desarrollado en el
lenguaje de programación Python: http://www.zope.org/
•VERASTREAM de Attachmate WRQ para modernizar o integrar aplicaciones
host IBM y VT : http://www.attachmate.com/
•Proyecto NuSoap para PHP: http://dietrich.ganx4.com/nusoap/

Tuesday, March 10, 2015

Servicios de W3C: tecnologías
asociadas

• HTTP/HTTPS:
transportar los datos

Protocolo

ampliamente

aceptado

para

•XML (Extensible Markup Language): se usa para estructurar o
darle formato a la información contenida en los servicios.

• SOAP (Simple Object Oriented Protocol): es usado para
definir el protocolo de invocación/servicio.

• WSDL (Web Services Description Language): se usa para
describir los servicios disponibles.

•UDDI (Universal Description, Discovery, and Integration): se
utiliza para listar los servicios que están disponibles.

• WS-Security, XML-Signature, XML-Encryption, (esquemas para
manejo de seguridad).

Tuesday, March 10, 2015

3

Tuesday, March 10, 2015

SOAP en breve…

 Protocolo basado en XML para

intercambio de información
 Reglas de codificación para
instancias de tipos de datos

 Convenciones para representar

invocaciones RPC

 Diseñado para procesamiento entre

sistemas ligeramente acoplados
 Sin manejo de referencias

remotas

 Usado con XML Schema
 Independiente del transporte
 SOAP con Attachmentspermite
empacar datos de cualquier tipo.

Tuesday, March 10, 2015

Estructura del mensaje
Estructura del mensaje
Estructura del mensaje
Estructura del mensaje

SOAP1.1
SOAP1.1
SOAP1.1
SOAP1.1

<soap:Envelope

Sobre
SOAP

xmlns:soap="http://schemas.xmlsoap.org/soap/encoding/

"

soap:encodingStyle="http://schemas.xmlsoap.org/soap/e

Cabeceras

ncoding/“

<soap:Header>

... ...

</soap:Header>

<soap:Body>

<!–- Código del usuario aqui -->

<soap:Fault>

... ...

</soap:Fault>

</soap:Body>

</soap:Envelope>

[Elemento:

Header]

Elemento:

Body

[Elemento:

Fault]

WSDL en breve…

 Un documento WSDL describe
 Quépuede hacer el servicio
 Dóndereside
 Cómoinvocarlo

 Los WSDLs son como IDLs pero
mucho más flexible y extendible

 Define enlaces para SOAP1.1,

HTTP GET/POST y MIME

 Las descripciones WSDL pueden

ser hechas desde un registro UDDI

Tuesday, March 10, 2015

Estructura de documento
Estructura de documento
Estructura de documento
Estructura de documento

WSDL1.1
WSDL1.1
WSDL1.1
WSDL1.1

Documento

WSDL

[Types]

{Messages}

{Port Types}

{Bindings}

{Services}

4

Tuesday, March 10, 2015

Web Services: Invocación básica (I)

2.- El servicio K
en el servidor A

Servidor

UDDI

1.- ¿Qué
servicio Web
puede hacer X?

3.- ¿Cómo te invoco
servicio K?

4.- Revisa
esto: WSDL

5.- Invoca
operación X
< SOAP >

6.- Resultado de

la operación X

< SOAP >

Cliente

Servidor A

Tuesday, March 10, 2015

Web Services: Invocación básica (II)

Servidor

Contenedor de Web Services

Implementación

del Servicio

3

4

Stub

Servidor

WSDL

int operacionX(int a, int b)
int operacionY(int c, int d)

2

5

Stub

Cliente

Cliente

Aplicación

Cliente

1

6

Tuesday, March 10, 2015

5

Tuesday, March 10, 2015

APIs de Java para Servicios Web

 Mensajes SOAP manejados como objetos Java

 SAAJ ( SOAP with Attachments API for Java)

 Modelo de Programación (RPC)

 JAX-RPC ( JSR101), JSR109, EJB2.1

 Modelo de Programación (Message-oriented)

 JAX-WS (evoultion of JAX-RPC)

 Acceso a descripciones WSDL

 JWSDL (JSR110)

 Acceso a registros de Servicios Web

 JAXR (Java API for XML Registries)

 Servicios Web con REST

 JAX-RS (Java API for RESTful Web Services)

Tuesday, March 10, 2015

Modelo de Objetos de SAAJ

SOAPPart

SOAPMessage

AttachmentPart

Node

SOAPElement

SOAPFault

SOAPFaultElement

*

SOAPBody

SOAPHeader

*

SOAPBodyElement

SOAPHeaderElement

*

SOAPEnvelope

Tuesday, March 10, 2015

6

Tuesday, March 10, 2015

JAX-RPC

 Traslada de WSDL/XML a Java

 Traslada de Java a WSDL/XML

 Gestiona Mensajes SOAP con archivos adjuntos

 API para Cliente

 Clases generadas desde WSDL

 Proxy Dinámico

 Interfaz de llamada dinámica DII

 Gestor de mensajes SOAP

 Asociación de tipos extensible

Tuesday, March 10, 2015

JAX-RPC: Arquitectura Física

Descripción WSDL

Cliente

Stub

Endpoint del servicio

WSDL<->Java Mapping

Contenedor

JAX-RPC API

JAX-RPC Cliente

Runtime System

Protocolo (SOAP)

Transporte

Dispatch

JAX-RPC API
JAX-RPC Server
Runtime System

Tuesday, March 10, 2015

7

Tuesday, March 10, 2015

Apache

Axis2: http://axis.apache.org/

axis1: http://axis.apache.org/axis/

Apache Axis

 Máquina de procesamiento SOAP

 Sistema cliente JAX-RPC
 Sistema servidor JAX-RPC ( basado en Servlet)
 Implementación SAAJ
 Arquitectura flexible y extensible
 Herramientas, ejemplos, documentación, …
 Un buen lugar donde aprender Servicios Web !!

 Open-source, auspiciado por Apache

Software Foundation

Tuesday, March 10, 2015

8

Tuesday, March 10, 2015

Instalación y Despliegue de
Apache Axis

 Asegurarse de tener

 J2SE SDK 1.4 o posterior
 Un contenedor de Servlets (ej.

Tomcat)

 descargar xml-axis-rc1-bin.zip de

http://xml.apache.org/axis

 Descomprimirlo y revisar el árbol de

directorios. Note que Axis corre como
Servlet.

 Desplegar Axis.

 Copiar el directorio webapps\axis

al directorio webapps de Tomcat.

 Alternativamente, modificar

server.xml de Tomcat.

 Correr Tomcat: lanzar bin\startup del

directorio raíz de Tomcat

Tuesday, March 10, 2015

Estructura de directorio:
Estructura de directorio:
Estructura de directorio:
Estructura de directorio:

axis-1_0

webapps

lib

docs

samples

axis

WEB-INF

lib

classes

web.xml

……

Probar el despliegue..

 Direccionar el navegador a

http://localhost:8080/axis

Tuesday, March 10, 2015

9

Tuesday, March 10, 2015

Un ejemplo sencillo…

•AddFunction: Una clase Java sencilla
con un método que suma dos enteros. Note la
extensión del archivo: .jws (refiere a Java Web
Service).

•Desplegar. Sólo copiamos el archivo
AddFunction.jws al directorio
webapps/axis.

// File: AddFunction.jws
public class AddFunction {

int addInt(int a, int b){

return(a+b);

}

}

• Examinamos su descripción: WSDL.

Dirigimos el navegador a:

http://localhost:8080/axis/AddFunction.jws?wsdl

Tuesday, March 10, 2015

Escribiendo un programa Cliente

 Existen muchas formas para escribir un

programa Cliente:
 Usando Interfaces de Invocación Dinámica (DII)
 Usando la generación de los Stubs desde el

archivo de descripción del servicio WSDL

 Usando un proxy dinámico

 Analizaremos cada una de ellas.

Escribir el cliente requerirá más

trabajo que escribir el servicio ;-)

Tuesday, March 10, 2015

10

Tuesday, March 10, 2015

AddFunctionClient – usando DII

// Archivo: lección1\client\dii\AddFunctionClient.java

import javax.xml.rpc.Call;

import javax.xml.rpc.Service;

import javax.xml.namespace.QName;

public class AddFunctionClient {

public static void
  • Links de descarga
http://lwp-l.com/pdf19265

Comentarios de: Servicios Web: SOAP y REST (1)

Carlos
3 de Junio del 2021
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

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