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
Comentarios de: Sesión 3: Orquestación de servicios: BPEL (0)
No hay comentarios