BPEL

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 20. listopadu 2019; ověření vyžaduje 1 úpravu .

BPEL ( anglicky  Business Process Execution Language ) je jazyk založený na XML pro formální popis obchodních procesů a protokolů pro jejich vzájemnou interakci. BPEL rozšiřuje model interakce webových služeb o podporu transakcí.

Obecně platí, že konfigurace projektu BPEL vypadá takto:

Hlavní soubory projektu BPEL:

Historie

IBM a Microsoft definovaly dva velmi podobné jazyky , WSFL a XLang . Vzestup BPML, úspěch BPMI.org a otevřené hnutí BPMS donutily společnosti Intalio Inc., IBM a Microsoft rozhodnout se sloučit tyto jazyky do nového jazyka, BPEL4WS. V dubnu 2003 společnosti BEA Systems , IBM, Microsoft, SAP a Siebel Systems předložily BPEL4WS 1.1 OASIS ke standardizaci technickým výborem Web Services BPEL . Přestože se BPEL4WS objevil okamžitě ve verzích 1.0 a 1.1, technická komise WS-BPEL OASIS odhlasovala 14. září 2004 název specifikace WS-BPEL 2.0. Tato změna byla provedena za účelem sladění BPEL s dalšími standardy webových služeb, které podle konvence začínají WS-.

V červnu 2007 zveřejnily Active Endpoints, Adobe, BEA, IBM, Oracle a SAP specifikace BPEL4People a WS-HumanTask, které popisovaly, jak lze v BPEL implementovat lidskou interakci.

O budoucím směřování vývoje BPEL se vedou vášnivé diskuse. Potřeba přidat do BPEL sémantiku ve formě WS-HumanTask a tak dále jen zdůrazňuje skutečnost, že BPEL nikdy nebyl úplný jazyk.

Příklad BPEL

Hypotetický příklad. Sekvence mathProcess BPEL vezme proměnnou $numIn, odmocní ji a vrátí výsledek v proměnné $numOut.

< název procesu= "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> < název proměnné= "numIn" messageType= "math:unsignedInt" /> < název proměnné= "numOut" messageType= "math:unsignedInt" /> <název proměnné = "num" type= "xsd:unsignedInt" /> </variables> <sekvence > <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>

Literatura

  • Pochopení SOA s webovými službami. Autor Eric Newcomer , Greg Lomow . Addison Wesley Professional 2004
  • SOA pro obchodního vývojáře: koncepty, BPEL a SCA. Ben Margolisand, Joseph Sharpe

Viz také

Normy