BPEL

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 20 de noviembre de 2019; la verificación requiere 1 edición .

BPEL ( Lenguaje de ejecución de procesos comerciales en inglés  ) es un lenguaje basado en XML para una descripción formal de los procesos y protocolos comerciales para su interacción entre ellos. BPEL amplía el modelo de interacción de servicios web para incluir soporte para transacciones.

En general, la configuración de un proyecto BPEL se ve así:

Principales archivos de proyecto BPEL:

Historia

IBM y Microsoft han definido dos lenguajes bastante similares, WSFL y Xlang , respectivamente. El auge de BPML, el éxito de BPMI.org y el movimiento BPMS abierto obligaron a Intalio Inc., IBM y Microsoft a decidir fusionar estos lenguajes en un nuevo lenguaje, BPEL4WS. En abril de 2003, BEA Systems , IBM, Microsoft, SAP y Siebel Systems enviaron BPEL4WS 1.1 a OASIS para su estandarización por parte del Comité Técnico de Servicios Web BPEL . Aunque BPEL4WS apareció inmediatamente en las versiones 1.0 y 1.1, el comité técnico de WS-BPEL OASIS votó el 14 de septiembre de 2004 para nombrar la especificación WS-BPEL 2.0. Este cambio se realizó para alinear BPEL con otros estándares de servicios web que, por convención, comienzan con WS-.

En junio de 2007, Active Endpoints, Adobe, BEA, IBM, Oracle y SAP publicaron las especificaciones BPEL4People y WS-HumanTask, que describen cómo se puede implementar la interacción humana en BPEL.

Hay una acalorada discusión sobre la dirección futura del desarrollo de BPEL. La necesidad de agregar semántica a BPEL en forma de WS-HumanTask y demás solo resalta el hecho de que BPEL nunca ha sido un lenguaje completo.

Ejemplo BPEL

Ejemplo hipotético. La secuencia BPEL de mathProcess toma la variable $numIn, la eleva al cuadrado y devuelve el resultado en la variable $numOut.

< nombre del proceso= "mathProcess" targetNamespace= "http://example.com/ws-bp/math" xmlns= "http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:math = "http://manufacturing.org/wsdl/math" > <partnerLinks> <partnerLink name= "Math" partnerLinkType= "math:exampleMath" myRole= "mathService" /> </partnerLinks> <variables> <variable name= "numIn" messageType= "math:unsignedInt" /> <variable name= "numOut" messageType= "math:unsignedInt" /> <variable name= "num" type= "xsd:unsignedInt" /> </variables> <sequence > <receive partnerLink= "Math" portType= "math:mathPort" operation= "secondDegree" variable= "numIn" createInstance= "yes" /> <assign name= "LoopCounterIncrement" > <copy> <from> $numIn.request </from> <to variable= "num" /> </copy> <copy> <from> $num * $num </from> <to variable= "numOut" part= "response" /> </copy> </asignación> <operación de respuesta = "segundoDegree" partnerLink= "Math" portType= "math:mathPort" variable= "numOut" /> </sequence> </process>

Literatura

  • Entendiendo SOA con Servicios Web. Por Eric Newcomer , Greg Lomow . Addison Wesley Profesional 2004
  • SOA para el Desarrollador de Negocios: Conceptos, BPEL y SCA. Ben Margolisand, Joseph Sharpe

Véase también

Estándares