Compliance Modeling. Formal Descriptors and Tools. , Falko Kötter 2. Report 2014/02 March 28, 2014

Similar documents
Winery A Modeling Tool for TOSCA-based Cloud Applications

ASPIRE Programmable Language and Engine

<xs:restriction base="xs:string">

<xs:complextype name="trescdokumentu_typ">

Automatic Topology Completion of TOSCA-based Cloud Applications

On-demand Provisioning of Workflow Middleware and Services An Overview

COM_2006_023_02.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" elementformdefault="qualified">

Lego4TOSCA: Composable Building Blocks for Cloud Applications

Schema XSD opisująca typy dokumentów obsługiwane w Systemie invooclip

Design Support for Performance-aware Cloud Application (Re-)Distribution

Policy4TOSCA: A Policy-Aware Cloud Service Provisioning Approach to Enable Secure Cloud Computing

Portable Cloud Services Using TOSCA

DRAFT. Standard Definition. Extensible Event Stream. Christian W. Günther Fluxicon Process Laboratories

TOSCA: Portable Automated Deployment and Management of Cloud Applications

No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.

CMotion: A Framework for Migration of Applications into and between Clouds

+ <xs:element name="productsubtype" type="xs:string" minoccurs="0"/>

DocuSign Connect Guide

Appendix 1 Technical Requirements

APE 1 - The Human Business Process Modeller

Design and Implementation of a Feedback Systems Web Laboratory Prototype

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

A Prototype for View-based Monitoring of BPEL Processes

Service Description: NIH GovTrip - NBS Web Service

Extension of a SCA Editor and Deployment-Strategies for Software as a Service Applications

Archivio Sp. z o.o. Schema XSD opisująca typy dokumentów obsługiwane w Systemie Invo24

Integrating Configuration Management with Model-Driven Cloud Management Based on TOSCA

[MS-FSDAP]: Forms Services Design and Activation Web Service Protocol

HP OO 10.X - SiteScope Monitoring Templates

Gplus Adapter 8.0. for Siebel CRM. Developer s Guide

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Web Content Management System based on XML Native Database

Realizing Enterprise Integration Patterns in WebSphere

ActiveVOS Server Architecture. March 2009

How To Create A Cloud Distribution Of An Application

D4.1.2 Cloud-based Data Storage (Prototype II)

Interaction Choreography Models in BPEL: Choreographies on the Enterprise Service Bus

[MS-DVRD]: Device Registration Discovery Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Data Integration Hub for a Hybrid Paper Search

Leveraging Model-Driven Monitoring for Event-Driven Business Process Control

State Propagation of Process in Microsoft PowerPoint 2

SLA Business Management Based on Key Performance Indicators

Measuring Performance Metrics of WS-BPEL Service Compositions

A Collection of Patterns for Cloud Types, Cloud Service Models, and Cloud-based Application Architectures

An Empirical Study on XML Schema Idiosyncrasies in Big Data Processing

User manual for e-line DNB: the XML import file. User manual for e-line DNB: the XML import file

EFSOC Framework Overview and Infrastructure Services

An Architectural Pattern Language of Cloud-based Applications

Towards Management of SLA-Aware Business Processes Based on Key Performance Indicators

Integrated Cloud Application Provisioning: Script-centric Management Technologies

Bridging the Browser and the Server

Chapter 4. Sharing Data through Web Services

Introduction to Service Oriented Architectures (SOA)

Getting Started Guide Testable Architecture

Towards Modeling and Transformation of Security Requirements for Service-oriented Architectures

Filen ex_e.xml. Her kommer koderne Det der står skrevet med fed er ændret af grp <?xml version="1.0"?>

The webmethods ESB. The Foundation of your SOA. Jean-Michel Ghyoot, Principal Solution Architect, March 28, 2013

Six Strategies for Building High Performance SOA Applications

Authentication Context for the OASIS Security Assertion Markup Language (SAML) V2.0

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

Methods and tools for data and software integration Enterprise Service Bus

EasySOA: Service Design & Monitoring

An Oracle White Paper February Oracle Data Integrator 12c Architecture Overview

Business Process Execution Language for Web Services

An Integrated Approach to Process-Driven Business Process Performance Monitoring and Analysis for Real-Time Enterprises

Service Governance and Virtualization For SOA

Combining Declarative and Imperative Cloud Application Provisioning based on TOSCA

Oracle SOA Suite Then and Now:

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

QoS Integration in Web Services

Building the European Biodiversity. Observation Network (EU BON)

24 BETTER SOFTWARE MARCH

Session Initiation Protocol (SIP) Registration Extensions

How To Build A Financial Messaging And Enterprise Service Bus (Esb)

TOSCA Interoperability Demonstration

PROGRESS Portal Access Whitepaper

State Propagation for Business Process Monitoring on Different Levels of Abstraction

Oracle SOA Reference Architecture

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

A standards-based approach to application integration

Tool Support for Model Checking of Web application designs *

Data-Aware Service Choreographies through Transparent Data Exchange

SOA GOVERNANCE MODEL

mframe Software Development Platform KEY FEATURES

Reusing cloud-based services with TOSCA

ONVIF TM. ONVIF Specification Version 2.4 Release Notes. ONVIF

Modernize your NonStop COBOL Applications with XML Thunder September 29, 2009 Mike Bonham, TIC Software John Russell, Canam Software

keyon Luna SA Monitor Service Administration Guide 1 P a g e Version Autor Date Comment

The Need for a Choreography-aware Service Bus

Security for industrial automation and control systems: Patch compatibility information

APIs vs. SOA Integrations with SX without the ION Investment

An Extensible Application Topology Definition and Annotation Framework

The Direct Project. Implementation Guide for Direct Project Trust Bundle Distribution. Version March 2013

Requirements Specifications for: The Management Action Record System (MARS) for the African Development Bank

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

HP Business Service Management

<!--=========================================--> <!--=========================================-->

Advanced PDF workflows with ColdFusion

CA ERwin Data Modeler

1 What is Cloud Computing? Cloud Infrastructures OpenStack Amazon EC CAMF Cloud Application Management

Transcription:

Universität Stuttgart Fakultät Informatik, Elektrotechnik und Informationstechnik Compliance Modeling Formal Descriptors and Tools Christoph Fehling 1, Falko Kötter 2, Frank Leymann 1 Report 2014/02 March 28, 2014 1 Institute of Architecture of Application Systems University of Stuttgart Universitätsstr. 38 70569 Stuttgart Germany 2 Institut für Arbeitswissenschaft und Technologiemanagement IAT University of Stuttgart Nobelstr. 12, 70569 Stuttgart 70569 Stuttgart Germany CR: D.2.1; D.2.12; F.3.2; H.4.1

Content 1 Introduction... 2 2 Technology Overview... 3 2.1 Oryx and Model Checkers for BPMN... 3 2.2 TOSCA... 4 2.3 ProGoalML... 4 2.4 Variability Descriptors... 5 3 Compliance Descriptor... 5 3.1 XML Schema of the Compliance Descriptor... 6 3.2 Compliance Expression Grammar... 9 3.3 Java Implementation... 12 4 Example... 13 4.1 Compliance Requirements and Rules... 13 4.2 Exemplary Compliance Descriptor... 14 5 Tools... 16 5.1 Modeling Compliance Rules for BPMN... 16 5.2 Modeling Compliance Rules in TOSCA... 18 5.3 Modeling Compliance Rules in ProGoalML... 19 6 References... 21 Page 1

1 Introduction Compliance, i.e., respecting laws and regulations affects multiple aspects of IT applications. We consider applications centered on a business process model described in BPMN [1]. The business process or multiples thereof supported by the application are described in a formal model, which is then executed by a process engine. Additional functionality is provided by application components, often realized as Web services, which are enacted by the process. In addition to the process engine, these components also rely on a hosting infrastructure, which may be constituted by additional middleware. This middleware can, for example, subsume application servers, such as Apache Tomcat [2] or JBoss [3], or database management systems, such as MySQL [4] or Oracle 11g [5]. The server infrastructure is then provided in data centers or cloud environments. All these artifacts make up the application stack that is supporting companies business processes. Laws and regulations may result in manifold requirements regarding this application stack. We differentiate the following layers that may be affected: Modeling: laws and regulations may require a certain ordering of activities in a business process or a certain timeliness of activities. For example, an inquiry of customer data may have to be followed directly by an activity asking the customer how this data may be used for marketing purposes. Deployment: laws and regulations often impact how an application s runtime environment is hosted. For example, data may have to be stored in certain countries or within close proximity of application users. Configured passwords have to ensure a certain strength etc. Runtime: when the application is reconfigured during runtime, laws and regulations have to be respected. Some information required to ensure compliance may also only be available during runtime. For example, a regulation may require that an order status has to be sent to a customer within 30 minutes after the order has been placed. This runtime information often has to be reported as laws and regulations demand that companies execute internal and external audits to ensure compliance. Laws and regulations are not described with the respective layers of an application they affect. Laws, such as the GDV Code of Conduct [6] and the German Federal Data Protection Act [7], therefore, may impact multiple aspects of the business process model, the deployment of the application supporting this model, and the runtime behavior of the application. Management tasks executed by companies employees may also be affected. Due to this manifold impact of laws and regulations, ensuring compliance involves many different technologies and tools. In this report, we present a tool chain for this purpose. Section 2 gives an introduction to used technologies. Section 3 covers an extension in the form of a generic compliance descriptor. This data model serves as glue between laws and regulation documents and multiple tools required to ensure them. As part of this descriptor, we cover compliance rules as a machine readable specification of requirements deducted from laws and regulations. These compliance rules may rely on arbitrary expression languages and data formats, for example, WS Policy [8] to describe hosting Page 2

locations of data centers or ProGoalML [9] to specify required monitoring information. Expressions are referenced by the compliance descriptor which is serving as a single integration point while allowing the use of specific languages to describe versatile requirements. As the human readable law and regulative documents are not written by IT experts or with their IT impact in mind, we argue that this enables to connect laws and regulations with their machine readable requirements while leaving the IT expert the freedom to use a fitting expression language. To express relationships between different compliance rules and to evaluate compliance on the level of the compliance descriptor, we expect each of the used languages for compliance rules to be evaluated to either true or false. This would respect that the compliance rule is fulfilled or violated by the application, respectively. To describe the relationships between multiple compliance rules, a compliance expression is introduced for which we give a formal grammar. In Section 4 we give a real-life example of a business process and show how the compliance descriptor can be used to model its compliance requirements. Section 5 gives an overview of the tools used for compliance modeling. We cover modeling tools on the level of BPMN processes, for describing the application stack supporting these processes, and for monitoring an application. Therefore, these tools relate to the phases of the application: modeling of the business process, deployment of the application stack, and monitoring the runtime of the application. 2 Technology Overview The following technologies have been used for compliance modeling. Oryx [11] has been used as a BPMN editor. It has been extended for specifying compliance rules on the level of business processes. These rules are evaluated using model checkers. The Topology and Orchestration Specification for Cloud Applications (TOSCA) [17] is an industry standard for modeling of application stacks and their management tasks. It has been used for capturing deployment aspects of compliance. ProGoalML [9] has been used to describe monitoring information that has to be captured during runtime as well as the values to be seen in this information in order to be compliant. A variability descriptor [10] was used to describe configuration points of compliance rules in order to enable their reuse in multiple compliance expressions within one compliance descriptor or even their reuse in multiple compliance descriptors. 2.1 Oryx and Model Checkers for BPMN Oryx [11] is a Web-based graphical modeling editor for Business Process Model and Notation (BPMN) [1]. Schleicher [12] extended this tool to support compliance rules expressed in Linear Temporal Logic (LTL) [13]. LTL rules may be specified in their own graphical notation and are then transformed into the Process and Protocol Meta Language [14]. This language forms the input to the SPIN model checker [15] which is integrated into Oryx to validate the LTL rules associated with business processes. Graphical extensions to BPMN to describe the association of compliance rules with certain parts of the business process model have been described in [16]. The approach is to define graphical regions in the process model, so called compliance domains. Each compliance domain has a set of compliance rules associated with it. The corresponding LTL rules Page 3

implementing the compliance rules are then validated with respect to the elements contained in the compliance domains. Section 5.1 gives examples of the compliance rule specification in a graphical format and its integration into Oryx. 2.2 TOSCA The Topology and Orchestration Specification for Cloud Applications (TOSCA) [17] as an industry standard aims at homogenizing how application can be described and managed across different cloud providers. It, therefore, can be considered as a standardized description language for the components of an application as well as management plans associated with it. The application model describes dependencies between components, for example, how they are hosted on each other, where accesses take place, or what kind of data is exchanged. The management plan captures at least how to provision the application (build plan) and how to decommission it (termination plan). Further management plans may be described, for example, to scale the application, handle component failures etc. Due to the standardization, an application once described in TOSCA may be deployed in various hosting environments supporting the standard. To capture non-functional requirements, policies have been introduced to TOSCA models [18] [19] [20]. This enables the specification of hosting locations for certain application components, required password strengths etc. The values specified in these policies are then respected by the build plan and other management plans during the application runtime. For the purpose of compliance management, such TOSCA policies can, therefore, be considered compliance rules that have to be respected during the deployment and runtime of an application. Section 5.2 shows the tooling supporting the modeling of TOSCA policies to be referenced by a compliance descriptor. 2.3 ProGoalML The Process Goal Modeling Language ProGoalML [9] is a language to specify key performance indicators (KPIs) and goals of a business process as well as the measurements necessary to calculate them. It can be used to describe how a process is to be monitored at run-time. ProGoalML offers the following elements: A measuring point is used to measure one or multiple parameters at a process element. Whenever the associated process element is reached during process execution, a measurement is taken, evaluating each parameter of the measuring point. Based on measurements key performance indicators can be calculated from parameters. If parameters from multiple measurements are part of the calculated, these measurements are correlated by a process id, which needs to be measured at the respective measuring points. Aggregated KPIs are calculated among multiple process instances limited by a time or length window (e.g. calculate over last hour or last 50 process instances). Goals can be imposed on parameters, KPIs and aggregated KPIs. A goal is a Boolean function, where true indicates the goals is fulfilled and false indicates the goal is violated. A special kind of goal is a timing goal, which imposes a maximum time between to process elements. To model run-time compliance rules, goals are used to detect violations. Page 4

Based on a ProGoalML model, a model-driven monitoring architecture (apro) can be automatically configured and deployed as a web application [9]. This web application provides monitoring data gathering, monitoring data processing (e.g. calculation of KPIs and goals), monitoring data storage, monitoring data presentation in a dashboard as well as alerting if a goal is violated. Using ProGoalML to model run-time compliance requirements, each compliance rule can be modeled as a goal, either on a KPI if the compliance rule is specific to each instance or on an aggregated KPI if the compliance rule is global. Section 5.3 gives an overview of the tooling to model in ProGoalML. 2.4 Variability Descriptors Variability descriptors have been introduced by Mietzner [10]. As part of the Composite Application Framework (Cafe) [21], this descriptive model captures variability points of software. Such variability points are, for example, user interface languages, hosting locations, used middleware etc. The variability captured in these descriptors is interpreted by Cafe during a user-driven provisioning of applications via a self-service interface. Customers can interactively bind variability points to alternatives meeting their requirements, thus, influencing the provisioning of the application. We use variability descriptors to capture variability of compliance rules. For example, the expression of a compliance rule checking that an activity is executed within a certain amount of time after another activity essentially remains the same even if the amount of time changes. Analogous, the compliance rule remains the same if it shall be verified for two different activities. Using a variability descriptor, the LTL specification may expose these variability points, thus, it can be used in different scopes, i.e., validate different activities and time frames. Furthermore, the complexity of rule adjustments is significantly reduced. Users do not have to rewrite LTL rules to check for similar conditions, thus, the reuse of once defined compliance rules is simplified. Adjustments necessary due to changing laws and regulations can also be handled easier by adjusting the values to which variability points are set. 3 Compliance Descriptor The central document managing compliance for a certain application and the supported business process is the compliance descriptor. It contains the following elements or references them: Legal documents: laws and regulations are captured in XHTML [22]. This enables the referencing to individual paragraphs and sentences in order to connect them with compliance rules. Compliance rules: this is the machine-readable specification of an expression to be verified. Compliance rules are reusable building blocks to check compliance-related conditions and can be configured. For example, there can be reusable rules to check for activity ordering, time elapsed between activities, the human employees handling activities etc. Compliance requirements: each law and regulatory document may result in multiple compliance requirements. These requirements may Page 5

combine multiple compliance rules which are linked using a compliance expression. The remainder of this section covers the XML schema of the compliance descriptor document and the formal grammar of compliance expressions. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 3.1 XML Schema of the Compliance Descriptor <?xml version="1.0" encoding="utf-8" standalone="yes"?> <xs:schema targetnamespace="http://comb.iao.fraunhofer.de" version="1.0" xmlns:tns="http://comb.iao.fraunhofer.de" xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="bindingstrategy" type="tns:bindingstrategy"/> <xs:element name="compliancedescriptor" type="tns:compliancedescriptor"/> <xs:element name="compliancerequirement" type="tns:compliancerequirement"/> <xs:element name="compliancerule" type="tns:compliancerule"/> <xs:element name="entity" type="tns:entity"/> <xs:element name="law" type="tns:law"/> <xs:element name="laws" type="tns:lawsmapelement"/> <xs:element name="lawurl" type="tns:lawurl"/> <xs:element name="paragraphreference" type="tns:paragraphreference"/> <xs:element name="requirements" type="tns:requirementsmapelement"/> <xs:element name="ruleexpression" type="tns:ruleexpression"/> <xs:element name="rules" type="tns:rulesmapelement"/> <xs:element name="stringexpression" type="tns:stringruleexpression"/> <xs:element name="urlexpression" type="tns:urlruleexpression"/> <xs:element name="variabilitybinding" type="tns:variabilitybinding"/> <xs:complextype name="urlruleexpression"> <xs:complexcontent> <xs:extension base="tns:ruleexpression"> <xs:element minoccurs="0" name="referencedexpression" type="xs:anyuri"/> </xs:extension> </xs:complexcontent> <xs:complextype abstract="true" name="ruleexpression"> <xs:sequence/> <xs:complextype name="lawurl"> <xs:element minoccurs="0" name="law" type="xs:string"/> <xs:element minoccurs="0" name="paragraphreference" type="tns:paragraphreference"/> <xs:complextype name="paragraphreference"> <xs:element minoccurs="0" name="xpath" type="xs:string"/> <xs:complextype name="stringruleexpression"> <xs:complexcontent> <xs:extension base="tns:ruleexpression"> Page 6

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 <xs:element minoccurs="0" name="expression" type="xs:string"/> </xs:extension> </xs:complexcontent> <xs:complextype name="compliancerule"> <xs:element minoccurs="0" name="description" type="xs:string"/> <xs:element minoccurs="0" name="language" type="xs:string"/> <xs:element minoccurs="0" name="phase" type="xs:string"/> <xs:choice minoccurs="0"> <xs:element name="ruleexpression" type="tns:stringruleexpression"/> <xs:element name="ruleexpressionurl" type="tns:urlruleexpression"/> </xs:choice> <xs:element minoccurs="0" name="variabilitydescriptor" type="xs:anytype"/> <xs:element maxoccurs="unbounded" minoccurs="0" name="bindings" type="tns:variabilitybinding"/> <xs:element minoccurs="0" name="bindingstrategy" type="tns:bindingstrategy"/> <xs:attribute name="id" type="xs:string"/> <xs:complextype name="variabilitybinding"> <xs:sequence/> <xs:attribute name="variablitypoint" type="xs:string"/> <xs:attribute name="parameter" type="xs:string"/> <xs:attribute name="constant" type="xs:string"/> <xs:complextype name="entity"> <xs:sequence/> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="type" type="xs:string"/> <xs:attribute name="description" type="xs:string"/> <xs:complextype name="law"> <xs:any namespace="##other" processcontents="skip"/> <xs:attribute name="title" type="xs:string"/> <xs:complextype name="compliancedescriptor"> <xs:element minoccurs="0" name="rules" type="tns:rulesmapelement"/> <xs:element minoccurs="0" name="requirements" type="tns:requirementsmapelement"/> <xs:element minoccurs="0" name="laws" type="tns:lawsmapelement"/> <xs:element name="entities"> <xs:complextype> Page 7

114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 <xs:element maxoccurs="unbounded" minoccurs="0" name="entities" type="tns:entity"/> </xs:element> <xs:attribute name="name" type="xs:string" use="required"/> <xs:complextype name="rulesmapelement"> <xs:element maxoccurs="unbounded" minoccurs="0" name="rule" type="tns:compliancerule"/> <xs:complextype name="requirementsmapelement"> <xs:element maxoccurs="unbounded" minoccurs="0" name="requirement" type="tns:compliancerequirement"/> <xs:complextype name="compliancerequirement"> <xs:element minoccurs="0" name="complianceexpression" type="xs:string"/> <xs:element minoccurs="0" name="description" type="xs:string"/> <xs:element maxoccurs="unbounded" minoccurs="0" name="lawurls" type="tns:lawurl"/> <xs:attribute name="id" type="xs:string"/> <xs:complextype name="lawsmapelement"> <xs:element maxoccurs="unbounded" minoccurs="0" name="law" type="tns:law"/> <xs:simpletype name="bindingstrategy"> <xs:restriction base="xs:string"> <xs:enumeration value="singleton"/> <xs:enumeration value="clone"/> </xs:restriction> </xs:simpletype> </xs:schema Page 8

3.2 Compliance Expression Grammar The compliance expression is used to interconnect multiple compliance rules to a more complex compliance requirement. As the individual languages for compliance rules are arbitrary, this enables a generic compliance language on the level of the compliance descriptor. While the most fitting languages may be used to verify compliance during modeling, deployment, and runtime, the compliance expression is used to validate the overall compliance for compliance requirements and the overall compliance descriptor. The compliance expressions follow a formal grammar. We specify this grammar by W3C-style and railroad diagrams. W3C-style grammar of compliance expressions: parse ::= complianceexpression EOF complianceexpression ::= or or ::= and ( 'or' and )* and ::= rel ( 'and' rel )* rel ::= add ( ( '=' '>' '<' ) add )* add ::= mult ( ( '+' '-' ) mult )* mult ::= unary ( ( '*' '/' ) unary )* unary ::= '-' term '+' term 'not' term term term ::= INTEGER IDENT '(' complianceexpression ')' _ ::= WS /* ws: definition */ <?TOKENS?> IDENT ::= LETTER LETTER* INTEGER ::= DIGIT+ WS ::= ( ' ' #xa #xd #x9 )+ DIGIT ::= [0-9] LETTER ::= [a-z] [A-Z] EOF ::= $ Railroad diagrams of compliance expressions: parse: parse ::= complianceexpression EOF no references complianceexpression: complianceexpression ::= or referenced by: parse, term Page 9 of 21

or: or ::= and ( 'or' and )* referenced by: complianceexpression and: and ::= rel ( 'and' rel )* referenced by: or rel: rel ::= add ( ( '=' '>' '<' ) add )* referenced by: and add: add ::= mult ( ( '+' '-' ) mult )* referenced by: rel mult: mult ::= unary ( ( '*' '/' ) unary )* referenced by: add Page 10 of 21

unary: unary ::= '-' term '+' term 'not' term term referenced by: mult term: term ::= INTEGER IDENT '(' complianceexpression ')' referenced by: unary _: _ ::= WS /* ws: definition */ no references IDENT: IDENT ::= LETTER LETTER* referenced by: term INTEGER: INTEGER ::= DIGIT+ referenced by: term Page 11 of 21

WS: WS ::= ( ' ' #x000a #x000d #x0009 )+ referenced by: _ DIGIT: DIGIT ::= [0-9] referenced by: INTEGER LETTER: LETTER ::= [a-z] [A-Z] referenced by: IDENT EOF: EOF ::= $ referenced by: parse 3.3 Java Implementation The compliance descriptor has been implemented in Java using JaXB to allow marshalling and unmarshalling of compliance descriptor XML files. Using the unmarshalled compliance descriptor, compliance expressions can be parsed and compliance rules can be created as well as deployed. Page 12 of 21

4 Example Figure 1: example process model in Oryx Figure 1 shows an example process modeled in BPMN 2.0 in the Oryx editor. This is a simplified insurance claim management process handling damage claims. The process has the following steps: Receive claim: a claim is received via mail, fax etc., converted in a structured data format and stored in a customer database Process claim: the claim is automatically examined for consistency, plausibility etc. Decide claim: based on the processing result the claim is accepted or rejected. Send claim: a letter is sent to the claimant informing him or her of the claim management result. 4.1 Compliance Requirements and Rules Two exemplary compliance requirements for this process arise from different laws: R1: the GDV Code Of Conduct [6] stipulates a claimant is to be notified in a timely fashion, if his or her data is used for marketing purposes, which may be the case as soon as it is in the customer database. This notification can be sent with the claim result. A timely fashion is further specified as 14 days. Therefore, the requirement is as follows: At most 14 days after the claim is received the claim result has to be sent. R2: the Federal Data Protection Act (Bundesdatenschutzgesetz) [7] in Germany regulates data storage. To make sure German law is upheld, the requirement is as follows: The customer database must be hosted within Germany. On a technical level, these compliance requirements need to be implemented by compliance rules during different times of the process lifecycle. R1 can be partially checked by the sequence of activities during process design. Receive claim must be followed by Send claim and Data privacy notification. Page 13 of 21

But this alone is insufficient. The timing constraint of 14 days can only be monitored at run-time. R2 can be checked during deployment of the process infrastructure. To model these rules and requirements, the compliance descriptor is used. 4.2 Exemplary Compliance Descriptor Below the compliance descriptor for the example process is listed. The compliance descriptor contains the following: Laws: both laws from which compliance requirements stem, GDV Code Of Conduct and Bundesdatenschutzgesetz are contained as XHTML. (Lines 70 77 in the exemplary descriptor) Compliance requirements: both compliance requirements R1 and R2 are contained, referencing the sections of the law they stem from with an XPATH expression. o Compliance expressions: each compliance requirement contains an expression in the compliance expression language detailed in Section 3.2, referencing the compliance rules of the descriptor. Compliance rules: three compliance rules for implementing the compliance requirements: o The rule followedby is an LTL rule to be checked at design time. (Lines 16 27 in the exemplary descriptor) o The rule hostinglocation is a TOSCA policy to be checked during deployment. (Lines 28 39 in the exemplary descriptor) o The rule maxtimebetweenactivities is a ProGoalML rule to be monitored at run-time. (Lines 3 15 in the exemplary descriptor) Note that compliance rule expressions as well as variability descriptors and full law texts are omitted for space reasons. The compliance rule expressions are detailed in Section 5. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <compliancedescriptor name="simplified claim management"> <rules> <rule id="maxtimebetweenactivities"> <description>a second activity must follow a first activity within a specified time.</description> <language>progoalml</language> <phase>run-time</phase> <ruleexpression> <expression>...</expression> </ruleexpression> <variabilitydescriptor>...</variabilitydescriptor> <bindings variablitypoint="$firstactivity" parameter="1"/> <bindings variablitypoint="$secondactivity" parameter="2"/> <bindings variablitypoint="$maxtime" parameter="3"/> </rule> <rule id="followedby"> <description>a first activity must be followed by a second activity.</description> Page 14 of 21

19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 <language>ltl</language> <phase>design-time</phase> <ruleexpression> <expression>([]($a -> <> $B))</expression> </ruleexpression> <variabilitydescriptor>...</variabilitydescriptor> <bindings variablitypoint="$a" parameter="1"/> <bindings variablitypoint="$b" parameter="2"/> </rule> <rule id="hostinglocation"> <description>a component has to be hosted at a specific region.</description> <language>tosca</language> <phase>deployment</phase> <ruleexpression> <expression>...</expression> </ruleexpression> <variabilitydescriptor>...</variabilitydescriptor> <bindings variablitypoint="$component" parameter="1"/> <bindings variablitypoint="$region" parameter="2"/> </rule> </rules> <requirements> <requirement id="r1"> <lawurls> <law>gdv - Code of Conduct</law> <paragraphreference> <xpath>/html/body/p[1]</xpath> </paragraphreference> </lawurls> <description>after a claim is received the claimant has to be asked for agreement within 14 days.</description> <complianceexpression>followedby("receive claim", "Send claim and data privacy notification") AND maxtimebetweenactivities("receive claim", "Send claim and data privacy notification", "14 days" ) </complianceexpression> </requirement> <requirement id="r2"> <lawurls> <law>bundesdatenschutzgesetz</law> <paragraphreference> <xpath>/html/body/p[17]</xpath> </paragraphreference> </lawurls> <description>the Customer DB shall not be hosted outside of Germany.</description> <complianceexpression>hostingregion("customer DB", "Germany") </complianceexpression> </requirement> </requirements> <laws> <law title="gdv - Code of Conduct"> <html>...</html> </law> <law title="bundesdatenschutzgesetz"> <html>...</html> </law> </laws> <entities> <entities name="receive claim" type="activity"/> Page 15 of 21

80 81 82 83 84 85 86 <entities name="process claim" type="activity"/> <entities name="decide claim" type="activity"/> <entities name="send claim and data privacy notification" type="activity"/> <entities name="customer DB" type="component"/> </entities> </compliancedescriptor> 5 Tools 5.1 Modeling Compliance Rules for BPMN Compliance rule modeling in BPMN is centered on LTL rules. Figure 2 shows the graphical compliance rule editor. As specifying LTL textually Schleicher [12] introduced this graphical notation using the stencil set seen on the left. This specific rule followedby stipulates that the use of a receive claim activity in a process implies that the send claim and data privacy notification activity must also be present in the business process and be executed if receive claim is executed. This graphical notation is then be transformed to LTL to be applied to a business process model. Figure 2: Graphical specification of an LTL rule The screenshot in Figure 3 shows a BPMN Process for which a compliance rule shall be used. For this purpose, the BPMN stencil set seen on the left has been extended to allow modeling of compliance domains. In this example, the compliance domain shall consider all activities in the process, thus, is encloses the complete business process. Then, the compliance rule is associated with this compliance domain. Page 16 of 21

Figure 3: Modeling a Compliance domain in Oryx During modeling the user may evaluate compliance rules associated with compliance domains in the business process by triggering the SPIN model checker as seen in Figure 4. The model checker retrieves the LTL rule from the compliance domain element and evaluates it with respect to all elements contained in the scope. Figure 4: Verification of the LTL rule Page 17 of 21

The result may also be shown in a more condensed fashion in the model checker window as seen in Figure 5. Figure 5: result windows of the SPIN model checker As the model checker results are only textual, the result is also used to visualize compliance in the process itself. This allows users to identify failing compliance domains quickly as seen in Figure 6. Figure 6: graphical visualization of compliance in the business process 5.2 Modeling Compliance Rules in TOSCA Figure 7 shows winery, an Open Source TOSCA editor proposed as an eclipse project [23]. Different application components are modeled connected via a HostedOn dependency. On the top is a customer database, which is installed on a MySQL DBMS. This middleware is installed on Ubuntu12.04 as operating system. On the very bottom, a blade center is used as runtime infrastructure. Two components have an associated data policy. The operating system has a data location policy associated with it to ensure that it is installed in a certain geographic region. The customer database has an additional data location policy to ensure that all management tasks handling this data have to respect where data may be stored. For example, data backup tasks would not have to consider policies affecting the application provisioning. Nevertheless, they have to respect the geographic location where data backups are stored. This model implements the hostinglocation rule in the example. Page 18 of 21

Figure 7: modeling policies in TOSCA 5.3 Modeling Compliance Rules in ProGoalML ProGoalML is used to model run-time monitoring of a process, including measurements, KPIs and goals. Similarly to LTL, a ProGoalML model can be modeled in Oryx. The ProGoalML stencilset serves as an extension to BPMN 2.0, enabling the monitoring model to be modeled directly within the BPMN process model. Figure 8: modeling monitoring with ProGoalML Figure 8 shows the example process extended with ProGoalML elements realizing a run-time compliance rule in the Oryx editor. Note the ProGoalML modeling stencils to the left. Monitoring data is measured at two measuring points, mp_a at the activity Receive claim and mp_b at the activity Send claim Page 19 of 21

and data privacy notification. At both measuring points the process id of the current process instance as well as the current timestamp at the time of measurement is measured. Using these measurements, the compliance rule maxtimebetweenactivities is implemented as the timing goal max_time_a_b. This timing goal imposes that for each process instance, the time between the first and second measurement (and in turn between both associated acitvities) must be less than 14 days. If within 14 days after the first activity the second activity does not take place, the goal is violated and an alert is generated. Figure 9: example alert if timing goal is violated Figure 9 shows an example alert as it is displayed in the automatically generated dashboard. Optionally, an alert can be sent out as an e-mail as well to allow immediate reaction to compliance violations. Page 20 of 21

6 References [1] Business process model and notation (BPMN) version 2.0, 2011. URL http://www.omg.org/- spec/bpmn/2.0/. [2] Apache Foundation. Apache Tomcat. URL http://tomcat.apache.org/. [3] JBoss Community. JBoss ESB. URL http://www.jboss.org/jbossesb. [4] Oracle. MySQL. URL http://www.mysql.com/. [5] Oracle. Database 11g. URL http://www.oracle.com/products/database/. [6] German Insurance Association (GDV), Verhaltensregeln für den Umgang mit personenbezogenen Daten durch die deutsche Versicherungswirtschaft, 2012, http://www.gdv.de/wp-content/uploads/2013/03/gdv -Code-of- Conduct_Datenschutz_2012.pdf. [7] Bundesdatenschutzgesetz (BDSG), URL http://www.gesetze-im-internet.de/bundesrecht/bdsg-1990/gesamt.pdf. [8] Weerawarana, S.; Curbera, F.; Leymann, F.; Storey, T.; Ferguson, D.F. Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More. Prentice Hall, 04 2005. [9] Koetter F.; Kochanowski, M. Goal-oriented model-driven business process monitoring using progoalml. In: 15th BIS. Vilnius: Springer, 2012, pp. 72 83. [10] Mietzner, R.: A method and implementation to define and provision variable composite applications, and its usage in cloud computing, Ph.D. thesis, 2010. [11] Hasso-Plattner-Institute. The Oryx Project. URL http://bpt.hpi.uni-potsdam.de/oryx. [12] Schleicher, D.; Leymann, F.; Schneider, P.; Schumm, D.; Wolf, T. An Approach to Combine Data-Related and Control-Flow-Related Compliance Rules. In: Proceedings of SOCA, 2011. [13] Pnueli, A. The temporal logic of programs. Proceedings of the 18th Annual Symposium on Foundations of Computer Science (FOCS), 1977, 46 57. [14] Iosif, R. The PROMELA Language. URL http://www.dai-arc.polito.it/dai-arc/manual/tools/jcat/main/node168.html. [15] Holzmann, G. J. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, 2003. [16] Schleicher, D.; Fehling, C.; Grohe, S.; Leymann, F.; Nowak, A.; Schneider, P.; Schumm, D. Compliance Domains: A Means to Model Data-Restrictions in Cloud Environments. In: Enterprise Distributed Object Computing Conference (EDOC), 2011. [17] Topology and orchestration specification for cloud applications version 1.0, 08 2012. URL http://docs.oasis-open.org/tosca/tosca/v1.0/csd04/tosca-v1.0-csd04.html. [18] Waizenegger, T.; Wieland, M.; Binz, T.; Breitenbücher, U.; Haupt, F.; Kopp, O.; Leymann, F.; Mitschang, B.; Nowak, A.; Wagner, S. Policy4TOSCA: A Policy-Aware Cloud Service Provisioning Approach to Enable Secure Cloud Computing. In On the Move to Meaningful Internet Systems: OTM Conferences, 2013. [19] Waizenegger, T.; Wieland, M.; Binz, T.; Breitenbücher, U.; Leymann, F. Towards a Policy- Framework for the Deployment and Management of Cloud Services. In: Seventh International Conference on Emerging Security Information, Systems and Technologies, SECURWARE, 2013. [20] Breitenbücher, U.; Binz, T.; Kopp, O.; Leymann, F.; Wieland, M. Policy-Aware Provisioning of Cloud Applications. In: Seventh International Conference on Emerging Security Information, Systems and Technologies, SECURWARE, 2013. [21] Mietzner, R.; Unger, T.; Leymann, F. Cafe: A Generic Configurable Customizable Composite Cloud Application Framework. In: CoopIS, 2009. [22] W3C. XHTML 1.1 Recommendation. 2010. http://www.w3.org/tr/xhtml11/. [23] Eclipse Foundation. Winery. http://www.eclipse.org/proposals/soa.winery/. Page 21 of 21