BPEL

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 20 november 2019; verifiering kräver 1 redigering .

BPEL ( Engelska  Business Process Execution Language ) är ett XML -baserat språk för en formell beskrivning av affärsprocesser och protokoll för deras interaktion med varandra. BPEL utökar interaktionsmodellen för webbtjänster till att omfatta stöd för transaktioner.

I allmänhet ser konfigurationen av ett BPEL-projekt ut så här:

Huvudsakliga BPEL-projektfiler:

Historik

IBM och Microsoft har definierat två ganska lika språk , WSFL respektive Xlang . Uppkomsten av BPML, framgången för BPMI.org och den öppna BPMS-rörelsen tvingade Intalio Inc., IBM och Microsoft att besluta sig för att slå samman dessa språk till ett nytt språk, BPEL4WS. I april 2003 skickade BEA Systems , IBM, Microsoft, SAP och Siebel Systems BPEL4WS 1.1 till OASIS för standardisering av Web Services BPEL Technical Committee . Även om BPEL4WS dök upp omedelbart i version 1.0 och 1.1, röstade WS-BPEL OASIS tekniska kommitté den 14 september 2004 för att namnge specifikationen WS-BPEL 2.0. Denna ändring gjordes för att anpassa BPEL till andra webbtjänststandarder som enligt konvention börjar med WS-.

I juni 2007 publicerade Active Endpoints, Adobe, BEA, IBM, Oracle och SAP specifikationerna för BPEL4People och WS-HumanTask, som beskrev hur mänsklig interaktion kunde implementeras i BPEL.

Det pågår en het diskussion om den framtida riktningen för BPEL-utvecklingen. Behovet av att lägga till semantik till BPEL i form av WS-HumanTask och så vidare belyser bara det faktum att BPEL aldrig har varit ett komplett språk.

BPEL Exempel

Hypotetiskt exempel. MathProcess BPEL-sekvensen tar variabeln $numIn, kvadrerar den och returnerar resultatet i variabeln $numOut.

<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" /> <variabelnamn = "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

  • Förstå SOA med webbtjänster. Av Eric Newcomer , Greg Lomow . Addison Wesley Professional 2004
  • SOA för affärsutvecklaren: Concepts, BPEL och SCA. Ben Margolisand, Joseph Sharpe

Se även

Standarder