Figure 2 shows the result of step 2: the Global Workflow is specified as a UML 2.0
activity diagram. It describes the collaboration of the three roles in terms of the
interactions in which the participating parties engage. Model information is confined
to "observable behaviour", corresponding to the message flow between the
participants, the interaction logic and the control flow between the elementary actions.
The graphical representation of the Global Workflow as a UML 2.0 activity diagram
allows formalizing the process description in a very intuitive way.
3.3.2 The Transformation Process
The first part of the translation process generates those parts of the Local Workflow
Model which represent the interfaces to the GWfM (e.g., the Interaction-Activities
receiveAnnualStatement and SendProcessedAS) for every partner-role (Fig. 3a).
Those partners who are assigned a specific role in the GWfM take the BPEL code
stubs, import them in the BPEL design tool of their choice (e.g., [28]) and
complement service calls to back-end application. The models can then be translated
into BPEL and WSDL files for the workflow engine with existing tools (e.g., [30]).
<process name="Sectino_TaxAdvisor_LWfM">
<partnerLinks>
<partnerLink name="MS_Provider" partnerLinkType="Municipality_LWfM"
partnerRole="Municipality_LWfM"/>
<partnerLink name="TS_Provider" partnerLinkType="TaxAdvisor_LWfM"
partnerRole="TaxAdvisor_LWfMRequester"
myRole="TaxAdvisor_LWfMProvider"/>
</partnerLinks>
<variables>
<variable name="input" messageType="AnnualStatement"/>
<variable name="output" messageType="Confirmation"/>
<variable name="input_MU" messageType="ProcessedAS"/>
<variable name="output_MU" messageType="Notification"/>
</variables>
<sequence name="main">
<receive name="receiveInput" partnerLink="TS_Provider"
portType="TaxAdvisor_LWfM"
operation="sendAnnualStatement" variable="input" createInstance="yes"/>
<invoke // !!! INSERT CALLS TO LOCAL SERVICES !!! //>
<invoke partnerLink="MS_Provider" portType="Municipality_LWfM"
operation="sendProcessedAS" inputVariable="input_MU"
outputVariable="output_MU" name="sendProcessedAS"/>
<invoke // !!! INSERT CALLS TO LOCAL SERVICES !!! //>
<invoke name="callbackClient" partnerLink="TS_Provider"
portType="TaxAdvisor_LWfMCallback"
operation="onResult" inputVariable="output"/>
</sequence>
</process>
PolicySet {(target=<AnnualStatement>)
PolicySet { target=<outbound>
PolicySet {(target=<processedAS>)
Policy (Aspect = “Confidentiality”) {
Rule {
Signature-Algorithm = “RSA-SHA1”,
Node1 = “/self/annualIncome”,
Node2 = “/self/clientID”,
Recipient = “Municipality”} }
Policy (Aspect = “Integrity”) {
Rule {
Signature-Algorithm = “RSA-SHA1”,
Node1 = “/self/”,
Recipient = “Municipality”}
}
PolicySet { target=<inbound>
PolicySet {(target=<processedAS>)
Policy (Aspect = “Qualified Sign”) {
Rule {
Signature-Algorithm = “RSA-SHA1”,
Node1 = “/self/”,
Source = “Municipality”
Signatories = 2}
}}}}
(a) (b)
Fig. 3. BPEL File (a) and Security File (b) for Role TaxAdvisor.
Security Components. The second part generates the configuration files for the
security components in the architecture (Fig. 3b). The security requirements in the
constraint box in GWfM (Fig. 2) are translated into an XACML file stored in the
Policy-Repository (7) and loaded into the PCE (5) at runtime in order to determine the
compliance of inbound messages and to identify security mechanisms to be applied to
outbound messages. Figure 4b) shows how the security requirements are translated
into a configuration file for the role
TaxAdvisor. Figure 4 shows the dependency
between the security requirements in the GWfM and the Document-Model of the
Interface View.
54