Vous êtes sur la page 1sur 22

Introducción a la Tecnología de los

Servicios Web

Tecnologías Software para


Internet
2004
Presentación
Los servicios Web son el elemento clave para
el desarrollo de aplicaciones que operan en
red
Nuevo modo de utilización de los recursos
del Web en forma de ambiente distribuido
Componentes que se pueden integrar
independientemente de la plataforma y del
lenguaje de programación para formar
aplicaciones web más complejas
Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 2
Presentación

SOAP (Simple Object Access Protocol)


es el protocolo de mensajes basado en
XML que viene utilizado para desarrollar
estos sistemas distribuidos
Define formalmente el formato de un
mensaje para una llamada de
procedimientos remotos (RPC)

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 3


Objetivos

Comprender el estado actual y la


evolución del mundo web
Conocimientos de base del protocolo
SOAP
Conocimientos sobre lenguaje,
procesos e instrumentos para la
creación y gestión de servicios web
Implementar servicios web con SOAP

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 4


Web Services - SOAP

5
Web Services - Concepto
Aplicaciones modulares que pueden ser
descritas, publicadas, localizadas e invocadas
desde una red
Interaccionan y se invocan entre ellas
Los servicios web pueden ser locales o
distribuidos
Base de los sistemas distribuidos futuros

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 6


Web Services - Concepto
Interfaz que describe un conjunto de
operaciones accesibles en red mediante
mensajes estandard en XML

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 7


Componentes de la Arquitectura
Web Services
Cliente Servicio
Conexión
Solicitante Proveedor
de servicios de servicios

Búsqueda Publicación

Registro
de servicios Descripción

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 8


Componentes de la
Arquitectura Web Services
3 componentes principales forman la
arquitectura de los Servicios Web:
 Proveedor de servicios: Entidad comercial
que pone a disposición aplicaciones
software en la forma de Web Services;
considerado como el propietario del
servicio o como el que lo hospeda

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 9


Componentes de la
Arquitectura Web Services
 Solicitante de servicios: Entidad que posee
una necesidad y que debe satisfacer a
través de un servicio existente
 Registro de servicios: Un almacén
consultable de descripción de servicios,
donde los proveedores publican sus
productos y los solicitantes buscan y
obtienen información respecto a los
mismos

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 10


Utilidad y Ventajas de los Web
Services
Interoperabilidad: cada servicio puede
interactuar con otro mediante un
protocolo estandard (SOAP) en modo
independiente del lenguaje / plataforma
Facilidad: de compresión y desarrollo
gracias a instrumentos de software
Soporte: actualmente muchas
compañías ofrecen soporte para WS

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 11


Web Services como evolución del
Software
Evolución  diferente a revolución
Basado en estandards existentes (XML)
Valor agregado al internet
Standard para la invocación remota de
objetos
Formato de mensajes independiente de la
implementación

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 12


Problemas de los Web Services
Los principales problemas son:
 Descubrimiento. Como hace un Web Service para
hacerse conocer desde otros servicios ?, qué
sucede si un servicio cambia o se modifica su
ubicación ? (WSDL – UDDI): Estandares que
afrontan estos problemas
 Fiabilidad. Algunos proveedores de Web Services
serán más fiables que otros. Cómo poder medir la
fiabilidad ?

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 13


Problemas de los Web Services
 Seguridad. Cómo afrontar el problema de seguridad de la
Web ?, Necesidad de encriptacion, autentificación ?
 Transacciones. Gestionar transacciones en la Web?. (XAML=
Extensible Application Markup Language). Lenguaje para
soportar transacciones
 Gestión. Qué mecanismo usar para gestionar sistemas
altamente distribuidos?
 Contabilidad. Cuánto tiempo un usuario puede usar un
servicio?, cómo calcular el costo de un Web Service?
 Pruebas. Cómo testear o hacer el debugging de un sistema
compuesto de varios servicios

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 14


Desarrollo de un Web Service

Un Web Service consiste en la


implementación de una aplicación que
se encuentra en un contenedor y que
expone tal aplicación para un acceso vía
Web

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 15


Desarrollo de un Web Service
Desde cero
Crear la funcionalidad del servicio
(clase Java)
Crear la descripción de la interfaz del
servicio con WSDL
Combinar funcionalidad y descripción
de la interfaz en la implementación del
servicio
Publicar el servicio en un registro UDDI

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 16


Ejemplo:
Implementación de la aplicación (Clase
Java)
public class Conversor {
static final double RATE = 3.30

public double getDolar (double sol) {


return sol / RATE;
}

public double getSol (double dolar) {


return dolar * RATE
}
}
Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 17
Ejemplo:
Creación de la descripción de la
interfaz del servicio (WSDL)
<definitions xmlns: .....>
....
<service name=„Conversor“>
<documentation>service definition</documentation>
<port name=„Conversor_ServicePort“
binding=„tns:Conversor_ServiceBinding“>
<soap:address
location:“http://localhost:8080/axis/servlet/Axis...../>
</port>
</service>
</definitions>
Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 18
Ejemplo:
Implementación del Servicio (WSDD)

<deployment xmlns=„http://xml.apache.org/axis..../“
xmlns:java=„http://xml.apache.org/axis....“>
<service name=„Conversor“ provider=„java:RPC“>
<parameter name=„className“ value=„Conversor“/>
<parameter name=methodName“ value=„getSol getDolar“
</service>
</deployment>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 19


Ejemplo:
Deployment del Servicio

>java org.apache.axis.client.AdminClient
-lhttp://localhost:8080/axis/services/AdminService deploy.wsdd

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 20


Ejemplo:
Enlace a un Web Service (Cliente Java)
public class ConversorClient {
public static void main (String[] args) thows Exception {
Options options = new Options(args);
String endpoint = options.getURL();

Service service = new Service();


Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(....method);
call.addParameter(„valor“, XMLType.XSD_DOUBLE,
ParameterMode.IN);
call.setReturnType(XMLType.XSD_DOUBLE);
Double rep = (Double) call.invoke(new Object[] {d1});

}
}

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 21


Ejemplo:
Enlace a un Web Service (Cliente Java)
- Ejecución

java ConversorClient
-lhttp://localhost:8080/axis/services/Conversor getSol

Resultado:

> 3.30

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 22