PDF de programación - Sesión 3: Orquestación de servicios: BPEL

Imágen de pdf Sesión 3: Orquestación de servicios: BPEL

Sesión 3: Orquestación de servicios: BPELgráfica de visualizaciones

Publicado el 21 de Febrero del 2019
194 visualizaciones desde el 21 de Febrero del 2019
940,1 KB
24 paginas
Creado hace 8a (01/01/2012)
Experto Universitario Java Enterprise

Servicios Web

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



Experto Universitario Java Enterprise

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

2



Experto Universitario Java Enterprise

Orquestación vs. Coreografía

• ORQUESTACIÓN

• COREOGRAFÍA

Servicio Web

1

Servicio Web

2

5: Invoque

1: Receive

2: Invoque

Servicio Web

1
1: Invoque

5: Reply

Orquestación
(coordinador)

3: Invoque

4: Invoque

Servicio Web

4

Servicio Web

2
2: Invoque

Servicio Web

3

Servicio Web

4

4: Invoque

Servicio Web

3

3: Reply

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

3



Experto Universitario Java Enterprise

¿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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

4

Experto Universitario Java Enterprise


¿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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

5



Experto Universitario Java Enterprise

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

6



Experto Universitario Java Enterprise

Esquema de un proceso BPEL

Aplicación

Cliente

Consola
BPEL

Java/JSP

Cliente
SOAP

Partner link

portType

portType

Partner link

Servicio
Web 1

<receive>

<invoque>

<invoque>

<reply>

Proceso BPEL

portType

Partner link

Servicio
Web 2

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

7



Experto Universitario Java Enterprise

PartnerLink

Estructura

de un
proceso
BPEL

PartnerLink

PartnerLink

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

8



Experto Universitario Java Enterprise

(*.bpel)

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

9



Experto Universitario Java Enterprise

Define el tipo de interacción
entre dos partners

Los roles se definen en el
partnerLinkType

Cada proceso BPEL tiene
al menos un PartnerLink
cliente

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL 10



Experto Universitario Java Enterprise

PartnerLinkType

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

11



Experto Universitario Java Enterprise

Ejemplo
• Supongamos un servicio Bpel denominado saludo.bpel
Define la relación entre el
proceso bpel y el cliente del
proceso bpel

<!-- 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>

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

12



Experto Universitario Java Enterprise

PartnerLink Types y PartnerLinks.Ejemplo

WSDL

LoanFlow.bpel

<partnerLink>

<partnerLinkType>

LoanFlow

BPEL
Process

request

WSDL

reply

Credit Rating

Service

CreditRating.wsdl

LoanFlow.wsdl
• El proceso LoanFlow hace una petición al servicio

Credit Rating

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

13



Experto Universitario Java Enterprise

PartnerLink Types y PartnerLinks.Ejemplo

<partnerLinks>
<partnerLink
name="creditRatingService"


</partnerLinks>

partnerLinkType=" CreditService "
partnerRole="ProveedorDelCredito"/>

<plnk:partnerLinkType name="CreditService">
<plnk:role name="ProveedorDelCredito">


</plnk:role>
</plnk:partnerLinkType>

<plnk:portType
name="tns:CreditRatingService" />

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

14



Experto Universitario Java Enterprise

Variables
• Declaración
<variables>

messageType="qname"

element="qname" />
</variables>

<variable name="nombreVar"

type="qname"

Los atributos messageType, type y
element son excluyentes

• Asignación

<assign>



</ assign >

<copy>


</copy>

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

15



Experto Universitario Java Enterprise

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

16



Experto Universitario Java Enterprise

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

17



Experto Universitario Java Enterprise
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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

18



Experto Universitario Java Enterprise
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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

19



Experto Universitario Java Enterprise

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.

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

20



Experto Universitario Java Enterprise

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)

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

21



Experto Universitario Java Enterprise

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

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Orquestación de servicios: BPEL

22



Experto Universitario Java Enterprise

Creación y ejecución de Pruebas

• Añadimos un caso de

prueba y lo enlazamos con
  • Links de descarga
http://lwp-l.com/pdf15313

Comentarios de: Sesión 3: Orquestación de servicios: BPEL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad