Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

23
Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. Iturrioz A. Goñi. Dpto. LSI, UPV/EHU 2 Tema 2: Arquitecturas Software de varios niveles en Java Introducción a los Servicios Web INGENIERÍA del SOFTWARE Curso 2004/05 A. Goñi. Dpto. LSI, UPV/EHU 3 Índice • Introducción HTTP en 5 minutos XML en 5 minutos • SOAP • WSDL Usar Servicios Web en JDeveloper Otros temas

Transcript of Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

Page 1: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

1

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

2

Tema 2:Arquitecturas Software de varios niveles en Java

Introducción a los Servicios Web

INGENIERÍA del SOFTWARECurso 2004/05

A. Goñi. Dpto. LSI, UPV/EHU

3

Índice

• Introducción• HTTP en 5 minutos• XML en 5 minutos• SOAP• WSDL • Usar Servicios Web en JDeveloper• Otros temas

Page 2: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

2

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

4

Introducción: qué es un Servicio Web

• Definición dada por el W3C– A Web service is a software system designed to support

interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards

• Un Servicio Web es – (Parte de) Lógica de negocio

• La interfaz se define en un estándar basado en XML (WSDL)

– Accesible mediante protocolos de Internet• Habitualmente HTTP y SOAP (XML)

A. Goñi. Dpto. LSI, UPV/EHU

5

Introducción: Ventajas de los SW

CLIENTESERVIDOR

HTTP

XML

SERVIDORCLIENTE

JRMP / IIOP

TCP/IP

RMI

CLIENTESERVIDOR

IIOP

TCP/IP

CORBA

Lenguaje JAVA

Interfaces definidas en JAVA

Varias máquinas y S.O.

Varios lenguajes: Java, C++…

Interfaces definidas en IDL

Varias máquinas y S.O.

NO HAY RESTRICCIÓN SOBRE LENGUAJES, PLATAFORMAS, ETC.

CLIENTE

. NET Remoting

SERVIDOR

Varios lenguajes .NET: C++, C#, VB.NET …

Interfaces definidas en .NET

Máquinas Windows (?)

(-) Sin embargo, tipos de datos en las llamadas son más simples…

(Sustituye a DCOM)

(+) Favorecen la interoperabilidad

(+) Paso a través de firewalls

Page 3: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

3

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

6

HTTP en 5 minutos

• HTTP es un protocolo Cliente/Servidor de Internet (TCP/IP) del nivel de aplicación, que proporciona servicios de transmisión de datos entre aplicaciones.

CLIENTE HTTP SERVIDOR HTTP

Petición

Respuesta

Ejemplos de comandos en peticiones:

GET Para leer una página Web

POST: Para enviar datos a una página Web

Ejemplos de respuestas:

Estados

Datos

Códigos de error

A. Goñi. Dpto. LSI, UPV/EHU

7

HTTP en 5 minutos

Page 4: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

4

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

8

HTTP en 5 minutos[85] sisf00 > telnet sipx55.si.ehu.es 8080Trying 158.227.112.155...Connected to sipx55.si.ehu.es.Escape character is '^]'.GET /iso/jsp/public_html/pagina.jsp HTTP/1.0

HTTP/1.0 200 OKContent-Type: text/html;charset=windows-1252Set-Cookie2: JSESSIONID=pjqb72fy21;Version=1;Discard;Path="/iso"Set-Cookie: JSESSIONID=pjqb72fy21;Path=/isoServlet-Engine: Tomcat Web Server/3.2.3 (JSP 1.1; Servlet 2.2; Java 1.3.1_02; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Prueba</title></head><body><h2> Hola null<br>Estamos a: Tue May 03 13:28:53 CEST 2005</h2></body></html>Connection closed by foreign host.[65] sisf00 >

Con telnet se puede abrir un socketinteractivo con un servidor HTTP

Con GET se solicita una página web(en este caso es un JSP)

Y el contenido de la página HTML

// Añadir línea en blanco

El servidor HTTP envía datos (protocolo, código respuesta, información sobre el servidor,…)

A. Goñi. Dpto. LSI, UPV/EHU

9

HTTP en 5 minutos

Page 5: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

5

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

10

HTTP en 5 minutos[107] sisf00 > telnet sipx55.si.ehu.es 8080Trying 158.227.112.155...Connected to sipx55.si.ehu.es.Escape character is '^]'.POST /iso/jsp/public_html/pagina.jsp HTTP/1.0Content-type: application/x-www-form-urlencodedContent-length: 14

Nombre=AlfredoHTTP/1.0 200 OKContent-Type: text/html;charset=windows-1252Set-Cookie2: JSESSIONID=crb244gx61;Version=1;Discard;Path="/iso"Set-Cookie: JSESSIONID=crb244gx61;Path=/isoServlet-Engine: Tomcat Web Server/3.2.3 (JSP 1.1; Servlet 2.2; Java 1.3.1_02; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Prueba</title></head><body><h2> Hola Alfredo<br>Estamos a: Tue May 03 14:11:01 CEST 2005</h2></body></html>Connection closed by foreign host.[108] sisf00 >

Con el comando POST, se pueden enviar datos al servidor HTTP.

En este caso es el contenido de un parámetro, pero en general, puede ser cualquier fichero.

A. Goñi. Dpto. LSI, UPV/EHU

11

XML en 5 minutos

• XML (eXtensible Markup Language) es un lenguaje de marcas o etiquetas que sirve para describir datos– Definido por el W3C en 1996, a partir de

otro lenguaje: SGML, del cual deriva también HTML

– HTML es otro lenguaje de marcas diseñado para mostrar datos

• XML para almacenar, comunicar, no mostrar datos

– Es extensible: se pueden definir nuevas marcas o etiquetas (tags)

Page 6: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

6

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

12

XML en 5 minutos

ENCABEZAMIENTO XML: VERSIÓN Y CONJUNTO DE CARACTERES

ETIQUETAS: se deben abrir y cerrar <nombreSala> …</nombreSala>

ATRIBUTOS (siempre entre comillas, simples o dobles):

<sala imagen=“principe1.gif”>

ETIQUETAS SIN DATOS ASOCIADOS: <nombreSala/> Equivalente a: <nombreSala></nombreSala>

OBLIGATORIO UN ÚNICO ELEMENTO RAÍZ: <entradasTodasSalas>

ANIDACIÓN DE MARCAS: toda marca que se cierra debe corresponder a la última marca abierta y no cerrada

En las etiquetas: MAYÚSCULAS ? minúsculas

A. Goñi. Dpto. LSI, UPV/EHU

13

XML en 5 minutos

En un navegador se puede ver el fichero XML; abrir y cerrar “etiquetas”

Page 7: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

7

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

14

Documentos XML bien formados vs. Documentos XML válidos

• Un documento XML está bien formado si cumple las restricciones anteriores– No hay nodo raíz, atributos no entre comillas,

mal anidamiento, etc…• Pero es posible que no sea un documento XML

válido– Nombres de etiquetas, atributos erróneos– No aparición de alguna etiqueta obligatoria– …

• Se puede definir la estructura de un documento XML usando DTD o XML-Schema

• Qué etiquetas deben/pueden venir, qué atributos, en qué orden, etc.

A. Goñi. Dpto. LSI, UPV/EHU

15

Llamadas a servicios remotos usando XML y HTTP

CLIENTE

SERVIDOR

HTTPXML

Se usa HTTP para la transmisión de datos XML entre las aplicaciones CLIENTE y SERVIDOR

Se puede definir una estructura de documento XML que describa una llamada a un procedimiento remoto

POST /gestorBilletes HTTP/1.0Content-type: text/xmlContent-length: XX

<?xml version='1.0' encoding='windows-1252'?><llamadaRemota>

<getBillete><nombre>Pepe</nombre>

</getBillete></llamadaRemota>

Por ejemplo, para llamar al método getBillete(nombre), podríamos hacerlo así:

Page 8: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

8

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

16

Se necesita un estándar para enviar el mensaje con la llamada remota

CLIENTESERVIDOR

HTTP

XML

Se usa HTTP para la transmisión de datos XML entre las aplicaciones CLIENTE y SERVIDOR

Se puede definir una estructura de documento XML que describa una llamada a un procedimiento remoto

SIN EMBARGO: el documento XML que describe llamadas a procedimientos remotos debe seguir un estándar si no se quiere construir un servidor distinto cada vez, para que extraiga los métodos y parámetros

SOAP: Simple Object Access Protocol

A. Goñi. Dpto. LSI, UPV/EHU

17

SOAP: Simple Object Access Protocol

• SOAP 1.2 es recomendación W3C desde 24/3/2004 (http://www.w3.org/TR/soap/)

• Define:– Formato de mensajes de comunicación en XML– Cómo debería ser transportado un mensaje vía

Web (HTTP) o e-mail (SMTP)– Reglas que se siguen cuando se procesa un

mensaje SOAP– Cómo se convierte una llamada RPC de un cliente

en un mensaje SOAP, cómo se envía al servidor, cómo se convierte en una llamada RPC en el servidor, cómo se convierte la respuesta en un mensaje SOAP y se devuelve al cliente

Page 9: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

9

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

18

Formato de un mensaje SOAP

SOAP Envelope

SOAP header

Bloque Header

SOAP BodyBloque Body

Bloque Header

Bloque Body

El mensaje se mete en un sobre (envelope)

El mensaje se compone de una cabecera (header) OPCIONAL y de un cuerpo (Body) OBLIGATORIO

La cabecera (header) se utiliza para enviar información sobre identificadores de transacciones, certificados de seguridad, información sobre coordinación, etc.

El cuerpo (body) contiene las llamadas a los procedimientos remotos (junto con los parámetros), o bien las respuestas de dichos procedimientos remotos, o bien información sobre el error que se haya producido.

A. Goñi. Dpto. LSI, UPV/EHU

19

Ejemplo de llamada SOAP

getNumBillete(“Pepe”)

nom

Page 10: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

10

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

20

Ejemplo de resultado en SOAP

Resultado de la llamada a getNumBillete(“Pepe”)

==> 2 (como int)

A. Goñi. Dpto. LSI, UPV/EHU

21

Se necesita un estándar que describa el Servicio Web

• ¿Cómo saber qué etiquetas XML podemos poner en el mensaje SOAP?<getNumBillete…><nom …>

• Es necesario conocer la definición del servicio Web (esto es, su interfaz)

• Los SW se describen en WSDL

WSDL: Web Services DescriptionLanguage

Page 11: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

11

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

22

WSDL: Web Services DescriptionLanguage

• WSDL 1.1 es una Nota W3C desde 15/3/2001 (http://www.w3.org/TR/wsdl/)

• Define:– Una descripción abstracta de un servicio Web

• El sistema de tipos usados para describir los mensajes (basado en XML Schema)

• Mensajes implicados en invocar una operación• Operaciones individuales compuestas de distintos patrones de

intercambio de mensajes• Una interfaz que agrupa las operaciones que forman el servicio

– Una descripción concreta del servicio Web• El enlace (binding) de la interfaz a un protocolo de transporte• Dirección o punto de acceso (endpoint) del enlace (binding)• Descripción de un servicio como una colección de todos los

enlaces (bindings ) de la misma interfaz

A. Goñi. Dpto. LSI, UPV/EHU

23

WSDL: Web Services DescriptionLanguage

Documento WSDL

DE

SCR

IPC

IÓN

A

BST

RA

CT

AD

EL

SE

RV

ICIO

Types

Message (REQUEST)

Message (RESPONSE)

Message (REQUEST)

Message (RESPONSE)

Operation 1 Operation 2

Interface

binding 1

endpoint 1

binding 2

endpoint 2

binding 3

endpoint 3

ServiceDE

SCR

IPC

IÓN

CO

NC

RE

TA

D

EL

SE

RV

ICIO

TIPOS DE DATOS USADOS (los de XML Schema)

PARA CADA OPERACIÓN

MENSAJES DE PETICIÓN Y RESPUESTA

SERVICIO ABSTRACTO (CONJUNTO DE OPERACIONES)

TODAS LAS IMPLEMENTACIONES DEL

SERVICIO

ENLACES A PROTOCOLOS DE TRANSPORTE

DIRECCIONES DE LOS ENLACES

Page 12: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

12

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

24WSDL

Types

Message (REQUEST)

Message (RESPONSE)

Message (REQUEST)

Message (RESPONSE)

Operation 1 Operation 2

Interface

binding 1

endpoint 1

binding 2

endpoint 2

binding 3

endpoint 3

Service

A. Goñi. Dpto. LSI, UPV/EHU

25

WSDL: Web Services DescriptionLanguage

types

– Una descripción abstracta de un servicio Web

• El sistema de tipos usados para describir los mensajes (basado en XML Schema)

• Mensajes implicados en invocar una operación• Operaciones individuales compuestas de distintos patrones de intercambio de mensajes• Una interfaz que agrupa las operaciones que forman el servicio

– Una descripción concreta del servicio Web• El enlace (binding) de la interfaz a un protocolo de transporte• Dirección o punto de acceso (endpoint) del enlace (binding)• Descripción de un servicio como una colección de todos los enlaces (bindings) de la misma interfaz

Page 13: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

13

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

26

WSDL: Web Services DescriptionLanguage

message

– Una descripción abstracta de un servicio Web• El sistema de tipos usados para describir los mensajes (basado en XML Schema)

• Mensajes implicados en invocar una operación

• Operaciones individuales compuestas de distintos patrones de intercambio de mensajes• Una interfaz que agrupa las operaciones que forman el servicio

– Una descripción concreta del servicio Web• El enlace (binding) de la interfaz a un protocolo de transporte• Dirección o punto de acceso (endpoint) del enlace (binding)• Descripción de un servicio como una colección de todos los enlaces (bindings) de la misma interfaz

A. Goñi. Dpto. LSI, UPV/EHU

27

WSDL: Web Services DescriptionLanguage

– Una descripción abstracta de un servicio Web• El sistema de tipos usados para describir los mensajes (basado en XML Schema)• Mensajes implicados en invocar una operación

• Operaciones individuales compuestas de distintos patrones de intercambio de mensajes

• Una interfaz que agrupa las operaciones que forman el servicio

– Una descripción concreta del servicio Web• El enlace (binding) de la interfaz a un protocolo de transporte• Dirección o punto de acceso (endpoint) del enlace (binding)• Descripción de un servicio como una colección de todos los enlaces (bindings) de la misma interfaz

portType

operation

Page 14: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

14

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

28

WSDL: Web Services DescriptionLanguage

– Una descripción abstracta de un servicio Web• El sistema de tipos usados para describir los mensajes (basado en XML Schema)• Mensajes implicados en invocar una operación• Operaciones individuales compuestas de distintos patrones de intercambio de mensajes• Una interfaz que agrupa las operaciones que forman el servicio

– Una descripción concreta del servicio Web

• El enlace (binding) de la interfaz a un protocolo de transporte

• Dirección o punto de acceso (endpoint) del enlace ( binding)• Descripción de un servicio como una colección de todos los enlaces (bindings) de la misma

interfaz

binding

A. Goñi. Dpto. LSI, UPV/EHU

29

WSDL: Web Services DescriptionLanguage

– Una descripción abstracta de un servicio Web• El sistema de tipos usados para describir los mensajes (basado en XML Schema)• Mensajes implicados en invocar una operación• Operaciones individuales compuestas de distintos patrones de intercambio de mensajes• Una interfaz que agrupa las operaciones que forman el servicio

– Una descripción concreta del servicio Web• El enlace (binding) de la interfaz a un protocolo de transporte

• Dirección o punto de acceso (endpoint) del enlace (binding)• Descripción de un servicio como una colección de todos los

enlaces (bindings ) de la misma interfaz

port

service

Page 15: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

15

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

30

Punto de acceso (endpoint) al SW

A. Goñi. Dpto. LSI, UPV/EHU

31

Page 16: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

16

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

32

RESULTADO

Mensaje SOAP con la

respuesta

A. Goñi. Dpto. LSI, UPV/EHU

33

Usar SW en JDeveloper

• Afortunadamente, los distintos entornos ofrecen herramientas y asistentes que generan los WSDL y SOAP de manera automática, a partir de clases implementadas en distintos Leng. Prog.

• Los programadores pueden seguir trabajando con sus lenguajes y plataformas habituales

• JDeveloper, en concreto, lo permite

Page 17: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

17

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

34

Crear un SW en Java

A. Goñi. Dpto. LSI, UPV/EHU

35

Se selecciona la clase Java para la que se quiere crear el SW

Page 18: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

18

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

36Seleccionar los métodos que se quieren publicar en el SW

¡Cuidado! No se pueden crear SW para métodos cuyos tipos no sean los básicos, String,

Date, Calendar,… o Array[] de ellos

A. Goñi. Dpto. LSI, UPV/EHU

37

Se indica la dirección del punto de acceso

Page 19: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

19

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

38

El WSDL se genera automáticamente

A. Goñi. Dpto. LSI, UPV/EHU

39

Punto acceso

Page 20: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

20

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

40Creamos una clase Java cliente del SW

A. Goñi. Dpto. LSI, UPV/EHU

41

Page 21: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

21

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

42

Añadimos el código con la llamada al SW (en Java)

A. Goñi. Dpto. LSI, UPV/EHU

43

Ejecutamos el SW

Page 22: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

22

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

44

Ejecutamos el cliente del SW

A. Goñi. Dpto. LSI, UPV/EHU

45

Y activamos el Monitor TCP para ver los mensajes SOAPTools => TCP Packet Monitor

Page 23: Curso 2004/05 Tema 2: Arquitecturas Software de varios ...

23

Ingeniería del Software A. Goñi, J.R. Zubizarreta, J. IturriozDpto. LSI. Facultad de Informática. UPV/EHU

A. Goñi. Dpto. LSI, UPV/EHU

46

Mensaje SOAP con la petición

Mensaje SOAP con la respuesta

A. Goñi. Dpto. LSI, UPV/EHU

47

Otros temas

• UDDI (Universal Description, Discovery and Integration)– Es un directorio distribuido donde las empresas pueden registrar,

eliminar y buscar servicios web.– Empresas como IBM, Microsoft, etc. mantienen nodos con esa

información.• Se pretende construir una infraestructura para construir

aplicaciones integrando servicios web entre empresas (B2B)• Herramientas para traducir de WSDL a un lenguaje (Java,

lenguaje .NET, …)– Apache AXIS proporciona compiladores Java a WSDL y de WSDL

a Java• Definición de otros estándares como WS-Coordination, WS-

Transaction, WS-Routing– ¿Qué pasa si se quiere reservar un viaje completo?

• Reservar vuelo => Usando SW• Reservar hotel => Usando SW• ¿Y si quisiéramos que fuera una transacción?