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
586 visualizaciones desde el 21 de Febrero del 2019
940,1 KB
24 paginas
Creado hace 12a (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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad