BPEL
BPEL
BPEL
BPEL persigue lograr un modelo de Programación a grán escala. Los conceptos de programación a
grán escala y de Programación a pequeña escala distinguen dos enfoques del desarrollo de
procedimientos asincrónicos de larga duración que vamos a generalizar dentro del concepto
Procesos Empresariales.
BPEL puede utilizarse dentro de una empresa y entre empresas. Dentro de una empresa, el papel
de BPEL es el de estandarizar la integración de aplicaciones y extender la integración de sistemas
previamente aislados. Entre empresas, BPEL permite una integración más fácil y efectiva con
partners del negocio. BPEL es una tecnología clave en entornos en donde las funcionalidades ya
están o serán expuestas via servicios Web.
Procesos de negocio ejecutables: especifican los detalles exactos de los procesos del
negocio y pueden ser ejecutados en una máquina de orquestación (orchestration engine).
En la mayoría de los casos BPEL se utiliza para procesos ejecutables
Procesos abstractos de negocio: especifican solamente el intercambio de mensajes
públicos entre las partes implicadas, sin incluir detalles específicos de los flujos de los
procesos. No son ejecutables y raramente se utilizan.
Este lenguaje esta definido en XML y esta diseñado para orquestar procesos de forma automática.
Se le llama Orquestar por que BPEL es el encargado de consumir varios servicios en un orden
especificado y realizar una función muy concreta.
Es un lenguaje de alto nivel que lleva el concepto de servicio un paso adelante al proporcionar
métodos de definición y soporte para flujos de trabajo y procesos de negocio
El enfoque sobre procesos de negocios modernos más el bagaje de los lenguajes WSDL y XLANG,
guiaron a BPEL a adoptar los servicios Web como su mecanismo de comunicación externa. Así las
facilidades de mensajería BPEL dependen del uso del WSDL para describir los mensajes entrantes y
salientes.
Formato
El BPEL, como todo lenguaje basado en XML consta de etiquetas y cada etiqueta tiene su
semántica.
Cada documento BPEL tiene una etiqueta <process> que es el elemento raíz(en el sentido XML de
la palabra) del documento. En el interior de esta etiqueta se encontrarán la descripción completa
del proceso. Por medio del attributo name uno puede asignarle un nombre a un proceso.
Ejemplo:
Existen muchas otras etiquetas que modifican la forma en que la máquina ejecutora de BPEL
interpreta el fichero BPEL.
<import>
Importar un WSDL.
<partnerLinks>
Permite referirse a acciones definidas dentro del WSDL. Los atributo myRole y partnerRole define
si esta es una acción que depende del proceso o si es una acción llamada desde el proceso.
<variables>
<secuence>
Esta etiqueta va a contener las acciones o la estructura ligada a la ejecución del proceso
directamente.
<receive>
<reply>
Esta etiqueta permite enviar una respuesta a un partnerLink que esté esperando alguna.
<invoke>
Esta etiqueta permite hacer una llamada a un webservice. Ésta utiliza un partnerLink saliente y
puede o no recibir una respueta.
<forEach>
Esta etiqueta permite realizar un bucle. Uno declara un contador(variable que será incrementada
en cada iteración), un valor inicial y un valor final. El bucle se puede ejecutar en paralelo.
<while> o <repeatUntil>
<correlationSet>
Cuando muchas acciones son lanzadas en paralelo, puede ser indispensable especificar las
relaciones entre éstas. Por ejemplo una entrada puede estar ligada a una salida. Ésta etiqueta
permite relacionar los <invoke> y los <receive>. Solo puede haber una sola etiqueta de éste tipo
por proyecto.