Servicios Web ligeros - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Servicios Web ligeros

Description:

Protocolo de referencia para la creaci n de SW. Mensajes XML sobre HTTP ... Demasiado pesado para peque os dispositivos. Alternativas a SOAP. Caucho Technology ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 21
Provided by: no4775
Category:

less

Transcript and Presenter's Notes

Title: Servicios Web ligeros


1
Servicios Web ligeros
  • Alternativas al protocoloSOAP para la creación
    de servicios distribuidos

Noé Fernández Iglesias
2
Introducción
  • Popularización de los Servicios Web
  • HTTP
  • XML
  • Protocolo SOAP

3
SOAP
  • Protocolo de referencia para la creación de SW
  • Mensajes XML sobre HTTP
  • Fichero de definición WSDL
  • UDDI

4
SOAP
  • Principales críticas al protocolo
  • Complejo
  • Mensajes XML
  • Sobrecarga de red
  • WSDL
  • Demasiado pesado para pequeños dispositivos

5
Alternativas a SOAP
  • Caucho Technology
  • Hessian
  • Burlap
  • Spring framework
  • HTTP invoker

6
Hessian
  • Protocolo binario sobre HTTP
  • Ligero
  • Los servicios son desplegados como servlets
  • No necesita fichero de descripción (WSDL, IDL, )
  • Usa un mecanismo propio de serialización
  • Implementado en varias plataformas
  • Java, C, C, PHP, Ruby, Python

7
Hessian
  • Creación de un servicio con Hessian
  • Creación de una interfaz Java a modo de API
    pública.
  • Creación de un cliente del servicio mediante
    HessianProxyFactory.
  • Creación de la clase de implementación del
    servicio.
  • Despliegue y configuración del servicio en un
    contenedor de servlets.

8
Hessian
  • Creación de una interfaz Java a modo de API
    pública

public interface HWService public
String helloWorld()
9
Hessian
  • Creación de un cliente del servicio mediante
    HessianProxyFactory

public class BasicClient public static void
main(String args) throws Exception
String url "http//localhost/helloWorld"
HessianProxyFactory factory new
HessianProxyFactory() HWService service
(HWService) factory.create(HWService.class,
url) System.out.println("Hello "
basic.hello())
10
Hessian
  • Creación de la clase de implementación del
    servicio

public class MyService implements HWService
public String hello() return
"Hello, world"
11
Hessian
  • Despliegue y configuración del servicio en un
    contenedor de servlets

ltweb-appgt ltservletgt ltservlet-namegthellolt/serv
let-namegt ltservlet-classgtcom.framework.HessianS
ervletlt/servlet-classgt ltinit-paramgt
ltparam-namegthome-classlt/param-namegt
ltparam-valuegtMyServicelt/param-valuegt
lt/init-paramgt ltinit-paramgt
ltparam-namegthome-apilt/param-namegt
ltparam-valuegtHWServicelt/param-valuegt
lt/init-paramgt lt/servletgt ltservlet-mappinggt
lturl-patterngt/helloWorldlt/url-patterngt
ltservlet-namegthellolt/servlet-namegt
lt/servlet-mappinggt lt/web-appgt
12
Burlap
  • Versión XML de Hessian
  • Mensajes SML sobre HTTP
  • Los servicios son desplegados como servlets
  • No necesita fichero de descripción (WSDL, IDL, )
  • Usa un mecanismo propio de serialización
  • Implementado actualmente sólo en Java

13
Burlap
  • Creación de un servicio con Burlap
  • Creación de una interfaz Java a modo de API
    pública.
  • Creación de un cliente del servicio mediante
    BurlapProxyFactory.
  • Creación de la clase de implementación del
    servicio.
  • Despliegue y configuración del servicio en un
    contenedor de servlets.

14
HTTP invoker
  • Solución del framework Spring para el desarrollo
    de servicios remotos.
  • Funciona sobre HTTP
  • Utiliza la serialización de Java
  • Sencilla implementación y despliegue de servicios
    (pasos similares a Hessian y Burlap)

15
HTTP invoker
  • Creación de un servicio con HTTP invoker
  • Creación de una interfaz del servicio e
    implementación de la misma.
  • Exportación del servicio mediante la definición
    de un bean de Spring.
  • Despliegue del servicio en un contenedor de
    servlets.
  • Creación del bean de Spring para el cliente.

16
HTTP invoker
  • Exportación del servicio mediante la definición
    de un bean de Spring

ltbean name"/MyService" class"org.springframew
ork.remoting.httpinvoker.HttpInvokerServiceExporte
r"gt ltproperty name"service"gt
ltref bean"myService"/gt lt/propertygt
ltproperty name"serviceInterface"gt
ltvaluegtcom.httpInvoker.example.MyServicelt/valuegt
lt/propertygt lt/beangt
17
HTTP invoker
  • Despliegue del servicio en un contenedor de
    servlets

ltservletgt ltservlet-namegtmyServiceHttpInvokerlt/
servlet-namegt ltservlet-classgt org.springframe
work.web.servlet.DispatcherServlet
lt/servlet-classgt ltload-on-startupgt3lt/load-on-s
tartupgt lt/servletgt ltservlet-mappinggt
ltservlet-namegtmyServiceHttpInvokerlt/servlet-namegt
lturl-patterngt/remoting/lt/url-patterngt
lt/servlet-mappinggt
18
HTTP invoker
  • Creación del bean de Spring para el cliente

ltbean id"service" class"org.springframework.re
moting.httpinvoker.HttpInvokerProxyFactoryBean"gt
ltproperty name"serviceUrl"gt
ltvaluegthttp//localhost/remoting/MyServicelt/valuegt
lt/propertygt ltproperty name"serviceInterf
ace"gt ltvaluegtcom.httpInvoker.example.MySer
vicelt/valuegt lt/propertygt ltproperty
name"httpInvokerRequestExecutor"gt ltbean
class "org.springframework.remoting.httpinvoker.C
ommonsHttpInvokerRequestExecutor"/gt
lt/propertygt lt/beangt
19
HTTP invoker
  • Invocación del servicio

MyService service (MyService)context.getBean("se
rvice") service.hello()
20
Conclusiones
  • Cuándo usar cada protocolo?
  • Tenemos control sobre el servicio y el cliente
  • Hessian, Burlap, HTTP invoker
  • Poco ancho de banda Hessian, Burlap
  • Clientes de diversas plataformas
  • Hessian
  • Aplicaciones complejas, diversos protocolos,
    funcionalidad prima sobre la velocidad
  • SOAP
Write a Comment
User Comments (0)
About PowerShow.com