BPEL
(Business Process Execution Language)
- Qué es BPEL?
Es un lenguaje estandarizado por OASIS para la composición de servicios web. Está desarrollado a partir de WSFL y XLANG ambos lenguajes orientados a la descripción de servicios Web. Consiste en un lenguaje basado en XML diseñado para el control centralizado de la invocación de diferentes servicios Web, con cierta lógica de negocio añadida que ayuda a la programación en gran escala (programming in the large). Antes de su estandarización se denominaba BPEL4WS.
2. Objetivos del diseño BPEL?
Construcción de componentes de software pequeños y autónomos. El desarrollo de BPEL nace de la necesidad de manejar lenguajes distintos entre la programación a gran escala y la programación detallada, ya que en su esencia ambos tipos de desarrollo requieren de distintos grados de comunicación con otros servicios.
3. Qué es un proceso BPEL Síncrono?
Un proceso BPEL síncrono es aquel que devuelve al cliente los resultados de procesamiento de forma inmediata. El cliente se bloquea hasta que los resultados son devueltos. El proceso BPEL tendrá una operación de tipo request-response. Este tipo de proceso típicamente sigue la siguiente lógica y sintaxis:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <!-- Estructura de un proceso BPEL síncrono --> < process ...> ... < sequence > <!-- espera a una petición para comenzar el proceso --> < receive... /> <!-- invoca a un conjunto de servicios relacionados --> ... <!-- devuelve una respuesta síncrona al cliente --> < reply .../> ... </ sequence > </ process > |
Para que un proceso BPEL sea síncrono, todos los servicios Web a los que invoca tienen que ser también síncronos.
4. Qué es un proceso BPEL Asíncrono?
Un proceso BPEL asíncrono no bloquea al cliente. Para devolver un resultado al cliente, un proceso asíncrono utiliza una llamada "callback". Sin embargo, no es imprescindible que el proceso BPEL devuelva una respuesta.
Un proceso BPEL asíncrono no utiliza la cláusula <reply>. Si dicho proceso tiene que enviar una respuesta al cliente, utiliza la cláusula <invoque> para invocar a la operación callback sobre el port type del cliente. Recuerda que un proceso BPEL no necesita devolver nada. La estructura de un proceso BPEL asíncrono es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <!-- Estructura de un proceso BPEL asíncrono --> < process ...> ... < sequence > <!-- espera a una petición para comenzar el proceso --> < receive... /> <!-- invoca a un conjunto de servicios relacionados --> ... <!-- invoca a un callback sobre el cliente (si es necesario) --> < invoque .../> ... </ sequence > </ process > |
Podemos utilizar un proceso BPEL asíncrono en un escenario en el que el calcular los resultados conlleva mucho tiempo. Cuando utilizamos un proceso BPEL asíncrono, es necesario que el cliente no se quede bloqueado en la llamada. En su lugar, el cliente implementa una interfaz callback y una vez que los resultados están disponibles, el proceso BPEL simplemente realiza una invocación callback sobre el cliente.
SOA BPEL con OpenESB
BPEL desde Eclipse
Enlaces
No hay comentarios:
Publicar un comentario