Querying Business Processes with BPQL Catriel Beeri Hebrew
Querying Business Processes with BP-QL Catriel Beeri Hebrew University Anat Eyal, Simon Kamenkovich, Tova Milo Tel Aviv University 1
Business Processes n n Complex applications Integrating remote Web Services Standards facilitate development n XML data exchange n BPEL specifications 2
Service Specifications <process> <!– Definition and roles of participants --> <partner. Links>. . . </partner. Links> <!- Data/state used within the process --> <variables>. . . </variables> <!- Exception handling --> <fault. Handlers>. . . </fault. Handlers <!- Error recovery – undoing actions --> <compensation. Handlers>. . . <!- Concurrent events --> <event. Handlers>. . . </event. Handlers> <!- Business process flow --> (activities)* </process> 3
Motivation Not just simplifying development… This is a new mine of Information! Interesting questions n n n What kind of credit services are used (in)directly? How can I buy a plane ticket ? Can one get a price quote without giving first credit card info? Design Considerations n n A dedicated language vs. XQuery Visual query similar to specifications (BPEL designer) Query specifications vs. execution flow Distributed query processing 4
Query Language Which operations are provided by the Airline service? Query language extensions (1) n Transitive edge n Zoom-in node n Local/ global 5
Query with Negation Which airline services allow to search without login first? Query language extensions (2) n Negation We can also query the data flow (not just the execution flow) 6
Architecture The problem: n Distribution of specifications n Cycles in the service graph n Active XML: XML with embedded calls to Web Services state transition BP-QL Query Editor state Result Viewer transition BPQL 2 XOQL Post Processor read update AXML peer S 2 SOAP Evaluator consults service descriptions AXML document store zoom-in SOAP wrapper AXML peer S 3 SOAP state type=“initial” transition name=“reserve. Trip” query read update name=“search. Trip” state AXML peer S 1 Query processor type=“initial” state type=“join” transition axml: sc service=“get. Operation/ search. Cars” search. Flights” … zoom-out axml: sc 7
- Slides: 7