SlideShare una empresa de Scribd logo
LENGUAJE DE EJECUCIÓN DE PROCESOS DE NEGOCIO2009UNIVERSIDAD VERACRUZANABusiness Process Execution LanguageSIO_EQUIPO02INTEGRANTES:Cruz Pérez José JavierLeyva González Alejandra BereniceLing Martínez DanielVilla González Roberto DavidCATOGAINTRODUCCIÓNEl Lenguaje de Ejecución de Procesos de Negocio para Servicios Web (BPEL4WS) es un lenguaje basado en XML que describe formalmente los procesos de negocio y protocolos de interacción. BPEL4WS define como se conectan entre sí los servicios Web a fin de realizar una determinada tarea. La especificación BPEL4WS se fundamenta en las especificaciones de servicios Web como XML, SOAP y WSDL, con el objetivo de facilitar el desarrollo de sofisticados escenarios de servicios Web que incluyen transacciones de negocio. BPEL4WS servirá como base para la orquestación de servicios Web mediante la creación de las especificaciones necesarias para describir formalmente procesos de negocio interoperables y protocolos de interacción entre ellos.Business Process Execution LanguageBPEL4WS o Business Process Execution Language for Web Services pretende ser el estándar para la composición de Workflows basados en servicios web y teniendo en cuenta el apoyo que está teniendo de diferentes fabricantes, va por buen camino.IBM ha estado ofreciendo durante los últimos meses una serie de artículos sobre BPEL4WS que nos pueden ayudar a comprender y a iniciarnos en esta tecnología. Business Process Execution Language, (en castellano, Lenguaje de Ejecución de Procesos de Negocio), es un lenguaje estandarizado por OASIS para la composición de servicios web. Está desarrollado a partir de WSDL y XLANG, ambos lenguajes orientados a la descripción de servicios Web. Básicamente, 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.BPEL es un lenguaje de orquestación, no un lenguaje coreográfico. La diferencia mayor entre ambos es el ámbito. Un modelo de orquestación provee un ámbito específicamente enfocado en la vista de un participante en particular (ejemplo: un modelo par-a-par). En cambio, un modelo coreográfico abarca todos los participantes y sus interacciones asociadas, dando una vista global del sistema. Las diferencias entre orquestación y coreografía están basadas en analogías: la orquestación describe un control central del comportamiento como un director en una orquesta, mientras que la coreografía trata sobre el control distribuido del comportamiento donde participantes individuales realizan procesos basados en eventos externos, como en una danza coreográfica donde los bailarines reaccionan a los comportamientos de sus pares.A través de un documento XML BPEL, un analista de negocio es capaz de representar la lógica asociada y los elementos con los que se verá relacionado. Estos elementos serán servicios Web y la lógica el proceso BPEL.Si imaginamos un flujo de negocio determinado, con una entrada A y una salida Z, este se podría componer de muchos procesos internos que se lanzarían dependiendo de valores y respuestas anteriores. BPEL sería el encargado de orquestar todo el proceso ordenando qué proceso ejecutar (servicio Web) y en qué momento.Este lenguaje fue concebido por los grandes de la informática como lo son Oracle, BEA Systems, IBM, SAP y Microsoft entre otros.La constitución de BPEL4WS ha pasado por varios periodos: En Abril de 2003, IBM y Microsoft, junto con BEA, SAP y Siebel enviaron la especificación 1.1 a OASIS para su estandarización en el Web Services BPEL Technical Committee.  Aunque BPEL4WS apareció en versiones 1.0 y 1.1, el comité técnico de OASIS votó el 14 de Septiembre de 2004 la especificación 2.0 bajo el nombre de WS-BPEL. Este cambio en nombre y versión refleja las significativas (y en muchos casos  incompatibles) diferencias que existen entre BPEL4WS 1.1 y WS-BPEL 2.0. En general, se asume que cuando se habla de BPEL no se tiene en cuenta la versión, y cuando se indica una versión ser referencia a una u otra especificación.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 negocioEl enfoque sobre procesos de negocios modernos más el conjunto de conocimientos 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\"
 (posibilita la ejecución de comandos en orden) y \"
flow\"
 (posibilita la ejecución de comandos en paralelo).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.La representación de BPEL puede hacerse con cualquier herramienta que soporte este lenguaje como puede ser ActiveBPEL o ODE (actualmente como proyecto Incubator en la Apache Foundation). Por el momento, no existe notación gráfica para WS-BPEL, y el comité técnico de OASIS decidió dejarlo fuera del alcance. Algunos vendedores han creado sus propias notaciones, las cuales se benefician de que la mayoría de las construcciones en BPEL están estructuradas en bloques, lo que facilita que se pueda representar de manera directa y visualmente en lo que se denomina como estructuro-gramas.   Otras empresas han propuesto usar un lenguaje para la modelización de procesos radicalmente diferente llamado Business Process Modeling Notation (BPMN), que sirve para captura las descripciones de los procesos BPEL  en un entorno gráfico de usuario, para lo que se utiliza un mapeo informal e incompleto de BPMN a BPEL 1.1 que aparece en la especificación de BPMN. No obstante, es un área todavía poco madura y han aparecido algunas herramientas open-source como BPMN2BPEL que incluye una traducción entre ambos lenguajes más elaborada. Sin embargo, el desarrollo de estas herramientas de conversión no está exento de problemas ya que las transformaciones entre ambos lenguajes no es trivial.  Objetivos del diseño de BPELDefinir 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.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.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.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.Proveer funciones de manipulación simple de datos, requeridas para definir datos de procesos y flujos de control.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.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.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.Usar servicios Web como modelo para la descomposición y ensamblaje de procesos.Construir sobre estándares de servicios Web (aprobados y propuestos) tanto como sea posible, de manera modular y extensible.Estructura de un Proceso de Negocio con BPEL La estructura básica que se utiliza para modelar un proceso de negocio es la siguiente:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Los atributos de que definen a la etiqueta “process” son los siguientes: queryLanguage: Este atributo especifica el lenguaje de consulta XML usado para la selección de los nodos cuando asignamos, realizamos la definición de una propiedad o cualquier otro uso. El valor por defecto para este atributo es XPath 1.0 representado por la URI de la especificación XPath 1.0 siguiente: http://www.w3.org/TR/1999/REC-xpath-19991116.expressionLanguage: Este atributo especifica el lenguaje de expresión usado en el proceso. Por defecto el valor de este atributo es XPath 1.0, representado por la URI de la especificación XPath 1.0 anteriormente indicada.  suppressJoinFailure: Este atributo determina cuando el fallo de tipo “joinFailure” debe ser eliminado para todas las actividades del proceso.. El efecto de este atributo al nivel del proceso puede ser sobrescrito por una actividad usando un valor diferente para el atributo. El valor por defecto para este atributo es “no”.  enableInstanceCompensation: Este atributo determina cuando la instancia de un proceso como un todo puede ser compensado por una plataforma específica. El valor por defecto de este atributo es “no”.  abstractProcess: Este atributo especifica cuando un proceso está siendo definido como abstracto en vez de ejecutable. El valor por defecto de este atributo es “no”.   La expresión representada por la palabra \"
activity\"
 puede ser cualquiera de las siguientes:Etiqueta  Se utiliza para recibir un mensaje de un determinado tipo. La sintaxis de esta etiqueta es la siguiente:                                                      Etiqueta  Se utiliza para permitir a un proceso de negocio enviar un mensaje de respuesta a un mensaje recibido con la etiqueta . La combinación de  y  forma una operación petición-respuesta en el WSDL portType del proceso. La sintaxis completa de esta etiqueta es la siguiente:                                          Etiqueta  Sirve para permitir al proceso de negocio invocar operaciones petición-respuesta unidireccional ofrecida por un portType de un WSDL. La sintaxis de la etiqueta es la siguiente:                                                                                                                      Etiqueta  Esta etiqueta se utiliza para permitir la actualización de los valores de una variable con nuevos datos. Cada etiqueta  puede contener cualquier número de elementos elementales de asignación, La sintaxis de la etiqueta es la siguiente:           from-spec to-spec   Etiqueta  Esta etiqueta se utiliza cuando queremos generar un error (excepción) desde dentro del proceso de negocio. La sintaxis es la siguiente:        Etiqueta  Mediante  podemos forzar una espera del proceso de negocio durante un periodo de tiempo determinado. Tiene la siguiente sintaxis:    wait (for=\"
duration-expr\"
 |          until=\"
deadline-expr\"
)>   Etiqueta  Sirve cuando queremos introducir dentro de un proceso de negocio una instrucción vacía y que no presenta funcionalidad. Suele ser útil para realizar labores de sincronización entre actividades. La etiqueta tiene la siguiente sintaxis:    Etiqueta  Mediante la etiqueta  podemos definir una colección de actividades que tienen que realizarse de manera secuencial (en orden léxico). La sintaxis es:     Etiqueta  Con  podemos crear ramas de bifurcación, de manera que de todas las definidas indiquemos cuál de ellas queremos seguir. La sintaxis en este caso es:                                            Etiqueta  Mediante  podemos indicar que una actividad debe de repetirse mientras cierto criterio sea cierto. La sintaxis de la etiqueta es la siguiente:    Etiqueta   permite bloquear y esperar a la llegada de un determinado mensaje o a que salte una alarma de tiempo. Cuando uno de estas dos circunstancias ocurren la actividad asociada es ejecutada. La sintaxis completa de la etiqueta es:                                                                                                                            Etiqueta  Con esta etiqueta podemos indicar una o más actividades que tienen que ser realizadas de manera concurrente. Dentro de un  se puede utilizar la etiqueta  que permite introducir dentro de las actividades concurrentes estructuras de control. La sintaxis en este caso es:                             Etiqueta  La etiqueta  es útil cuando queremos definir una actividad enlazada con sus propias variables, manipuladores de error y manipuladores de compensación. La sintaxis que sigue esta etiqueta es la siguiente:                                                  Bibliografíahttp://www.javahispano.org/contenidos/es/quiero_saber_todo_sobre_bpel4ws/http://www.microsoft.com/spain/interop/ip/stdlicprog.mspxhttp://www.lawebsemantica.com/contents/webSemantica/procesos/bpel1.html
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009
BPEL_sio2009

Más contenido relacionado

PPT
SOAP y Web Services
PPTX
EQUIPO 2,2A PARTE DE LAS AGUILAS
PPTX
EQUIPO 2,LAS AGUILAS
PPTX
Ekipo 2
PPTX
Revision de tecnologias web
PDF
Web services
PDF
Análisis y planteamiento del problema
PPTX
Servicios web xml
SOAP y Web Services
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,LAS AGUILAS
Ekipo 2
Revision de tecnologias web
Web services
Análisis y planteamiento del problema
Servicios web xml

La actualidad más candente (13)

DOCX
Manuel santiagojosea.ac1u1 daw
PPTX
Andre.paola9 blos blospot blogger
PDF
Lenguajes para programación web
PDF
Clase 1 Introducción al Desarrollo Web
PDF
Power shell
PDF
Clase 4 JavaScript Básico
PDF
Clase 2 Lenguajes de Programación Web
DOCX
PPTX
PPTX
PPTX
Paola 1001 jt
PDF
Ponencia global planning
Manuel santiagojosea.ac1u1 daw
Andre.paola9 blos blospot blogger
Lenguajes para programación web
Clase 1 Introducción al Desarrollo Web
Power shell
Clase 4 JavaScript Básico
Clase 2 Lenguajes de Programación Web
Paola 1001 jt
Ponencia global planning
Publicidad

Destacado (20)

DOCX
Soa y los sevicios web tradicionales
DOCX
Soa y los servicios web de segunda generacion
PPT
Soa
PDF
Wid bpel
PDF
Implementación de Servicios Web Semánticos para Arquitecturas SOA
PPT
Experiencias Usando la Tecnología ADF
PDF
Tema 3 3
DOCX
Conceptos básicos de la arquitectura orientada a servicios
PDF
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...
PDF
BPEL Project
DOCX
Quién define las pautas de soa
PPT
DOCX
Elementos esenciales de una arquitectura orientada a servicios
PPT
Enterprise 2.0 & SocialBPM
PPT
2 Integracion Forms Bpel
ODP
Soa Y Bpel
PPT
Presentacion Soa Ibm Phb.V2
PDF
Modelado Avanzado - Arquitecturas Orientadas a Servicios
PDF
Modernizacion Oracle Forms
PPTX
Aplicaciones prácticas de las arquitecturas orientadas al servicio
Soa y los sevicios web tradicionales
Soa y los servicios web de segunda generacion
Soa
Wid bpel
Implementación de Servicios Web Semánticos para Arquitecturas SOA
Experiencias Usando la Tecnología ADF
Tema 3 3
Conceptos básicos de la arquitectura orientada a servicios
Curso JAVA ARQUITECTURA SOA: DESARROLLO Y ORQUESTACIÓN DE SERVICIOS WEB CON J...
BPEL Project
Quién define las pautas de soa
Elementos esenciales de una arquitectura orientada a servicios
Enterprise 2.0 & SocialBPM
2 Integracion Forms Bpel
Soa Y Bpel
Presentacion Soa Ibm Phb.V2
Modelado Avanzado - Arquitecturas Orientadas a Servicios
Modernizacion Oracle Forms
Aplicaciones prácticas de las arquitecturas orientadas al servicio
Publicidad

Similar a BPEL_sio2009 (20)

PPT
2 do trabajo-penas
DOCX
Arquitectura de integración de servicios
DOCX
Conceptos
DOCX
Estándares para el Modelado de Procesos de Negocios
PPT
O9ebxml
PPTX
Orquestación o coreografía
PPS
PPS
PPTX
Diseño de aplicaciones
 
PDF
23444719 monografia-de-web-services
PPTX
Colegio particular san juan oracle y php
PPTX
Diferencias entre php y oracle
PDF
Semana 2 HTML y CSS
DOCX
Capitulo 1 - Proyecto integrador 2015-2016
PDF
Lenguajes de diseño
DOCX
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
PPTX
Proyecto
PDF
Servicios WEB
PPT
1 er trabajo-penas1
2 do trabajo-penas
Arquitectura de integración de servicios
Conceptos
Estándares para el Modelado de Procesos de Negocios
O9ebxml
Orquestación o coreografía
Diseño de aplicaciones
 
23444719 monografia-de-web-services
Colegio particular san juan oracle y php
Diferencias entre php y oracle
Semana 2 HTML y CSS
Capitulo 1 - Proyecto integrador 2015-2016
Lenguajes de diseño
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
Proyecto
Servicios WEB
1 er trabajo-penas1

Más de JXCP.86 (20)

PPTX
Gep Eq03 Proyecto Fispa Presentacion Del Informe
DOCX
Gep2009 Eq03 Report Ede Proyecto Fispa2009
DOCX
Ee2009 Eq3 T13 Running The Project
DOCX
Ee2009 Eq3 T11 Res Cap3 Hallows Planeacion Del Proyecto
PPTX
Gep2009 Eq03 T11 Herramientas De Planeacion
DOCX
Gep2009 Eq3 T5 Anteproyecto
DOCX
Gep2009 Eq3 T7 Sdp Fispa
DOCX
Gep2009 Eq3 T7 Solicitud de propuesta Fispa
DOCX
Sio2009 Eq02 Inv Integracion Empresarial
PPTX
Gep2009 Eq3 Lectura7 Pre Baca Cap1 Conceptos
DOCX
Gep2009 Eq3 T5 Sdp Fispa
DOCX
Gep2009 Eq3 T7 Sdp Fispa
DOCX
Gep2009 Eq3 T5 Anteproyecto
DOCX
tarea 5_anteproyecto_fispa
DOCX
Ensayo Diversidad Cultural_olmos
DOCX
Racismo Y Xenofobia Ensayo Diversidad Cultural Xavier
PDF
Sio2009 Eq2 L11 Trad Cap9 Gold Bernstein
PPTX
Sio2009 Eq2 L11 Prsntacn Cap9 Gold Bernstein
PPTX
Planeació..
PPTX
Gep2009 Eq3 Lectura7 Pre Baca Cap1 Conceptos
Gep Eq03 Proyecto Fispa Presentacion Del Informe
Gep2009 Eq03 Report Ede Proyecto Fispa2009
Ee2009 Eq3 T13 Running The Project
Ee2009 Eq3 T11 Res Cap3 Hallows Planeacion Del Proyecto
Gep2009 Eq03 T11 Herramientas De Planeacion
Gep2009 Eq3 T5 Anteproyecto
Gep2009 Eq3 T7 Sdp Fispa
Gep2009 Eq3 T7 Solicitud de propuesta Fispa
Sio2009 Eq02 Inv Integracion Empresarial
Gep2009 Eq3 Lectura7 Pre Baca Cap1 Conceptos
Gep2009 Eq3 T5 Sdp Fispa
Gep2009 Eq3 T7 Sdp Fispa
Gep2009 Eq3 T5 Anteproyecto
tarea 5_anteproyecto_fispa
Ensayo Diversidad Cultural_olmos
Racismo Y Xenofobia Ensayo Diversidad Cultural Xavier
Sio2009 Eq2 L11 Trad Cap9 Gold Bernstein
Sio2009 Eq2 L11 Prsntacn Cap9 Gold Bernstein
Planeació..
Gep2009 Eq3 Lectura7 Pre Baca Cap1 Conceptos

Último (20)

PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PDF
capacitación de aire acondicionado Bgh r 410
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PDF
Maste clas de estructura metálica y arquitectura
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
MANUAL de recursos humanos para ODOO.pdf
SAP Transportation Management para LSP, TM140 Col18
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Curso de generación de energía mediante sistemas solares
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
capacitación de aire acondicionado Bgh r 410
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
informe_fichas1y2_corregido.docx (2) (1).pdf
Maste clas de estructura metálica y arquitectura
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Influencia-del-uso-de-redes-sociales.pdf
TRABAJO DE TECNOLOGIA.pdf...........................
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Power Point Nicolás Carrasco (disertación Roblox).pptx
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
Propuesta BKP servidores con Acronis1.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
MANUAL de recursos humanos para ODOO.pdf

BPEL_sio2009

  • 1. LENGUAJE DE EJECUCIÓN DE PROCESOS DE NEGOCIO2009UNIVERSIDAD VERACRUZANABusiness Process Execution LanguageSIO_EQUIPO02INTEGRANTES:Cruz Pérez José JavierLeyva González Alejandra BereniceLing Martínez DanielVilla González Roberto DavidCATOGAINTRODUCCIÓNEl Lenguaje de Ejecución de Procesos de Negocio para Servicios Web (BPEL4WS) es un lenguaje basado en XML que describe formalmente los procesos de negocio y protocolos de interacción. BPEL4WS define como se conectan entre sí los servicios Web a fin de realizar una determinada tarea. La especificación BPEL4WS se fundamenta en las especificaciones de servicios Web como XML, SOAP y WSDL, con el objetivo de facilitar el desarrollo de sofisticados escenarios de servicios Web que incluyen transacciones de negocio. BPEL4WS servirá como base para la orquestación de servicios Web mediante la creación de las especificaciones necesarias para describir formalmente procesos de negocio interoperables y protocolos de interacción entre ellos.Business Process Execution LanguageBPEL4WS o Business Process Execution Language for Web Services pretende ser el estándar para la composición de Workflows basados en servicios web y teniendo en cuenta el apoyo que está teniendo de diferentes fabricantes, va por buen camino.IBM ha estado ofreciendo durante los últimos meses una serie de artículos sobre BPEL4WS que nos pueden ayudar a comprender y a iniciarnos en esta tecnología. Business Process Execution Language, (en castellano, Lenguaje de Ejecución de Procesos de Negocio), es un lenguaje estandarizado por OASIS para la composición de servicios web. Está desarrollado a partir de WSDL y XLANG, ambos lenguajes orientados a la descripción de servicios Web. Básicamente, 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.BPEL es un lenguaje de orquestación, no un lenguaje coreográfico. La diferencia mayor entre ambos es el ámbito. Un modelo de orquestación provee un ámbito específicamente enfocado en la vista de un participante en particular (ejemplo: un modelo par-a-par). En cambio, un modelo coreográfico abarca todos los participantes y sus interacciones asociadas, dando una vista global del sistema. Las diferencias entre orquestación y coreografía están basadas en analogías: la orquestación describe un control central del comportamiento como un director en una orquesta, mientras que la coreografía trata sobre el control distribuido del comportamiento donde participantes individuales realizan procesos basados en eventos externos, como en una danza coreográfica donde los bailarines reaccionan a los comportamientos de sus pares.A través de un documento XML BPEL, un analista de negocio es capaz de representar la lógica asociada y los elementos con los que se verá relacionado. Estos elementos serán servicios Web y la lógica el proceso BPEL.Si imaginamos un flujo de negocio determinado, con una entrada A y una salida Z, este se podría componer de muchos procesos internos que se lanzarían dependiendo de valores y respuestas anteriores. BPEL sería el encargado de orquestar todo el proceso ordenando qué proceso ejecutar (servicio Web) y en qué momento.Este lenguaje fue concebido por los grandes de la informática como lo son Oracle, BEA Systems, IBM, SAP y Microsoft entre otros.La constitución de BPEL4WS ha pasado por varios periodos: En Abril de 2003, IBM y Microsoft, junto con BEA, SAP y Siebel enviaron la especificación 1.1 a OASIS para su estandarización en el Web Services BPEL Technical Committee.  Aunque BPEL4WS apareció en versiones 1.0 y 1.1, el comité técnico de OASIS votó el 14 de Septiembre de 2004 la especificación 2.0 bajo el nombre de WS-BPEL. Este cambio en nombre y versión refleja las significativas (y en muchos casos  incompatibles) diferencias que existen entre BPEL4WS 1.1 y WS-BPEL 2.0. En general, se asume que cuando se habla de BPEL no se tiene en cuenta la versión, y cuando se indica una versión ser referencia a una u otra especificación.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 negocioEl enfoque sobre procesos de negocios modernos más el conjunto de conocimientos 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\" (posibilita la ejecución de comandos en orden) y \" flow\" (posibilita la ejecución de comandos en paralelo).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.La representación de BPEL puede hacerse con cualquier herramienta que soporte este lenguaje como puede ser ActiveBPEL o ODE (actualmente como proyecto Incubator en la Apache Foundation). Por el momento, no existe notación gráfica para WS-BPEL, y el comité técnico de OASIS decidió dejarlo fuera del alcance. Algunos vendedores han creado sus propias notaciones, las cuales se benefician de que la mayoría de las construcciones en BPEL están estructuradas en bloques, lo que facilita que se pueda representar de manera directa y visualmente en lo que se denomina como estructuro-gramas.   Otras empresas han propuesto usar un lenguaje para la modelización de procesos radicalmente diferente llamado Business Process Modeling Notation (BPMN), que sirve para captura las descripciones de los procesos BPEL  en un entorno gráfico de usuario, para lo que se utiliza un mapeo informal e incompleto de BPMN a BPEL 1.1 que aparece en la especificación de BPMN. No obstante, es un área todavía poco madura y han aparecido algunas herramientas open-source como BPMN2BPEL que incluye una traducción entre ambos lenguajes más elaborada. Sin embargo, el desarrollo de estas herramientas de conversión no está exento de problemas ya que las transformaciones entre ambos lenguajes no es trivial.  Objetivos del diseño de BPELDefinir 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.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.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.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.Proveer funciones de manipulación simple de datos, requeridas para definir datos de procesos y flujos de control.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.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.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.Usar servicios Web como modelo para la descomposición y ensamblaje de procesos.Construir sobre estándares de servicios Web (aprobados y propuestos) tanto como sea posible, de manera modular y extensible.Estructura de un Proceso de Negocio con BPEL La estructura básica que se utiliza para modelar un proceso de negocio es la siguiente:                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Los atributos de que definen a la etiqueta “process” son los siguientes: queryLanguage: Este atributo especifica el lenguaje de consulta XML usado para la selección de los nodos cuando asignamos, realizamos la definición de una propiedad o cualquier otro uso. El valor por defecto para este atributo es XPath 1.0 representado por la URI de la especificación XPath 1.0 siguiente: http://www.w3.org/TR/1999/REC-xpath-19991116.expressionLanguage: Este atributo especifica el lenguaje de expresión usado en el proceso. Por defecto el valor de este atributo es XPath 1.0, representado por la URI de la especificación XPath 1.0 anteriormente indicada.  suppressJoinFailure: Este atributo determina cuando el fallo de tipo “joinFailure” debe ser eliminado para todas las actividades del proceso.. El efecto de este atributo al nivel del proceso puede ser sobrescrito por una actividad usando un valor diferente para el atributo. El valor por defecto para este atributo es “no”.  enableInstanceCompensation: Este atributo determina cuando la instancia de un proceso como un todo puede ser compensado por una plataforma específica. El valor por defecto de este atributo es “no”.  abstractProcess: Este atributo especifica cuando un proceso está siendo definido como abstracto en vez de ejecutable. El valor por defecto de este atributo es “no”.   La expresión representada por la palabra \" activity\" puede ser cualquiera de las siguientes:Etiqueta Se utiliza para recibir un mensaje de un determinado tipo. La sintaxis de esta etiqueta es la siguiente:                                                    Etiqueta  Se utiliza para permitir a un proceso de negocio enviar un mensaje de respuesta a un mensaje recibido con la etiqueta . La combinación de y forma una operación petición-respuesta en el WSDL portType del proceso. La sintaxis completa de esta etiqueta es la siguiente:                                       Etiqueta Sirve para permitir al proceso de negocio invocar operaciones petición-respuesta unidireccional ofrecida por un portType de un WSDL. La sintaxis de la etiqueta es la siguiente:                                                                                                             Etiqueta Esta etiqueta se utiliza para permitir la actualización de los valores de una variable con nuevos datos. Cada etiqueta puede contener cualquier número de elementos elementales de asignación, La sintaxis de la etiqueta es la siguiente:          from-spec to-spec  Etiqueta Esta etiqueta se utiliza cuando queremos generar un error (excepción) desde dentro del proceso de negocio. La sintaxis es la siguiente:      Etiqueta Mediante podemos forzar una espera del proceso de negocio durante un periodo de tiempo determinado. Tiene la siguiente sintaxis:    wait (for=\" duration-expr\" |          until=\" deadline-expr\" )>  Etiqueta Sirve cuando queremos introducir dentro de un proceso de negocio una instrucción vacía y que no presenta funcionalidad. Suele ser útil para realizar labores de sincronización entre actividades. La etiqueta tiene la siguiente sintaxis:  Etiqueta Mediante la etiqueta podemos definir una colección de actividades que tienen que realizarse de manera secuencial (en orden léxico). La sintaxis es:     Etiqueta Con podemos crear ramas de bifurcación, de manera que de todas las definidas indiquemos cuál de ellas queremos seguir. La sintaxis en este caso es:                                        Etiqueta Mediante podemos indicar que una actividad debe de repetirse mientras cierto criterio sea cierto. La sintaxis de la etiqueta es la siguiente:    Etiqueta permite bloquear y esperar a la llegada de un determinado mensaje o a que salte una alarma de tiempo. Cuando uno de estas dos circunstancias ocurren la actividad asociada es ejecutada. La sintaxis completa de la etiqueta es:                                                                                                                      Etiqueta Con esta etiqueta podemos indicar una o más actividades que tienen que ser realizadas de manera concurrente. Dentro de un se puede utilizar la etiqueta que permite introducir dentro de las actividades concurrentes estructuras de control. La sintaxis en este caso es:                           Etiqueta La etiqueta es útil cuando queremos definir una actividad enlazada con sus propias variables, manipuladores de error y manipuladores de compensación. La sintaxis que sigue esta etiqueta es la siguiente:                                             Bibliografíahttp://www.javahispano.org/contenidos/es/quiero_saber_todo_sobre_bpel4ws/http://www.microsoft.com/spain/interop/ip/stdlicprog.mspxhttp://www.lawebsemantica.com/contents/webSemantica/procesos/bpel1.html