Publicado el 21 de Enero del 2019
702 visualizaciones desde el 21 de Enero del 2019
267,1 KB
19 paginas
Experto Universitario Java Enterprise
Servicios Web
Sesión 4: Procesos BPEL
síncronos y asíncronos
Experto Universitario Java Enterprise
Puntos a tratar
• Procesos BPEL síncronos
• Procesos BPEL asíncronos
• Ciclo de vida de los procesos BPEL
• Correlations
• Conjuntos de correlación
• Pasos a seguir para usar correlación en BPEL
• Conjuntos de correlación con Netbeans
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
2
Experto Universitario Java Enterprise
Invocación de servicios Web
• Invocación SECUENCIAL
<process...>
...
<sequence>
<!-- espera una petición-->
<receive.../>
<!--invocación secuencial -->
<invoque.../>
<invoque.../>
<invoque.../>
...
</sequence>
</process>
• Invocación CONCURRENTE
<process...>
...
<sequence>
<!-- espera una petición-->
<receive.../>
<!--invocación concurrente -->
<flow>
<invoque.../>
<invoque.../>
<invoque.../>
</flow>
...
</sequence>
</process>
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
3
Experto Universitario Java Enterprise
Invocación síncrona vs. asíncrona (I)
• Invocación síncrona (Operación request-reply)
Sender
(client)
1: request
2: response
Receiver
(Web service)
• Invocación asíncrona (Operación one-way)
1: Async one-way
Sender
(client)
Sender
(client)
Receiver
(Web service)
Receiver
(Web service)
1: Callback
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
4
Experto Universitario Java Enterprise
Mensaje de entrada
<variable>
Invocación de un servicio
síncrono
Aplicación
Cliente
PartnerL
inktype
Proceso BPEL
preparamos sIn
d1
<receive>
PartnerL
inktype
Servicio
síncrono
sIn
d3
d4
sOut
WSDL
leemos
sOut
<assign>
<invoque>
<assign>
<reply>
file.bpel
Mensaje de salida
<variable>
d2
WSDL
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
5
Experto Universitario Java Enterprise
Mensaje de entrada
<variable>
Invocación de un servicio
asíncrono
Aplicación
Cliente
PartnerL
inktype
Proceso BPEL
d1
<receive>
WSDL
<assign>
<invoque>
<receive>
<assign>
sIn
d3
sOut
d4
Mensaje de salida
<variable>
d2
<reply>
file.bpel
preparamos
sIn
PartnerL
inktype
Servicio
asíncrono
WSDL
esperamos
el callback
leemos
sOut
puerto
callback
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
6
Experto Universitario Java Enterprise
Proceso BPEL síncrono (II)
<!-- Estructura de un proceso BPEL síncrono -->
<process>
<receive partnerLink="pLinkA" portType="portA"
operation="opA" variable="invarA">
...... realizar procesamiento ......
<reply partnerLink="pLinkA" portType="portA"
operation="opA" variable="outvarB">
</process>
• La respuesta se devuelve al cliente de forma
inmediata
• Operación tipo request-response
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
7
Experto Universitario Java Enterprise
Proceso BPEL asíncrono (II)
<!-- Estructura de un proceso BPEL asíncrono -->
<process>
<receive partnerLink="pLinkA" portType="portA" operation="opA"
variable="invarA">
...... realizar procesamiento que consume mucho tiempo ......
<!-- Realizar una invocación sobre el cliente para devolver
los resultados -->
<invoque partnerLink="pLinkA" portType="callBackportA"
operation="opCallBackB" variable="outvarB">
</process>
• El cliente no se queda bloqueado en la llamada
• El cliente implementa una interfaz callback
• El proceso BPEL invoca a la interfaz callback sobre el
cliente. Operación tipo one-way
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
8
Experto Universitario Java Enterprise
Partner Links en procesos asíncronos
• Los partner links definen las relaciones con los
partners:
• el partner invoca al proceso BPEL (2)
• el partner es invocado por el proceso BPEL (1)
• el partner invoca y es invocado por el proceso BPEL (2-1)
1: Invoque
portType
A
Proceso BPEL
Servicio WEB
portType
B
2: CallBack
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
9
Experto Universitario Java Enterprise
Partner Link Types en procesos asíncronos
• Los partner link types permiten modelar las
relaciones entre un servicio Web y un proceso BPEL
mediante el uso de roles
• Cada partner link type debe tener como mucho dos roles
• Para cada rol se especifica qué portType se utilizará para
la interacción
• Un proceso asíncrono implementará dos roles, definidos
en un PartnerLinkType
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
10
Experto Universitario Java Enterprise
Ciclo de vida de los procesos BPEL
• Para procesos de negocio, es necesario utilizar
procesos con estado
• Los procesos BPEL siguen un modelo con estado y
soportan interacciones que llevan mucho tiempo
• Para cada interacción, se crea una instancia del
proceso
• La creación se realiza de forma implícita cuando el proceso
BPEL recibe el mensaje inicial (a través de actividades
receive o pick, con el atributo createInstance=yes)
• Esta instancia, "vive" durante la ejecución del proceso
de negocio
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
11
Experto Universitario Java Enterprise
Correlación
• Es el proceso de hacer corresponder un mensaje de
entrada a la máquina BPEL con un proceso
específico
• Las llamadas síncronas NO necesitan correlación
• BPEL utiliza datos específicos del negocio para
mantener referencias a instancias específicas del
proceso de negocio
• Conjuntos de correlación
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
12
Experto Universitario Java Enterprise
Conjuntos de correlación
• Un conjunto de
correlación está formado
por propiedades
(concepto abstracto)
• Cada propiedad es
mapeada con un
elemento en uno o más
tipos de mensajes
mediante property
aliases (aspecto
concreto)
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
13
Experto Universitario Java Enterprise
Uso de correlación
Proceso BPEL
incluye correlación basada en
los contenidos del mensaje
[2:05] receive
[2:06] process…
[2:22] callback
Iniciar servicio
<invoque>
d3
Esperar callback
<receive>
file.bpel
Servicio
PartnerLinktype
sIn
d4
WSDL
Servicio
asíncrono
puerto
callback
incluye correlación basada en
los contenidos del mensaje
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
14
Experto Universitario Java Enterprise
Pasos a seguir para usar correlación (I)
• Definimos una propiedad en nuestro WSDL
<bpws:property name="correlationData" type="xsd:int"/>
CONCEPTO
ABSTRACTO
• Definimos una propertyAlias para cada elemento de
los datos de la correlación
<bpws:propertyAlias messageType="CoreBankingP2P:CallbackType"
<bpws:propertyAlias messageType="CoreBankingP2P:ServiceRequestType"
propertyName="CoreBankingP2P:correlationData"/>
part="accountNumber"
propertyName="CoreBankingP2P:correlationData"/>
part="accountNumber" !
Relacionamos
el
concepto
abstracto
con
“partes”
CONCRETAS
de
los
mensajes
mediante
ALIAS
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
15
Experto Universitario Java Enterprise
Pasos a seguir para usar correlación (II)
• Definimos el conjunto de correlación en el fichero
BPEL (antes de cualquier secuencia de actividades)
<correlationSets>
<correlationSet name="CS1"
properties="CoreBankingP2P:correlationData"/> </
correlationSets>
• Referenciamos el conjunto de correlación dentro de
la secuencia BPEL
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
16
Experto Universitario Java Enterprise
Pasos a seguir para usar correlación (II)
<!- - secuencia BPEL: referencia a conjuntos de correlación - ->
.......
<receive name="receiveRequest" partnerLink="Client"
portType="CoreBankingP2P:CoreBankingP2PPortType"
operation="applyForCC" variable="ServiceRequest"
createInstance="yes">
<correlations>
<correlation initiate="yes" set="CS1"/>
</correlations>
</receive>
.......
<receive name="P2Pcallback" partnerLink="CoreBankingP2PPLT"
portType="CoreBankingP2P:CoreBankingCallbackP2PPortType"
operation="callback" variable="CallbackRequest">
<correlations> <correlation set="CS1"/> </correlations>
</receive>
.......
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
17
Experto Universitario Java Enterprise
Conjuntos de correlación con Netbeans
• Definir las propiedades y alias en los ficheros WSDL
• Utilizamos la vista del Navegador: Windows > Navigator
• Definimos los conjuntos de correlación en el proceso
BPEL
• Utilizamos la vista de diseño del proceso BPEL
• Añadimos el conjunto de correlación a las actividades
• Utilizamos la vista de diseño del proceso BPEL
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Procesos BPEL Sincronos/Asincronos
18
Experto Universitario Java Enterprise
¿Pregunt
Comentarios de: Sesión 4: Procesos BPEL síncronos y asíncronos - Servicios Web (0)
No hay comentarios