Universidad
de Vigo:
Metodologías
para el
Desarrollo de
Servicios en la
Web
Revisión de
los Servicios
Web
SOAP/REST:
Características
y Rendimiento
Alberto Los Santos Aransay,
[email protected]
Marzo 2009
0 Revisión de los Servicios Web SOAP/REST: Características y Rendimiento
Marzo ‐ 2009
ÍNDICE
1. INTRODUCCIÓN .............................................................................................................................. 1
2. ARQUITECTURAS ORIENTADA A SERVICIOS .............................................................................. 2
3. SERVICIOS WEB .............................................................................................................................. 6
3.1. SOAP WS ................................................................................................................................... 7
3.1.1. WS‐* ................................................................................................................................. 11
3.2. Servicios Web REST .............................................................................................................. 12
3.2.1. Arquitectura REST .......................................................................................................... 13
3.2.2. Ejemplo ............................................................................................................................ 14
4. CARACTERÍSTICAS SOAP y REST ................................................................................................ 17
4.1. Debate SOAP vs REST ............................................................................................................ 18
5. RENDIMIENTO .............................................................................................................................. 20
6. CONCLUSIONES ............................................................................................................................ 23
7. REFERENCIAS ............................................................................................................................... 24
Figura 1: Arquitectura orientada a servicios [2] ............................................................................................... 2
Figura 2: Los Servicios Web se basan en estándares abiertos para interconectar aplicaciones y
usuarios independientemente de las plataformas [3] .................................................................................... 6
Figura 3: Interacción a través de Servicios Web [9] ........................................................................................ 8
Figura 4: Estructura de los mensajes [10] ........................................................................................................... 9
Figura 5: Los servicios Web en Funcionamiento [11] ................................................................................. 10
Figura 6: Ejemplo con las funciones de REST [20] ........................................................................................ 13
Figura 7: Google Apps [29] ...................................................................................................................................... 19
ÍNDICE DE FIGURAS
1 Revisión de los Servicios Web SOAP/REST: Características y Rendimiento
1. INTRODUCCIÓN
Marzo ‐ 2009
Coulouris1 definió los sistemas distribuidos como “sistemas en los que los componentes hardware
y/o software existentes en una red de computadoras, se comunican y coordinan sus acciones
mediante el intercambio de mensajes”.
Este concepto se ha popularizado durante los últimos años, debido a varios factores. El primer
factor que impulsó el desarrollo de sistemas distribuidos fue la aparición de redes locales de alta
velocidad. Otro factor importante ha sido el avance tecnológico en las prestaciones de los
ordenadores personales y el desarrollo de software para soportar aplicaciones distribuidas.
Los sistemas distribuidos se ligan con el concepto de Web e Internet. Con la evolución de la Web, y
la aparición de nuevas áreas, interacciones, necesidades y aplicaciones, surge el concepto de Web
2.0. Este término fue acuñado por Tim O'Reilly en 2004 para referirse a una segunda generación
en la historia de la Web basada en comunidades de usuarios y una gama especial de servicios,
como las redes sociales, los blogs, los wikis o las folcsonomías, que fomentan la colaboración y el
intercambio ágil de información entre los usuarios.
Las primeras arquitecturas que pueden considerarse orientadas a servicio (SOA) se basaban en
CORBA (Common Object Request Broker Architecture), que actuaba como una capa de abstracción
para interconectar los distintos elementos de la arquitectura y construir los servicios. Otras
tecnologías anteriores fueron DCOM (Distributed Component Object Model) o RPC (Remote
Procedure Protocol). Con la necesidad de diseñar e implementar sistemas distribuidos en la Web
de forma eficiente, surgen diversos desafíos, algunos centrados en el propio desarrollo
(rendimiento, experiencia de usuario, etc.) y otros complementarios, basados en la reusabilidad y
compatibilidad de
los Servicios Web,
proporcionando mecanismos estándar para interconectar a los distintos usuarios con los
servidores de información.
Como veremos estos servicios extienden las características básicas de las Arquitecturas Orientadas
a Servicios, focalizando sus objetivos en ser completamente interoperables, además de reusables,
destacando también por no ser excesivamente eficientes en relación a su rendimiento.
Sobre estas necesidades aparecen
los servicios.
La distribución del presente trabajo es la siguiente:
‐ En el siguiente capítulo veremos qué son las arquitecturas SOA (orientadas a servicio).
‐ Una vez revisados sus principales conceptos, estudiaremos en el capítulo 3 los Servicios
Web, y más concretamente las dos líneas actuales más destacadas: los Servicios Web SOAP
y los Servicios Web REST.
‐ En el capítulo 4, se revisarán las principales características de los Servicios Web SOAP y
REST, indicando sus principales beneficios y limitaciones. Además, se expondrá de forma
introductoria el debate SOAP vs REST.
‐ En el capítulo 5 intentaremos detallar el trabajo existente sobre el rendimiento en los
Servicios Web, aunque no sea el principal objetivo de estos sistemas, es un concepto
fundamental a la hora de ofrecer cualquier servicio.
‐ Por último, las conclusiones serán realizadas en el capítulo 6.
1 http://www.coulouris.net/
2 Revisión de los Servicios Web SOAP/REST: Características y Rendimiento
Marzo ‐ 2009
2. ARQUITECTURAS ORIENTADA A SERVICIOS
Según [1] SOA (Service‐Oriented Architecture o Arquitectura Orientada a Servicios en castellano)
son arquitecturas de software que definen el uso de servicios como soporte a los requisitos del
negocio, cuyo objetivo es alcanzar el mínimo acoplamiento posible entre agentes software. Un
servicio es una unidad de trabajo realizada por un proveedor de servicios para alcanzar un
resultado final deseado por un consumidor del servicio. Tanto el proveedor como el consumidor
del servicio son roles realizados por agentes software en lugar de sus propietarios.
En un sentido general, una arquitectura orientada a servicios es una solución software que
pretende permitir a la empresa organizar y hacer uso de múltiples procesos. Con SOA, las
aplicaciones software ya no son enormes bloques de funciones y procesos. En cambios, estas
aplicaciones se componen de servicios modulares ensamblados. Recordemos que un servicio es
una función software simple (como por ejemplo, cancelar la reproducción de un CD). Puede ser
ejecutada bajo demanda por cualquier sistema, sin tener en cuenta el sistema operativo,
plataforma, lenguaje de programación o posición geográfica.
Lo que es revolucionario acerca de SOA no es el concepto en sí mismo, el cual ha estado presente
desde hace tiempo, sino el hecho de que se puede implementar a través de la WWW (World Wide
Web). De la misma forma que las páginas web se cargan en cualquier plataforma, los servicios web
trabajan de forma similar, sin tener en cuenta la plataforma, ya que se construyen utilizando
estándares universales.
Figura 1: Arquitectura orientada a servicios [2]
Suena demasiado abstracto, pero realmente SOA se encuentran actualmente en todos los lugares.
Por ejemplo, si tenemos un reproductor MP3 y queremos escuchar una canción, lo encendemos y
damos al play en la selección que queramos. Así el reproductor nos ofrece el servicio de
reproducción de canciones. Este reproductor puede ser reemplazado por una minicadena que
3 Revisión de los Servicios Web SOAP/REST: Características y Rendimiento
Marzo ‐ 2009
soporte reproducción de MP3 desde un dispositivo USB externo, ofreciendo el mismo servicio de
reproducción de canciones, pero como mejor calidad y distintas características.
La idea de SOA parte directamente de la programación orientada a objetos, la cual sugiere una
relación entre los datos y su procesamiento. Así, definen los servicios formalmente a través de
interfaces independientes de la plataforma subyacente y del lenguaje de programación. Estas
interfaces ocultan las particularidades de su implementación, lo que las hace independientes del
desarrollador y del lenguaje de programación. A través de estas arquitecturas se consiguen
diseñar e implementar sistemas altamente escalables que reflejan
Comentarios de: Revisión de los Servicios Web SOAP/REST: Características y Rendimiento (0)
No hay comentarios