6 [Sola lettura]

13
1 WebMGS 2010 A Spatial Decision Service for BPEL Andreas Donaubauer 1 , Florian Straub 2 1 ETH Zürich, Institute of Geodesy and Photogrammetry, GIS Group 2 TU München, Institute of Geodesy, GIS and Land Management, GIS Group 26 August 2010

Transcript of 6 [Sola lettura]

1

WebMGS 2010

A Spatial Decision Service for BPEL

Andreas Donaubauer1, Florian Straub2

1 ETH Zürich, Institute of Geodesy and Photogrammetry, GIS Group2 TU München, Institute of Geodesy, GIS and Land Management, GIS Group

26 August 2010

2

The Business Process:

Check if real estate to be insured against natural hazards is situated in a natural hazard prone area, e.g. a floodplain � decide on insurance rate� Generate insurance policy automatically

A Insurance Company Use Case

The System Architecture:

•SOA

•Service Orchestration usingthe Business Process ExecutionLanguage (BPEL)

3

Business Process Execution Language (BPEL)

• BPEL = short for Web Services Business Process Execution Language (OASIS WS-BPEL 2.0)

• XML language for describing and executing business processes in a SOA

• Each BPEL process itself is a Web Service

• BPEL processes are executed using a BPEL-Engine which invokes Web Services

W3CWeb Service A

W3CWeb Service B

W3CWeb Service Z

BPEL process description

Client

BPEL engine

4

A Spatial Decision Gateway for BPEL - Overview

BPEL Activities

Workflow Control

«Decision Gateway»

«Spatial Decision Gateway»

Data Manipulation

Error Handling

e.g. invoke Web Service B <if>result of Web Service A is greater than

100

e.g. invoke Web Service B <if>result of Web Service A is greater than

100

e.g. invoke Web Service B if result of Web Service A is topologically inside polygon X

e.g. invoke Web Service B if result of Web Service A is topologically inside polygon X

The Research Question:

What is the best approach to integrate the concept “Spatial Decision Gateway”into BPEL?

5

Approach 1: Spatial Decision Gateway as New Activity Type

•Pros:

− Fits well into BPEL syntax

− Easy to achieve

•Cons:

− New activities unknown to current BPEL engines and modelling tools

− Requires integration of spatial processing functionality into BPEL engine

• WS-BPEL 2.0 contains extension mechanism

• New activity types could be defined for branching workflows based on spatial conditions

• Analogy with <if> activity for branching workflows based on non-spatial conditions

• Spatial Comparison Operators defined by OGC Filter Encoding could be used as part of the <condition>

6

Approach 2: Spatial Decision Gateway as Sub-Processes

• Pros:

− Very flexible

• Cons:

− Concept not part of BPEL 2.0 standard

− Concept unknown to current BPEL-Engines

• White paper by IBM and SAP defines BPEL-extension-mechanism called “Sub-Process”

• Sub-Process = code fragment which can be reused inside a process or in other processes

• Spatial comparison operators could be implemented as individual Sub-Processes

7

Approach 3: Spatial Decision Gateway as Web Service

• Spatial Operations encapsulated by Web Service

� “Spatial Decision Service”

• Each Spatial Operation represented by WSDL-operation

• Spatial Operation could be integrated in BPEL process using BPELactivity <invoke>

• Spatial Operation returns boolean expression which can then be evaluated in standard BPEL <condition> tag using XPath

• Pros:

− Interoperability with existing tools

− Depending on design of Spatial Decision Service it is not even required to handle spatial data inside the BPEL process � lower complexity, higher performance

• Cons:

− Syntax and Semantics of “Spatial Decision Service” need to be defined� see concepts as follows

8

Concepts for a Spatial Decision Service for BPEL

Concept 1: WFS based

Concept 2: WPS based

9

Concept 1: WFS-based Spatial Decision Service

BPEL engine

W3C Web Service (non-geospatial)

W3C Web Service (non-geospatial)

W3C Web Service (non-geospatial)

Adapter Service

W3C Web Service (non-geospatial)

OGC WFS(Spatial Decision

Service)

WSDL description

WSDL description

• Pros:

− Geospatial Data available within the BPEL process

− No dedicated processing service needed

• Cons:

− Complexity

− Limited to WFS filtercapabilities

10

Concept 2: WPS-basedSpatial Decision Service BPEL engine

W3C Web Service (non-geospatial)

W3C Web Service (non-geospatial)

Spatial Decision Service

(OGC WPS)

Adapter Service

WSDL description

WSDL description

W3C Web Service (non-geospatial)

OGC WFS / WCS…

• Pros:

− Low Complexity

• Cons:

− Explicit SpatialDecision Serviceneeded in addition to WFS

− Decision Service might beapplication-specific

11

Insurance Use Case with WFS-based Spatial Decision Service

BPEL engine

W3C Web Service from SAP

Adapter Service

WSDL description

WSDL description

Adapter Service

WSDL description

WFS (geocoded addresses)

WFS-based Spatial Decision Service (flood hazard zones)

<receive>insurance policy ID

<receive>insurance policy ID

<invoke>insurance policy ID� Building Address

<invoke>insurance policy ID� Building Address

<invoke>Building Address� Coordinates

<invoke>Building Address� Coordinates

<invoke>Coordinates �WFS Feature Collection

<invoke>Coordinates �WFS Feature Collection

<if><condition>FeatureCollection is empty<invoke> …

<else><invoke> …

<reply>…

<if><condition>FeatureCollection is empty<invoke> …

<else><invoke> …

<reply>…

12

Conclusions

• BPEL lacks “Spatial Decision Gateways” = spatial operators for branching business process workflows

• Three approaches to integrate the concept of Spatial Decision Gateways into BPEL discussed

• Approach “Spatial Decision Service” is most promising

• Standards-based concepts for a Spatial Decision Service Interface:

−WFS-based

−WPS-based

• Not trivial to integrate OWS into BPEL because of

−generic nature

−vague WSDL and SOAP support

13

BPEL Process fragment for the Insurance Use Case –WFS-based Spatial Decision Service<sequence>

<receive/><!-- input from client --><assign/><!-- define inputs for service invocation --><invoke/><!-- get address of building from SAP service --><assign/><!-- define inputs for service invocation --><invoke/><!-- get co-ordinates from address geocoding service --><scope>

<sequence><assign/><!-- define inputs for service invocation --><invoke/><!-- invoke Spatial Decision Service (WFS for flood hazard zones) --><if><condition/>

<!--Spatial Decision Service returns empty result--><assign/><!-- assign value to output variable of the process --> <else><!-- Spatial Decision Service returns flood hazard zone

features --><assign/><!--assign value to output variable of the process -->

</else></if></sequence>

</scope><reply/><!-- return output variable to client -->

</sequence>