Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta,...

24
Experto Universitario Java Enterprise Servicios Web Sesión 3: Orquestación de servicios: BPEL

Transcript of Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta,...

Page 1: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web

Sesión 3: Orquestación de servicios: BPEL

Page 2: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Puntos a tratar

• Orquestación vs. Coreografía• El lenguaje BPEL• Estructura de un proceso BPEL• Pasos para desarrollar un proceso BPEL• Despliegue y pruebas de un proceso BPEL• Creación y ejecución de casos de prueba

2

Page 3: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Orquestación vs. Coreografía

• ORQUESTACIÓN • COREOGRAFÍA

Orquestación(coordinador)

Servicio Web 1

Servicio Web3

Servicio Web2

Servicio Web4

1: Receive 2: Invoque

3: Invoque 4: Invoque

5: Reply

Servicio Web 1

Servicio Web 4

Servicio Web 2

Servicio Web 3

1: Invoque

2: Invoque

4: Invoque

5: Invoque

3

3: Reply

Page 4: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

¿Por qué orquestar servicios Web?

• Los servicios Web como tecnología común para proporcionar puntos de integración entre las aplicaciones• Modelo de interfaces que permite integrar las aplicaciones

independientemente de su origen• Descubrimiento de los servicios en tiempo de ejecución• Bajo acoplamiento

• Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel

4

Page 5: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

¿Por qué orquestar Servicios Web con BPEL?• BPEL es un lenguaje estándar para la integración y

automatización de procesos• Menores costes de mantenimiento• Menores costes de soporte• Amplía el grupo de desarrolladores• BPEL proporciona soporte para:• Elevados tiempos de ejecución• Compensación• Reacción ante eventos• Modelado de actividades concurrentes• Modelos con estado

5

Page 6: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

El lenguaje BPEL• BPEL: Business Process Execution Language• Lenguaje basado en XML que soporta la tecnología de servicios Web• Diseñado para definir procesos de negocio• BPEL es la convergencia entre WSFL (IBM) y XLANG (Microsoft) →

BPEL4WS

• BPEL puede utilizarse dentro de una empresa y entre empresas

6

Page 7: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Esquema de un proceso BPELAplicación

Cliente

Consola BPEL

Java/JSP

Cliente SOAP

Partner link

Proceso BPEL

portType portType

portType

Partner link

Partner link

ServicioWeb 1

ServicioWeb 2

<receive>

<invoque>

<invoque>

<reply>

7

Page 8: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Estructura de un

proceso BPEL

8

PartnerLink PartnerLink

PartnerLink

Page 9: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

(*.bpel)

9

Page 10: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL 10

Cada proceso BPEL tiene

al menos un PartnerLink

cliente

Define el tipo de interacción

entre dos partners

Los roles se definen en elpartnerLinkType

Page 11: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

PartnerLinkType

11

Declara cómo interactúan las dos partes y lo que cada parte ofrece

Page 12: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Ejemplo• Supongamos un servicio Bpel denominado saludo.bpel

12

<!-- Extracto de Saludo.wsdl --><partnerLinkType name="MyPartnerLinkType"> <role name="ProveedorServicioSaludo" portType="SaludoPortType"/> </role></partnerLinkType>

<!-- Extracto de Saludo.bpel --><partnerLinks> <partnerLink name="cliente" partnerLinkType="MyPartnerLinkType" myRole="ProveedorServicioSaludo"/></partnerLinks>

Define la relación entre el proceso bpel y el cliente del proceso bpel

El proceso bpel implementa el portType=”SaludoPortType”

Cada partnerLinkType se define en el fichero WSDL: (a) del proceso BPEL, en el caso de que describa la interacción del cliente con el propio proceso BPEL, o (b) del servicio Web al que invoca dicho proceso BPEL

Page 13: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

PartnerLink Types y PartnerLinks.Ejemplo

• El proceso LoanFlow hace una petición al servicio Credit Rating

requestLoanFlow

BPEL Process

Credit RatingService

WSDLLoanFlow.bpel

LoanFlow.wsdl

WSDL

reply

CreditRating.wsdl

<partnerLinkType>

<partnerLink>

13

Page 14: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

PartnerLink Types y PartnerLinks.Ejemplo

<partnerLinks> <partnerLink name="creditRatingService" partnerLinkType=" CreditService " partnerRole="ProveedorDelCredito"/></partnerLinks>

<plnk:partnerLinkType name="CreditService"> <plnk:role name="ProveedorDelCredito"> <plnk:portType name="tns:CreditRatingService" /> </plnk:role></plnk:partnerLinkType>

14

Page 15: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Variables• Declaración

• Asignación

<variables> <variable name="nombreVar" messageType="qname" type="qname" element="qname" /></variables>

<assign> <copy> <from variable="ncname" part = "ncname"/> <to variable="ncname" part = "ncname"/> </copy></ assign >

Los atributos messageType, type yelement son excluyentes

15

Page 16: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Actividades (I)

• Primitivas: representan construcciones básicas• <receive>: bloquea al proceso que la invoca• <reply>: devueve una respuesta• <invoque>: invoca a un servicio Web• <assign>: asigna un valor a una variable• <wait>: suspende al proceso un cierto tiempo• <throw>: para indicar fallos y excepciones

16

Page 17: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Actividades (II)

• Estructuradas: permiten combinar las actividades primitivas• <sequence>: las actividades se invoca en forma de

secuencia ordenada• <flow>: las actividades se ejecutarán en paralelo• <if>: las actividades se ejecutan en función de una condición• <while>: definición de bucles• <pick>: hace que el proceso espere la llegada de algún

evento y en función de él elija un camino de entre varios alternativos

17

Page 18: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Pasos para crear un proceso de negocio con BPEL• Conocer los servicios Web implicados• Familiarizarnos con los port types de los Web partners

• Definir el WSDL del proceso BPEL• Definir el partner link type del cliente

• Desarrollar el proceso BPEL• Definir los partner links• Declarar las variables• Escribir la definición de la lógica del proceso

18

Page 19: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Pasos para crear un proceso de negocio con BPEL y Netbeans• Crear un proyecto BPEL• Proceso BPEL (*.bpel)• Fichero WSDL (*.wsdl)• Fichero de esquema (opcional) (*.xsd)

• Crear un proyecto Composite Application• Añadir el módulo BPEL como un módulo JBI en la

Composite Application• Arrancar el servidor de aplicaciones• Desplegar el proyecto Composite Application en la

BPEL service engine• Crear y ejecutar los casos de prueba

19

Page 20: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Composite Application Project• Se utiliza para crear un

ensamblado de servicios (Service Assembly) que puede desplegarse en el servidor de aplicaciones como un componente JBI.

• Un proyecto BPEL no es directamente desplegable. Primero debemos añadir dicho proyecto BPEL, como un módulo JBI, en un proyecto Composite Application.

• A continuación podremos desplegar el proyecto Composite Application en la máquina de servicios BPEL.

20

Page 21: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Entorno de ejecución JBI

• Los componentes que suministran o consumen servicios dentro del entorno JBI son referenciados como máquinas de servicios (Service Engines)

21

Page 22: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Máquina de servicios BPEL

• Es un componente JBI que proporciona servicios para ejecutar procesos de negocio desarrollados con WS-BPEL 2.0.

• La máquina de servicios BPEL arranca juntamente con el servidor de aplicaciones

Componentes JBI

Máquina de servicios BPEL

Componentes para acceder a

servicios externos

22

Page 23: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

Servicios Web © 2012-2013 Depto. Ciencia de la Computación e IA Orquestación de servicios: BPEL

Creación y ejecución de Pruebas

• Añadimos un caso de prueba y lo enlazamos con una operación BPEL

• Determinamos las propiedades de la prueba

• Modificamos las entradas de las pruebas: fichero Input.xml

• Ejecutamos la prueba: ésta queda registrada en el fichero Output.xml

HasAirline

23

Page 24: Servicios Web - ua · 2014-06-26 · • Orquestación de servicios Web como aproximación abierta, basada en estándares para crear procesos de negocio de alto nivel 4. ... WS-BPEL

Experto Universitario Java Enterprise

¿Preguntas...?