BPEL

Revisión del 15:01 20 jun 2019 de Javiermartin jc (discusión | contribuciones) (Texto reemplazado: «<div align="justify">» por «»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
BPEL
Información sobre la plantilla
WS-BPEL.gif
lenguaje estandarizado por OASIS para la composición de servicios web

BPEL, siglas en inglés de (Business Process Execution Language), es un lenguaje de programación destinado para la ejecución de Procesos Empresariales. BPEL es un descendiente de WSFL y XLANG, y se deriva de XML. También es conocido como WS-BPEL o Web Services- Business Process Execution Language (Lenguaje de Ejecución de Procesos de Negocio con Servicios Web)

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.

La especificación 2.0 de éste lenguaje fue descrita por el consorcio OASIS a finales de marzo del 2007.

El documento

Un documento BPEL define el proceso, o la orquestación y la lógica de las acciones que serán ejecutadas por los motores de orquestación. La estructura de un fichero BPEL es la misma de la del proceso. El programa constituye en sí el código fuente de la aplicación que ejecuta el proceso, el motor de orquestación actúa como una máquina virtual capaz de ejecutar código BPEL.

El Lenguaje BPEL

El lenguaje fue concebido por grandes de la informática como Oracle, BEA Systems, IBM, SAP y Microsoft entre otros y estandarizado por OASIS para la composición de servicios web

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.

Adicionalmente a proveer facilidades para habilitar el envío y recepción de mensajes, el lenguaje de programación BPEL también posibilita:

  • Un mecanismo de correlación de mensajes basado en propiedades.
  • Variables del tipo XML y WSDL.
  • Un modelo de lenguaje extensible de componentes para permitir escribir expresiones y consultas (queries) en múltiples lenguajes: BPEL soporta Xpath 1.0 predeterminadamente.
  • Construcciones de Programación estructurada incluyendo "if-then-elseif-else", "while", "sequence" y "flow".
  • Un sistema de ámbito (scoping) que permite el encapsulamiento de lógica con variables locales, manejadores de fallo, manejadores de compensación y manejadores de eventos.
  • Ámbitos serializados para controlar los accesos a las variables.

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:

<process 
  name="nombreDelProceso"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
  targetNamespace="http://www.softel.cu"
  xmlns:tns="http://www.softel.cu" >
[...]
</process>

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>
    • Esta acción permite la definición de variables utilizadas por el proceso.
  • <secuence>
    • Esta etiqueta va a contener las acciones o la estructura ligada a la ejecución del proceso directamente.
  • <receive>
    • Esta etiqueta permite recibir un dato o señal del exterior.
  • <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>
    • son formas alternativas para realizar bucles.
  • <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.

Objetivos del diseño de BPEL

  1. Definir procesos de negocio que interactúan con entidades externas mediante operaciones de un servicio Web definidas usando WSDL 1.1 y que se manifiestan a sí mismas como servicios Web.
  2. Definir procesos de negocio utilizando un lenguaje basado en XML. No definir una interpretación gráfica de procesos o proveer de una metodología de diseño en particular.
  3. Definir una serie de conceptos de orquestación de servicios Web que pretenden ser usados por vistas internas o externas de un proceso de negocio.
  4. Proveer sistemas de control jerárquicos y de estilo gráfico, que permitan que su uso sea lo más fusionado e inconsútil posible. Esto reduciría la fragmentación del espacio del modelado de procesos.
  5. Proveer funciones de manipulación simple de datos, requeridas para definir datos de procesos y flujos de control.
  6. Soportar un método de identificación de instancias de procesos que permita la definición de identificadores de instancias a nivel de mensajes de aplicaciones. Los identificadores de instancias deben ser definidos por socios y pueden cambiar.
  7. Brindar la posibilidad de la creación y terminación implícitas de instancias de procesos, como un mecanismo básico de ciclo de vida. Operaciones avanzadas de ciclo de vida como por ejemplo "suspender" y "continuar" pueden agregarse en futuras versiones para mejorar el manejo del ciclo de vida.
  8. Definir un modelo de transacción de largo plazo que se base en técnicas probadas tales como acciones de compensación y ámbito, de tal manera a brindar recuperación a fallos para partes de procesos de negocios de largo plazo.
  9. Usar servicios Web como modelo para la descomposición y ensamblaje de procesos.
  10. Construir sobre estándares de servicios Web tanto como sea posible, de manera modular y extensible.

Ver también

Fuentes