BPEL

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 20. november 2019; verifikation kræver 1 redigering .

BPEL ( Engelsk  Business Process Execution Language ) er et XML -baseret sprog til en formel beskrivelse af forretningsprocesser og protokoller for deres interaktion med hinanden. BPEL udvider webserviceinteraktionsmodellen til at omfatte support til transaktioner.

Generelt ser konfigurationen af ​​et BPEL-projekt således ud:

Hoved BPEL-projektfiler:

Historie

IBM og Microsoft har defineret to nogenlunde ens sprog, henholdsvis WSFL og Xlang . Fremkomsten af ​​BPML, succesen med BPMI.org og den åbne BPMS-bevægelse tvang Intalio Inc., IBM og Microsoft til at beslutte at fusionere disse sprog til et nyt sprog, BPEL4WS. I april 2003 indsendte BEA Systems , IBM, Microsoft, SAP og Siebel Systems BPEL4WS 1.1 til OASIS til standardisering af Web Services BPEL Technical Committee . Selvom BPEL4WS dukkede op med det samme i version 1.0 og 1.1, stemte WS-BPEL OASIS tekniske udvalg den 14. september 2004 for at navngive specifikationen WS-BPEL 2.0. Denne ændring blev foretaget for at tilpasse BPEL til andre webservicestandarder, der efter konvention starter med WS-.

I juni 2007 offentliggjorde Active Endpoints, Adobe, BEA, IBM, Oracle og SAP BPEL4People- og WS-HumanTask-specifikationerne, som beskrev, hvordan menneskelig interaktion kunne implementeres i BPEL.

Der er en heftig diskussion om den fremtidige retning for BPEL-udvikling. Behovet for at tilføje semantik til BPEL i form af WS-HumanTask og så videre fremhæver kun det faktum, at BPEL aldrig har været et komplet sprog.

BPEL Eksempel

Hypotetisk eksempel. MathProcess BPEL-sekvensen tager $numIn-variablen, kvadrerer den og returnerer resultatet i $numOut-variablen.

<process name= "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> <sekvens > <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> </assign> <reply operation= "secondDegree" partnerLink= "Math" portType= "math:mathPort" variable= "numOut" /> </sequence> </process>

Litteratur

  • Forståelse af SOA med webtjenester. Af Eric Newcomer , Greg Lomow . Addison Wesley Professional 2004
  • SOA for forretningsudvikleren: Concepts, BPEL og SCA. Ben Margolisand, Joseph Sharpe

Se også

Standarder