Soa Conceptos
Soa Conceptos
Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de
Reconocimiento-Compartir igual (BY-SA) v.3.0 España de Creative Commons. Se puede modificar la obra, reproducirla, distribuirla
o comunicarla públicamente siempre que se cite el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), y
siempre que la obra derivada quede sujeta a la misma licencia que el material original. La licencia completa se puede consultar en:
http://creativecommons.org/licenses/by-sa/3.0/es/legalcode.ca
CC-BY-SA • PID_00187408 SOA
Índice
Introducción............................................................................................... 5
Objetivos....................................................................................................... 6
3. Servicios web....................................................................................... 15
3.1. Servicios web basados en SOAP (WS-*) ....................................... 15
3.1.1. Arquitectura de los servicios .......................................... 16
3.1.2. Composición de servicios .............................................. 17
3.2. Servicios web basados en REST ................................................... 22
3.2.1. El concepto recurso.......................................................... 23
3.2.2. Formatos para representar los recursos ......................... 24
3.3. Diferencias entre servicios web basados en REST y en SOAP
(WS-*) .......................................................................................... 25
Resumen....................................................................................................... 34
Actividades.................................................................................................. 35
Ejercicios de autoevaluación.................................................................. 35
Solucionario................................................................................................ 36
Glosario........................................................................................................ 37
Bibliografía................................................................................................. 38
CC-BY-SA • PID_00187408 5 SOA
Introducción
Objetivos
El auge de la Web marca la consolidación de Internet sobre todo por su evolu- HTTP
ción. En la Web�1.0, las aplicaciones están limitadas a un servidor que ofrece HTTP es un protocolo de apli-
unos servicios y contenidos, y a un usuario con un rol pasivo de consumidor cación basado en un paradig-
ma de petición-respuesta. Ha-
de servicios. En cambio, en la Web�2.0, los usuarios actúan como generado- bitualmente, funciona sobre
el puerto 80 y suele tener faci-
res de contenidos utilizando aplicaciones dinámicas y se convierten en parti- lidad para atravesar entornos
hostiles (cortafuegos, NAT).
cipantes activos. La consolidación de protocolos como HTTP facilita la crea-
ción de aplicaciones y servicios sobre la Web. En un principio, estos servicios
se construyen sin unas especificaciones estándares que definan las interfaces,
reglas de codificación de parámetros y resultados, o el mecanismo de invoca-
ción. Posteriormente, se crearán especificaciones y nuevas propuestas de esti-
los arquitectónicos para evolucionar la construcción de servicios sobre la Web.
(1)
Uno de los pasos más importantes en la evolución de la Web se da en el mo- Del inglés rich Internet applica-
tions.
mento en que se permite a los usuarios participar activamente en Internet (de-
mocratización�de�la�Web), y una de las maneras de un rol más activo es mejo-
rando la experiencia del usuario. Para mejorar dicha experiencia, en la Web 2.0
CC-BY-SA • PID_00187408 8 SOA
Existe otra tecnología denominada AJAX2, que consiste en que el cliente realiza
(2)
peticiones y el servidor retorna documentos XML de manera asíncrona. En Del inglés asynchronous JavaS-
cript and XML.
el cliente, una pieza adicional (AJAX Engine) procesa la información de los
documentos XML y crea o complementa un archivo HTML. Este motor (AJAX
Ved también
Engine) determina si la petición es necesaria para cada acción del usuario. En
ocasiones este comportamiento, basado en XML, puede ser sustituido por unas En el apartado "Servicios web
basados en REST" de este mó-
estructuras basadas en JavaScript denominadas JSON. dulo veréis con más detalle el
mecanismo de codificación de
datos JSON.
Los nuevos navegadores como IExplorer, Firefox, Safari, Opera o Google Chro-
me (entre otros) incorporan estas tecnologías que no solo procesan HTML,
sino que también reproducen contenido audiovisual, como vídeos, archivos
Flash, AVI/DIVX. Todavía hay muchas funcionalidades que no son implemen-
tadas en los diferentes navegadores, lo que provoca incompatibilidades entre
estos, fruto del diseño específico de cada navegador para solucionar tales in-
compatibilidades. Estos problemas de compatibilidad entre navegadores difi-
cultan la introducción de las tecnologías web 2.0.
En el 2005 aparece otra forma de blogs: los microblogs. El contenido de los Twitter
microblogs es de pequeño tamaño y consiste en frases cortas (en Twitter, de
Una de las funcionalidades
ciento cuarenta caracteres), una imagen o un vídeo. Los microblogs tienen más interesantes de Twitter es
el potencial de convertirse en un medio informal de comunicación, especial- el análisis de las palabras más
populares o emergentes (tren-
mente para el trabajo cooperativo dentro de las organizaciones usado para el ding topic) en la red social de
microblogs, y además puede
marketing y las relaciones sociales (red social). El nuevo movimiento de las estructurar el contenido se-
mánticamente por medio de
redes sociales aparece permitiendo a los usuarios que estén conectados entre etiquetas (hashtags).
ellos y puedan compartir, en grupos, los contenidos que deseen, sus vidas y
sentimientos (mensajes, imágenes, vídeos). Estos efectos han sido magnifica-
dos en un contexto web 2.0, ya que las interconexiones entre usuarios se han
multiplicado en una línea en la que las individualidades se convierten en gru-
pos y sociedades de forma fácil y rápida.
(3)
• Las remezclas (mashup3), aplicaciones que permiten crear contenido me- La traducción literal de mashup
puede ser 'papilla'. Algunos ejem-
diante la combinación de contenidos de terceras partes. plos son: Amazon, eBay, Flickr,
Yahoo, YouTube, Google Maps...
(5)
Con este propósito, W3C5 ha fomentado el desarrollo de OWL6, que consiste Sigla del World Wide Web Con-
sortium.
en una familia de lenguajes de representación del conocimiento para la crea-
ción de ontologías. El concepto de ontología corresponde a una representa- (6)
Del inglés ontology web langua-
ción formal del conocimiento como un conjunto de conceptos dentro de un ge.
dominio. Las ontologías proporcionan un vocabulario compartido que puede
describir un dominio y las interrelaciones dentro de él.
CC-BY-SA • PID_00187408 11 SOA
(7)
La arquitectura orientada a servicios (SOA7) es un concepto de arquitectura Del inglés service-oriented archi-
tecture.
de software que describe el uso de servicios para proporcionar soluciones a
requerimientos de negocio.
• Capacidad para desarrollar lógicas de negocio basadas en la subcontrata- La subcontratación es una téc-
ción (outsourcing). nica que utilizan las empresas
y que se basa en la externaliza-
ción de ciertas tareas a empre-
sas especializadas para reducir
• Capacidad para dirigir modelos de negocio con otras entidades (socios, costes.
proveedores).
• Las capacidades son expuestas como servicios, por lo general servicios web,
pero no exclusivamente.
• Los servicios son desplegados para los usuarios finales en una determinada
ubicación (punto de entrada).
• El modelo está orientado a servicios como una función sin estado, que
acepta invocaciones y devuelve respuestas a través de una interfaz conoci-
da. Los servicios no dependen del estado de sus funciones y procesos, y la
tecnología específica usada para proporcionar el servicio no es una parte
de su definición. Se permite el uso de servicios asíncronos.
Existen diferentes estándares asociados a los servicios web como XML, HTTP,
SOAP, WSDL, UDDI o REST, XML y JSON, aunque SOA no se limita solo a estas
especificaciones. Se puede diseñar un sistema que siga un paradigma orienta-
do a servicios y aplicar un perfil tecnológico diferente del habitual uso de es-
tándares.
Protocolos asociados a
En un entorno SOA, los nodos de una red publican sus recursos dis- servicios web
ponibles a otros participantes como servicios independientes que son
Existen multitud de protocolos
accesibles de una manera estandarizada. Muchas definiciones de SOA asociados a los servicios�web
basados en SOAP: WS-addres-
identifican SOA con el uso de servicios web basados en SOAP (WS-*) y sing, WS-notification, WS-even-
WSDL en su implementación, pero es posible implementar SOA usando ting, WS-policy, WS-discovery,
etc. Se abreviará mediante el
cualquier�tecnología basada en servicios. término WS-* cuando se haga
referencia a todos estos proto-
colos.
(8)
El mecanismo de comunicación básico en una arquitectura orientada a servi- Del inglés remote procedure call.
8
cios es la invocación�a�procedimientos�remotos�(RPC). RPC es un paradig-
ma para implementar un modelo cliente-servidor para computación distribui- Ved también
da. Una llamada RPC es iniciada por un cliente que envía un mensaje de pe- En el módulo "Introducción a
tición a un servidor conocido con la intención de ejecutar un procedimiento las plataformas distribuidas"
hemos estudiado la invocación
especificado con unos parámetros. El desarrollador de aplicaciones distribui- de procedimientos remotos
RPC.
das basadas en RPC solo debe implementar un cliente sencillo que realiza una
invocación a un procedimiento como si estuviera en local y el servidor lleva a
cabo la implementación del procedimiento en cuestión. El mecanismo de RPC
se responsabilizará de construir la invocación (llamada y parámetros), gestión
de la capa de red (tanto en cliente como en servidor), invocación del procedi-
miento en cuestión y construcción de la respuesta.
CC-BY-SA • PID_00187408 14 SOA
(9)
Este modelo de RPC se propone en la década de los setenta; más adelante, el Del inglés common object request
broker architecture.
grupo de trabajo Object Management Group propone otro mecanismo basado
en CORBA9. RMI es un mecanismo ofrecido por el lenguaje de programación
CORBA
Java y, con el auge de Internet, aparecen varias evoluciones de este paradigma,
como XML-RPC y los servicios�web. El Object Management Group
propuso CORBA en los años
noventa, basado en el paradig-
ma de RPC, que funciona so-
2.3. Ejemplo de SOA bre objetos distribuidos, con
las características propias de
la orientación a objetos como
Un ejemplo de aplicación orientada a servicios podría ser una aplicación B2B encapsulación, polimorfismo y
herencia.
de una gran empresa de la automoción (fabricante de vehículos) que ofrece
sus productos con la información y las posibilidades de personalización de
cada uno. Ved también
3. Servicios web
(10)
Del inglés simple object access
SOAP 10
es un protocolo que permite la interacción con servicios web protocol.
(11)
Del inglés web services descrip-
11
WSDL describe dónde se localiza un servicio, qué operaciones propor- tion language.
(12)
Del inglés universal description,
UDDI 12
proporciona un mecanismo para que los proveedores de servi- discovery and integration.
Los servicios web WS-* utilizan SOAP para codificar los mensajes XML que se WS-I y OASIS
transportan. Los mensajes deben ser capaces de interpretarse de manera auto-
WS-I es una organización que
matizada, tal como se describen las operaciones en WSDL. No es obligatorio propone buenas prácticas en el
que WSDL esté vinculado a un extremo SOAP, pero sí que es un prerrequisito uso de servicios web.
OASIS es una organiza-
para automatizar la generación de las clases auxiliares (stubs o skeletons) que ción/consorcio que trabaja so-
bre estándares abiertos en di-
se utilizan en diferentes plataformas. Algunas organizaciones (como WS-I y ferentes ámbitos, informática
OASIS) incluyen SOAP y WSDL en las definiciones de sus servicios web. en la nube (cloud computing),
SOA, servicios web, etc.
Por otro lado, un consumidor�del�servicio es quien accede al servicio web pa- Herramientas CASE
ra utilizar los servicios que este presta. Cuando un consumidor desea acceder
Existen herramientas CASE que
a un servicio web, puede utilizar un servidor de descubrimiento que permita simplifican mediante conecto-
conocer la ubicación exacta del servicio, es decir, debe contar con un directo- res (plugins) el proceso de ge-
neración de clientes a servicios
rio donde tenga listas las referencias a los servicios disponibles. Esto se logra web indicando únicamente la
URL donde se sitúa la descrip-
gracias a directorios UDDI. Una vez el consumidor de servicio dispone de la ción del servicio (WSDL).
especificación del servicio (WSDL), ya puede realizar el proceso de invocación
mediante el uso del protocolo SOAP.
La composición de servicios puede ser vista, tal como muestra la figura 3, como
un modelo basado en capas en dos ejes, uno vertical y otro horizontal.
Figura 4. Orquestación
Figura 5. Coreografía/orquestación
Orquestación: WS-BPEL
Un usuario accede a un portal de una correduría de seguros que trabaja con múltiples
compañías y proporciona al usuario la mejor oferta que se ajuste a las condiciones par-
ticulares del usuario.
Coreografía: WS-Choreography
(13)
Los servicios�web�basados�en�REST (RESTful web services) son servicios dise- Del inglés representational state
13 transfer.
ñados para funcionar de manera más eficiente sobre la Web. REST es un esti-
lo arquitectónico que especifica restricciones, como por ejemplo una interfaz
CC-BY-SA • PID_00187408 23 SOA
entre cliente y servidor, mediante el uso de los métodos get, post, put y delete
inherentes de HTTP (y relacionados, como operaciones CRUD) e implemen-
Ved también
tado en navegadores, que no requieren mensajes SOAP/XML o descripciones
WDSL. Esto hace que esta estrategia resulte mucho más ligera. En las asignaturas de bases de
datos se explican con detalle
las operaciones CRUD (create,
read, update, delete).
(14)
REST o los servicios web RESTful14 se están utilizando de manera regular, sobre Un servicio�web�RESTful es un
servicio simple basado en HTTP y
todo y especialmente, en dispositivos de escasos recursos y en un contexto web un estilo REST.
2.0. Un desarrollo basado en servicios�web (llamado Web API) también puede
realizarse con un estilo de comunicaciones REST. Web API permite la combi- Entity Bean
nación de múltiples servicios web en nuevas aplicaciones llamadas mashups.
En Java EE, un Entity Bean o un
POJO tiene un comportamien-
to similar a un recurso, ofrece
A continuación, se describirá el concepto de recurso, los estilos y los formatos
un mecanismo de acceso a la
de los datos (POX, JSON) y, finalmente, un mecanismo de especificación de información.
Un session bean puede ver-
servicios web basados en REST (WADL). se como un controlador que
proporciona unas operaciones
(servicio).
3.2.1. El concepto recurso
Un recurso puede ser definido como un artefacto de software asociado a in- Ved también
POX
(15)
POX15 es un término que se ha inspirado en otros términos como POJO16 y, Del inglés plain old XML.
JSON
(17)
Además de utilizar XML (POX) para serializar la información que se transmite Del inglés JavaScript object nota-
tion.
tanto en la petición como en la respuesta, existen otras estrategias como el uso
17
de JSON . JSON se emplea cuando el tamaño del flujo de datos es de vital
importancia. La simplicidad de JSON ha dado lugar a la generalización de su
uso, por la facilidad de desarrollo y rendimiento. El único inconveniente es
que penaliza la validación de la información que envía el cliente.
Estas son estructuras de datos universales y, prácticamente, todos los lengua- Lenguajes de
jes de programación modernos lo implementan de una manera u otra. En el programación
ejemplo que se presenta a continuación, se muestra una entidad Persona con Los lenguajes de programa-
los atributos nombre, fecha de nacimiento, nickname y una lista de números de ción ActionScript, C, C++, C#,
ColdFusion, Common Lisp,
teléfono: móvil, fijo y el del trabajo. Delphi, E, Eiffel, Java, JavaS-
cript, Perl, PHP y Python im-
plementan una API para anali-
{ zar y generar JSON.
"class": "Person",
"name": "William Shakespeare",
CC-BY-SA • PID_00187408 25 SOA
"birthday": -12802392000000,
"nickname": "Bill"
"phoneNumbers": [
{
"class": "Phone",
"name": "cell";
"number": "555-123-4567",
},
{
"class": "Phone",
"name": "hombre",
"number": "555-987-6543"
},
{
"class": "Phone",
"name": "work",
"number": "555-678-3542"
}
}
}
WADL
(18)
Una forma de especificar una interfaz de un servicio basado en REST es utilizar Del inglés web application des-
18 cription language.
un lenguaje de descripción denominado WADL . WADL es un documento
XML que proporciona una descripción legible de aplicaciones web basadas (19)
Del inglés web services descrip-
en HTTP. El propósito de WADL es permitir que los servicios en Internet se tion language.
describan de una manera procesable por una máquina, para que sea más fácil
para crear aplicaciones web 2.0, así como una forma dinámica de creación
y configuración de servicios. Sin una especificación del servicio, es necesario
hacer ingeniería inversa y construir la aplicación de una manera primitiva.
WADL puede considerarse como el equivalente de WSDL19.
La tabla siguiente muestra una comparativa entre las dos estrategias para la
construcción de servicios web y presenta las ventajas e inconvenientes sobre
cada una.
CC-BY-SA • PID_00187408 26 SOA
WS-* • Independiente del lenguaje y pla- • Especificaciones W3C. • Capacidad de computación para
taforma. • Permite utilizar otros protocolos el procesado de los XML.
• No ligado a ningún protocolo. de transporte. • Rendimiento.
• Puede utilizar un registro UDDI. • Ancho de banda alto.
• Basado en XML.
• Especificación de servicios basada
en WSDL.
En módulos anteriores hemos visto cómo se utiliza RM-ODP para definir la Ved también
arquitectura en términos de componentes arquitectónicos y conectores en-
Consultad los módulos "Diseño
tre estos y cómo, posteriormente, se refina esta especificación en términos de de aplicaciones distribuidas",
un conjunto de componentes de software que los implementan teniendo en "Arquitectura del software" y
"Desarrollo de software basado
cuenta que antes han estado especificados de manera independiente de la tec- en componentes" de este ma-
terial didáctico.
nología.
Una vez se ha hecho la elección tecnológica (en este caso, servicios web basa-
dos en SOAP y RESTful) es necesario realizar una fase previa de diseño para
evitar errores y disminuir la distancia entre la especificación y la implementa-
ción concreta, utilizando diagramas UML para representar estas decisiones.
Esta fase partirá de una representación de los componentes que forman la apli-
cación independientemente de la tecnología y finalizará con una representa-
ción de dichos componentes con el perfil SOA.
Dentro del amplio conjunto de diagramas que especifica UML 2.0, nos centra-
remos en cómo se representa el sistema concreto con los diagramas de com-
ponentes y despliegue. Para mostrarlo nos basaremos en un ejemplo sencillo
que ilustre los pasos que deben darse y en algunas de las consideraciones que
hay que tener en cuenta.
En el supuesto que nos ocupa, se han elegido los servicios�web como tecnolo-
gía de implementación, que presenta algunas particularidades que hacen ne-
cesaria una extensión de UML para poder representar todos los elementos.
A falta de una definición estándar para el perfil de los servicios� web, para Web recomendada
redactar estas anotaciones nos basaremos en el perfil web services, que aparece
El documento Superestructu-
como ejemplo en el documento Superestructura de UML 2.0, y añadiremos los ra de UML 2.x está disponible
elementos que necesitaremos para modelar los aspectos más relevantes de las en http://www.omg.org/spec/
uml .
aplicaciones basadas en servicios web.
CC-BY-SA • PID_00187408 28 SOA
<<wsStaticClient >> Componente Componente que actúa como cliente y utiliza los stubs generados.
<<wsDynamicClient >> Componente Componente que actúa como cliente y que realiza invocaciones dinámicas sobre el
servicio web.
En el caso de servicios web basados en REST, podemos proponer otra tabla con
los elementos siguientes:
4.2. Ejemplo
Para ver cómo se aplican algunas de las decisiones de diseño que hemos co-
mentado en el apartado anterior y cómo se van refinando los diagramas de
componentes hasta deducir casi la implementación, vamos a trabajar sobre el
componente que permite a los clientes del banco en línea hacer operaciones
con sus cuentas.
Tal como se presentó en el módulo "Java EE" de este material didáctico, este Ved también
componente se podría representar como se muestra la figura 10, en el nivel
Encontraréis el diseño de la
más alto de abstracción. aplicación en el módulo "Java
EE" de esta asignatura.
Ved también
(20)
El sistema debe permitir que un usuario pueda acceder por medio de cualquier Del inglés enterprise application
integration.
oficina del grupo fusionado, a pesar de que la información de sus cuentas
corrientes esté en los sistemas de otro banco. La estrategia de integración de (21)
API es la sigla de application pro-
sistemas que se propone en el grupo fusionado consiste en una solución basada gram interface.
en un EAI20 y una arquitectura orientada a servicios. De este modo, cuando un
usuario interactúa con una oficina de un banco, ya sea con el móvil, la Web
o presencialmente, y no es el que posee la cuenta corriente, este debe acceder
mediante las API21 que le proporcionan otros bancos, a toda la información
(productos y servicios) que se ofrecen al usuario.
En la figura 12 se pueden apreciar dos nodos: por un lado, un primer nodo, el Ved también
banco en línea (banco A), que es el componente original Java EE descrito en el
Este módulo no tiene en con-
módulo "Java EE" de estos materiales didácticos, al que no�se�ha�implemen- sideración aspectos de segu-
tado�ninguna�funcionalidad�adicional respecto al que se ha descrito ante- ridad, que se describen en la
asignatura Seguridad en redes
riormente. Y por otro lado, tenemos un segundo banco (banco B), que ofrece de computadores.
operaciones con cuentas que son gestionadas por el propio banco, y en este
caso tendríamos un comportamiento similar a las funcionalidades ofrecidas
por nuestro banco en línea pero que pueden estar desarrolladas en platafor-
mas y perfiles tecnológicos diferentes. El banco en línea exporta y ofrece una
API sobre las operaciones con cuentas especificadas y diseñadas anteriormente
hacia otros bancos para que puedan interactuar utilizando, en este caso, ser-
vicios web WS-* basados en un esquema B2B.
Por último, solo queda determinar qué ha sido necesario añadir en el módulo
Java EE original para ofrecer en un servicio web las operaciones organizadas en
forma de API, que permitirán que terceras partes, en este caso otras oficinas,
puedan hacer uso de ellas. El refinamiento de la capa de negocio queda tal
como se muestra en la figura 14.
Resumen
Este módulo ha dado una visión general de la evolución de los servicios dis-
tribuidos, en paralelo con la evolución de Internet. A medida que se iban am-
pliando las posibilidades del medio y los usos por parte de los usuarios, se han
producido cambios de paradigma y nuevas arquitecturas. En este caso, este
módulo se ha centrado en la definición de la arquitectura�orientada�a�servi-
cios y las formas más comunes de la implementación de servicios distribuidos.
El último apartado del módulo ha servido para presentar las bases del diseño
de�aplicaciones�SOA, con toda una serie de recomendaciones y aspectos que
hay que tener en cuenta.
CC-BY-SA • PID_00187408 35 SOA
Actividades
1. Dados los siguientes tipos de software por diseñar, indicad en cada caso si es aconsejable el
uso de una arquitectura orientada a servicios (SOA). En caso afirmativo, describid brevemente
el escenario:
a) Una empresa que comercializa muebles y trabaja con diferentes fábricas. Se quiere ofrecer
al usuario una plataforma única para comercializar los productos.
d) Una red social orientada a salud que quiere ofrecer una API para que terceras partes desa-
rrollen aplicaciones.
Ejercicios de autoevaluación
1. ¿Es cierto que los servicios web solo pueden funcionar por HTTP?
3. Explicad la forma en que los servicios en una arquitectura SOA están desacoplados.
6. ¿Cómo se implementan las operaciones CRUD (create, read, update, delete) cuando se utiliza
REST?
CC-BY-SA • PID_00187408 36 SOA
Solucionario
Ejercicios de autoevaluación
1. Falso, no existe tal limitación; los servicios web pueden funcionar sobre multitud de pro-
tocolos de comunicación. Por ejemplo, HTTP, TCP, UDP, etc.
2. UDDI es un registro de servicios SOA que tiene como función principal actuar como índice
de los servicios desplegados. Contiene la información básica (interfaz) de los servicios: punto
de entrada (endpoint), operaciones, formado de los parámetros e información adicional. Debe
tener todo lo necesario para utilizar un servicio en un nuevo entorno.
3. La única interrelación entre dos servicios o piezas de software es la interfaz (definida por
WDSL si utilizamos servicios web basados en SOAP) o contrato del servicio.
4. La encapsulación de los datos consiste en que los datos pertenecen al servicio que los
gestiona, es decir, que nadie fuera del servicio puede modificarlos o verlos sin pasar por el
servicio.
5. SOA es neutra respecto al punto de vista tecnológico. Solo ofrece una arquitectura o para-
digma de computación que permite que cualquier tecnología pueda ejecutar componentes
de manera remota (paradigma RPC) indicando un contrato del servicio.
6. REST implementa las operaciones CRUD adaptando las operaciones HTTP (get, post, put
y delete).
CC-BY-SA • PID_00187408 37 SOA
Glosario
coreografía f Coordinación de un grupo de servicios sin un controlador central.
RESTful web services f Tecnología que implementa servicios ligeros basados en REST.
servicio m Pieza de software que ofrece una interfaz (contrato) basada en unas operaciones
con unos parámetros de entrada/salida especificados.
SOAP (simple object access protocol) m Protocolo que especifica el mecanismo de se-
rialización de los elementos que intervienen en la petición o respuesta.
Bibliografía
Bibliografía básica
Snell, J.; Tidwell, D.; Kulchenko, P. (2001). Programming Web Services with SOAP. O'Reilly
Media.
Bibliografía complementaria
Arkin, A.; Askary, S.; Fordin, S.; Jekeli, W.; Kawaguchi, K.; Orchard, D.; Pogliani,
S.; Riemer, K.; Struble, S.; Takacsi-Nagy, P.; Trickovic, I.; Zimek, S. (2002, agosto).
Web Service Choreography Interface (WSCI) 1.0. W3C Note 8.
Besemer, D.; Butterworth, P.; Clément, L.; Green, J.; Ramachandra, H.; Schnei-
der, J.; Vandervoort, H. (2008). "An Implementor's Guide to Service Oriented Architectu-
re: Getting It Right". Composite Software.
Peltz, C. (2003, junio). "Web Services Orchestration and Choreography". SOA World Maga-
zine.
Reuther, B.; Müller, P. (2008). "Future Internet Architecture - A Service Oriented Ap-
proach". Information Technology Jahrgang 50 Heft 6 (págs. 383-389). Múnich: Oldenbourg Ver-
lag.
Van Than, D. (2003). Web Service Orchestration: An open and standardized approach for creating
advanced services. Eurescom.
Referencias bibliográficas
OASIS. OASIS Commitees by Category: SOA. [Fecha de consulta: junio del 2010] Disponible
en http://www.oasis-open.org/committees/tc_cat.php?cat=soa .
Wollrath, A.; Riggs, R.; Waldo, J. (2009). A Distributed Object Model for the Java System.
[Fecha de consulta: diciembre del 2010] Disponible en http://pdos.csail.mit.edu/6.824/pa-
pers/waldo-rmi.pdf .