consistency and failure handling in electronic...

85
CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS Thesis submitted in partial fulfillment of the requirements for the degree of MASTERS OF SCIENCE BY RESEARCH in COMPUTER SCIENCE by NISHTHA MADAAN 201203001 [email protected] CENTER FOR DATA ENGINEERING International Institute of Information Technology Hyderabad 500032, INDIA May 2016

Upload: lynhi

Post on 27-Aug-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

CONSISTENCY AND FAILURE

HANDLING IN ELECTRONIC

CONTRACTS

Thesis submitted in partial fulfillment

of the requirements for the degree of

MASTERS OF SCIENCE BY RESEARCH

in

COMPUTER SCIENCE

by

NISHTHA MADAAN

201203001

[email protected]

CENTER FOR DATA ENGINEERING

International Institute of Information Technology

Hyderabad – 500032, INDIA

May 2016

Page 2: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

Copyright© NishthaMadaan, 2015

All Rights Reserved

International Institute of Information Technology

Hyderabad, India

Page 3: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

CERTIFICATE

It is certified that the work contained in the thesis, titled “Consistency and Failure Detection in E-

Contracts” by NishthaMadaan, has been carried out under my supervision and is not submitted

elsewhere for a degree.

---------------- ----------------------

Date Adviser: KamalakarKarlapalem

---------------- ---------------------------

Date Co-Adviser: Radha Krishna P.

Page 4: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

Dedicated to my family.

Page 5: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

Acknowledgements

I am using this opportunity to express my gratitude to everyone who supported me throughout

the course of my research work from finding a research problem to the process of approaching

the problem in various ways and further getting a solution that works.

I deeply thank Dr. Kamal Karlapalem, my advisor who never gave up on me be it my gaps in

reading a research paper or a gap in my understanding of the problem. He has always helped

me in filling those gaps by portraying the problem into a real life scenario making it easily

understandable. His silent motivation and encouragement has inculcated in me the idea of self

confidence that “You can do it”. This feeling is very important for a person to be able to

believe oneself that you can do something and you can solve the research problem at hand and

thereby has been the biggest motivating factor for me which kept me moving. I would also

extend my gratitude towards Dr. Radha Krishna, my co-advisor who has always been available

for answering all my queries and has helped me in improving my writing skills. He has been

very kind in entertaining some very naive ideas from me and later on defining a refined version

of it. I would also thank my sister for her constant support be it my frustrations about the

courses issues or some research blues she has been there all the times by my side listening to

every small issue. I would also thank my family and friends for their constant support which

has brought me here and have always taught me to never look back at the failures and chase

upcoming goals.

Page 6: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

Abstract

E-contracts are textual documents describing various contractual assignments/tasksand

dependencies among contractual elements such as parties, activities, clauses, exceptions and

payments. The dependencies and constraints in e-contract can be differently stated in different

parts of large documents. Inconsistencies in the e-contract document, particularly the contract

activities and clauses specification, may lead to failures during contract enactment. The thesis

work focuses on (i) ensuring consistency at specification level, (ii) failure detection through

consistency checking and their handling at execution levelduring e-contract enactmentand(iii)

failure preventionby assessing the possible failuresthat may arise due to inconsistent task

specifications (leads to violation of constraints during execution) and thereby avoid from

abnormal termination of workflow execution.To determine the consistency of an e-contract

document, we construct two graphs namelySentence Dependency Graphand Contract Element

Dependency Graphfrom dependencies existing in the contract document. We also develop a

methodology usingthese two graphs for consistency detection in an e-contract. We also

present an evaluation of our approach on a sample contract document and come up with

visualization for showing dependencies of contract elements which are present in the document

contract.

Since contracts may evolve over a period of time, an e-contract enactment system should adapt

to changing requirements. For this purpose, we use the concept of Meta Execution

Workflowsfor e-contract enactment. Meta execution workflows allow modification of the

workflow execution engine process to support design and run time changes. In this thesis, we

present a framework to execute workflows in a seamless manner by handling exceptions and

failures, and thereby ensuring consistency during e-contract execution. Our framework, using

meta execution engine, representsthe workflow execution engine and other components of

WFMSin terms of workflows. Our system allows specification, instantiation, modification and

execution of workflows on-the-fly with less human intervention even when failures occur.We

also provide design and implementation aspects of Failure Resilient Workflow System

(FRWS)and demonstrate its applicability for different failure scenarios of anexample e-

contract.Though the proposed solution is specific to e-contract enactment, it can be made

Page 7: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

generic and applied to other domains where the business processes are modeled using

workflows.

Page 8: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

Contents

Chapter 1 Introduction .......................................................................................................................... 12

1.1 Research Problem ....................................................................................................................... 12

1.1.1 Inconsistencies in an e-Contract………………………………………………………..…13

1.1.2 Exceptions and failures that arise during contract enactment……….………………….…15

1.2 Scope of Thesis........................................................................................................................... 16

1.3 Thesis Outline ............................................................................................................................. 17

Chapter 2 Related Work ....................................................................................................................... 18

2.1 E-Contract .................................................................................................................................. 18

2.2 Workflow Management System ................................................................................................. 19

2.3 Document level E-Contract inconsistencies ............................................................................... 19

2.4 Execution level E-Contract Failures………………………………………………………….. 20

2.5 Summary……………………………………………………………………………………….21

Chapter 3 Consistency of an E-Contract……………………………………………………………...22

3.1 Problem Description…………………………………………………………………………...22

3.2 Seller-Carrier-Buyer E-Contract................................................................................................. 23

3.3 Methodology for ensuring consistency………………………………………………………...26

3.3.1 Semantic Dependency Check…………………………………………………………..…27

3.3.1.1 Semantic Dependencies in text………………………………….…………………..30

3.3.2 Contract Elements Dependency Check ............................................................................... 34

3.3.3 Visualization ……………………………………………………………………………...40

3.4 Summary……………………………………………..………………………………………...41

Chapter 4 Failures in execution of an E-Contract ................................................................................ 42

4.1 Problem Description ................................................................................................................... 42

4.2 Background : Meta Execution Workflow ................................................................................... 43

4.3 Functional Aspects ..................................................................................................................... 44

4.4 Design Aspects ........................................................................................................................... 45

4.5 Implementation Aspects ............................................................................................................. 50

4.6 Comparison of traditional WFMS and FRWS ........................................................................... 63

Chapter 5 Failure Prevention ................................................................................................................ 65

5.1 Problem Description ................................................................................................................... 65

5.2 Methodology to assess failure .................................................................................................... 65

5.3 Summary .................................................................................................................................... 68

Page 9: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

Chapter 6Case Study………………………………………………………………………………. ..69

6.1 The Example…………………………………………………………………………………...69

6.2 Summary ……………………………………………………………………………………….80

Chapter 7 Conclusion and Future Work……………………………………………………...............81

Bibliography………………………………………………………………………………………... ..83

Page 10: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

List of Figures

Figures

3.1 An overview of the procedure for ensuring a consistent contract….………………….27

3.2 Representing Semantic Dependency Graphs for Sentences…………………….……..28

3.3 Algorithm for consistency check in SDG……………………………………………..30

3.4 Representing sentences of SDG……………………………………………………….34

3.5 Algorithm for constructing EDG………………....……………………………………35

3.6 Dependency Graph for Parties…………...…………………………………………….37

3.7 Dependency Graph for Exceptions…………………………...………………………...37

3.8 Dependency Graph for Activities...………………...………………………………......38

3.9 Dependency Graph for Clauses…..………………..………………………………..….38

3.10 Algorithm for constructing CEDG………..…………………………………………....39

3.11 Depicting dependencies of between different contract elements……………………....40

3.12 Depicting a CEDG graph showing dependency of a sentence………………………...41

4.1 MEW driven Workflow Execution Engine for FRWS………………………………...43

4.2 State Diagram of Workflow Instances………………………………………………….45

4.3 High level Components of FRWS……………………………………………………...46

4.4 Representing workflow specifier and manager as workflows for graduate college...….48

4.5 A sample MEW……………………………………..………………………………….49

4.6 Tasks of buyer seller contract…………………………………………………………..52

4.7 Representing workflow specifier and manager as workflows for seller-buyer……..…..53

4.8 Matchmaker Algorithm……………………………………………………………..…..56

5.1 Representing workflow execution engine………………………………………………66

5.2 Algorithm for assessing failures………………………………………………………...67

6.1 Extended ER contract diagram for STC Contract………………………………..…….69

6.2 Interface for adding a new MEW…………………………………………………...….70

6.3 Interface for adding a new user workflow……………………………………………...72

6.4 Representing tasks in database added from xml file……………………………..……..74

6.5 PSA table in database…………………………………………………………………..74

6.6 Representing coupling of a task from user workflow with MEW tasks……………….75

6.7 Representing failures in execution……………………………………………………...76

6.8 Interface representing failures in execution………………………………………….....77

6.9 Interface representing failure handling steps…………………………………………..77

6.10 Representing result of Retrying a failed instance………………………………………78

6.11 Changing PSA…………………………………………………………………………..79

6.12 Changing Capabilities…………………………………………………………………...79

Page 11: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

List of Tables

Table

3.1 Parts of Speech Tags…………………………………………………………………...29

3.2 Sentence Dependency table with POS tags of the words……………………………...32

3.3 Dependencies in the STC Contract…………………………………………………….36

4.1 Categories of failures handled by execution engine……………………………………51

4.2 PSA and their capabilities for seller buyer e-contract………………………………....54

4.3 Task, Conditions and Events for Buyer Seller E-Contract………………………….....55

4.4 Representing database updates at runtime for buyer seller E-Contract……….……….53

4.5 Representing failures encountered in the system………………..……………………..58

4.6 Differences between traditional WFMS and MEW driven WFMS…………..……….64

5.1 Representing execution log and fetched dependencies………………………………...67

Page 12: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

12

Chapter 1

Introduction

In recent days, there has been a great increase in number of people switching to online

transactions and in turn increasing business to customer (B2C) interactions and business to

business (B2B) interactions. Consider a scenario of online shopping website where seller

displays the products online for sale thereby facilitating buyers to view and order products

online. Buying a product from the website where products have been placed for sale by seller

implies that buyer andseller agreeing (or signing) on the purchase and the return policy

contract. These contracts are specified implicitly or explicitly (as terms and conditions),

which need to be understood and processed to ensure consistent execution of

workflows/tasks as per the satisfaction of business policies and the users expectations.Thus,

these technological advances necessitatesdiscovery of new tools and methods to automate the

task execution of contracts which weredifficult to handle with conventional contracting

approaches. In the conventional contracting, (i) the parties need to go through a lot of paper

work for performing various activities and check dependencies between contractual entities,

(ii) any deviation from the service level agreement (SLA) will be known only when it is

raised by a human, which results in clause violations, exceptions and failures during the

contract enactment, and (iii) most importantly the first time clause violations would require

thoughtful processing that takes time to be done by humans; whereas our solution does

substantial preprocessing for potential inconsistent states and ways to resolve them ahead of

execution.

E-contract can beviewed as a computerized version (or an automated form) of a tedious

conventional contract. The main elements of an e-contract are Parties, Activities, Clauses,

Payments, Exceptions and Commitments. Parties are the organizations or people involved in

the e-contract. Therefore, parties play a very crucial role in the contract enactment. Activities

represent the tasks (or e-services) to be executed during the enactment process. Clauses

describe the restrictions on the execution of activities. Exceptions may arise due to

incomplete or partial fulfillment of clauses. Payments state how the payments are to be made

when the obligations are met. Commitments include completion of the activities by the

parties as per the agreed terms and conditions and successful closure of e-contract enactment.

1.1 Research Problem

The thesis addresses the following two research problems:

1. Detection of inconsistenciesin an e-contract

2. Handling of exceptions and failures that arise during contract execution

Page 13: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

13

3. Failure Prevention

1.1.1 Inconsistencies in an e-contract

The basic input to an E-Contract system is a contract document which later on gets converted

to processes which enact and executethe contract processes and rules. There have been cases

where e-contracts fail duringexecution due to inconsistencies in the document contract

itself.For instance, consider the following two sentences in a school admission contract

document:

“Bright students will be given free bicycles.

Students who are privileged would not be given any benefits.”

When the contract is in execution, inconsistency may arise while deciding whether a

privileged student, who is bright, should be given a free bicycle or not. If this kind of

inconsistency is detected at the document level, then it can be handled during contract

specification itself and thus the contract execution can be successfully completed. Otherwise,

the enactment of the contract may lead to failures. As a result of these failures, the resources

are wasted and users are unsatisfied andfrustratedwhen people try to figure out issues at the

execution level and at the end, determine that e-contract specifications were inconsistent. To

avoid this cumbersome process, we need to find ways to avoid these issues by making sure

that the contractdocument is consistent before executing it. The inconsistency can be at

semantic level or due to contract elements dependences. We address the issue of

inconsistency in the specifications of contractdocument in chapter 2.

Consider the following text froman example contract namelyiTunesContract:

“GIFT CERTIFICATES, ITUNES CARDS AND CODES, ALLOWANCES

Gift Certificates, iTunes Cards and Codes, Content Codes, and Allowances, in addition to

unused balances, are not redeemable for cash and, if redeemed during 14 days from

receiving the receipt, cannot be returned for a cash refund, without prejudice to any

applicable statutory right to a refund in case of faulty or misdescribed gifts; exchanged;

resold; used to purchase Gifts, Gift Certificates, or iTunes Cards or Codes; used to provide

Allowances; used for purchases on the Apple Online Store; or used in Apple Retail Stores.

Unused balances are not transferable.

Gift Certificates, iTunes Cards and Codes, and Allowances purchased in Ireland may be

Page 14: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

14

redeemed through the Stores only in Ireland.

iTunes is not responsible for lost or stolen Gift Certificates, iTunes Cards and Codes, or

Allowances. Risk of loss and title for Gift Certificates, iTunes Cards and Codes, and

Allowances that are transmitted electronically pass to the purchaser in Ireland upon

electronic transmission. Risk of loss and title for Codes that are transmitted electronically

pass from iTunes in Luxembourg upon electronic transmission.

iTunes reserves the right to close accounts and request alternative forms of payment if a Gift

Certificate, iTunes Card and Codes, Content Code, or Allowance is fraudulently obtained or

used on the Stores.”

In this snippet, if we quote the following lines “Risk of loss and title for Gift Certificates,

iTunes Cards and Codes, and Allowances that are transmitted electronically pass to the

purchaser in Ireland upon electronic transmission. Risk of loss and title for Codes that are

transmitted electronically pass from iTunes in Luxembourg upon electronic transmission”,

it can be observed that first line says Risk of loss, title for Gift Certificates, iTunes Cards and

Codes and Allowances are passed to purchaser in Ireland upon electronic transmission. And

the second line is contradictory by quoting that Risk of loss and title of Codes pass from

iTunes in Luxembourg upon electronic transmission.

If this document contract isnot validated or checked in some way, it may lead to inconsistent

results while executing the tasks since it says that codes are passed to Luxembourg or

Ireland. This is just an example of semantic inconsistency where we need to check the natural

language sentences and make sure there is no anomaly.

Another kind of issue that can arise when we have incomplete information in a document

which may lead to an inconsistent state during the contract execution.

If we quote another part from the iTunes contract,

“REQUIREMENTS FOR USE OF THE SERVICE

Page 15: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

15

Only persons aged 21 years or older can create accounts. Accounts for children under 18

years old can be created by the parent using Family Sharing. Children under the age of 18

should review this Agreement with their parent or legal guardian to ensure that the child and

parent or legal guardian understand it. The software can be downloaded by parent and can

be circulated by family sharing. Your total price will include the price of the product plus

any applicable VAT (in effect on the day of download). A person with an account is entitled

to download the software. Software can be downloaded by a parent and can be circulated

using Family Sharing. Parent will be entitled for a 40% discount for any additional software

downloaded from after 4 paid downloads. No discount is provided in the iBooks Store

downloads.

The Service is available to you only in Ireland. You agree not to use or attempt to use the

Service from outside this location. iTunes may use technologies to verify your compliance.”

According to this contract, a parent gets a discount of 40% after fourpaid downloads. The

next phrase conveys that there is no discount on iBooks Store products. An inconsistent

situation arises when a parent after completing fourpaid transactions tries to download

something from iBooks store expecting a discount of 40% but does not get it because iBooks

Store products are entitled to have no discount. Here, the order of clauses keeps the task

execution in an inconsistent state as the exceptions clauses related to iBooks store and

location Ireland are placed after downloads.We need to addressthese kind of inconsistent

scenarios at the document level itself in order to identify potential failures during contract

execution when certain conditions are met.

1.1.2 Exceptions and failures that arise duringcontract enactment

We address the problem by taking an example of timetable allocation in a graduate college.

In a graduate college a faculty teaches multiple courses. While timetable allocation there are

certain things that need to be taken care of: 1. For each course there should be an assigned

faculty. 2. Same faculty should not be allocated same time for more than one course.

Suppose the User Workflow that needs to be executed is:

Take a course -> Choose a professor with capability to teach that

course -> Allocate timing -> Stop

The above workflow has to be executed according to the requirements stated in the e-

contract.Assume that we have a database which has tables for faculty and course containing

all the relevant information. Now, when the execution begins, the following issues may arise:

Page 16: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

16

(1) No professor is available to teach thecourse which has been selected after

executing “Take a course” task.

(2) After executing “Allocate Timing” task, the professor has an issue with the timing and

wants to change it.

In these scenarios,an e-contractsystem should be capable enough to deal with runtime

exceptions and failures that may occur so that the execution is seamless. It should also be

capable enough to assess the failures that can occur by looking at the failures that have come

up in the past.

In this thesis:

- we devised a methodology to detect and to handle inconsistencies in an e-contract at

document level by constructing Sentence dependency graphs and Contract Elements

Dependency Graphs.

- we have developed a system which handles possible exceptions and failures that

occur during execution of tasks of a contract.

- we have proposed a way for prevention of failure

1.2 Scope of the Thesis

We first focus on finding inconsistencies at the document level of e-contracts. Most of the

existing works have explored the inconsistencies at execution level and there is no or less

work has been carried out at document level inconsistencies. In this work, we deal with

document (specification) levelinconsistencies in order to ensure that the contract document is

consistent and ready for enactment.

Next, we focus on handling the exceptions/failures that may arise at runtime to provide

seamless execution of workflows.Our approach is mainly based on metaexecution models

[3]. We show that the usage of metaexecution models makes the system more flexible and

easy to use to incorporate new changes in the system.

We developed a meta execution engine prototype and presented itsdesign and

implementation details (chapter 4 and 5). The description starts from logical layers and

extends to the implementation layer with corresponding design artifacts.

Page 17: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

17

1.3 Thesis Outline

The thesis is organized in the following manner:

In Chapter 2, we present thestate-of-the-art for e-contracts and workflow management

systems in different dimensions including consistency issues and exception/failure handling.

In Chapter 3, we designed an approach to detect inconsistencies that occur at document level

of contract and develop a methodology which can deal with these inconsistencies at both

semantic level and contract elements level.

In Chapter 4, we present a system to handle exceptions and failures that occur during task

execution to support seamless execution of tasks.

In Chapter 5, we developed a methodology to assess failures by using execution log and

dependencies data.

In Chapter 6, we validated our approach with a case study on an e-governance contract and

demonstrate the applicability ofour approach.

In Chapter 7, we summarize the contributions made in the thesis and discuss the extendibility

and future work.

Page 18: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

18

Chapter 2

Related Work

In this chapter, we present related work with respect to e-Contracts and workflow

management systems (WFMS). We start with highlighting the work done in the field of e-

contracts and WFMS with a focus on 1.)detecting inconsistency in an e-contract specification

and 2.)dealing with exceptions/failures during execution of an e-contract. We also highlight

thelimitations of earlier approaches and the need of additional mechanisms to deal with

failures during e-contract enactment.

2.1 E-Contract

There has been a considerable work done in the field of e-contracts. Angelov and Grefen[4]

proposes a conceptual 4W Framework for business-to-business e-contracting support. Who,

Why, What and hoW are the four concepts identified in a contract. The participation of

parties as actors lead to ‘who’ concept whichcan be further subdivided as a party, a mediator

or an auxiliary implementer. The contextof contract under which it is established define the

‘where’ concept. It includes legal, geographical and business dimensions. ‘What’ concept

models exchanged values during the e-contracting process. Different contracting processes,

contract representation and standards, contracting phases and contract structure forms the

How concept. 4W framework helps in maintaining consistency in the contract to a certain

extent by maintaining specifically who is doing what, where and how. However, there is no

mechanism to track the tasks with respect to 4Ws and coordination among entities in these

four concepts. Further, 4W framework is at conceptual level and hence does not provide

support at execution level. This framework does not address inconsistency in specification

and failure handling at execution time.

Metso and Kutvonen [8] propose multi-party contracts that records the contract business

rules and non-functional requirements as well as have defined role descriptions for fulfilling

contracts. The framework presented is based on B2B middleware services provided by web-

Pilarcos architecture [2]. In this approach agreement between parties is established by

verifying the intended message to be received by the parties.

The CrossFlow project [5] introduces dynamic contracting and configuration for service

enactment and defines inter-organizational business process among the parties. It provides

cross-organizational workflow support to provide role based interfaces and connecting

workflows by runtime role mapping.

Page 19: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

19

2.2 WFMS

Workflows help in automating business processes. Van der Aalst et al. [6] developed a

formal organizational model using UML and XML to support workflowsystems. The

jointFlow [7] standards proposed by OMG group facilitates the enactment of workflow

process components and supports interfaces for process execution, monitoring and

interoperation between process components. In CapBased AMS [10], tokens are used to

model the capability or need of a PSA or task respectively. The specification of activities,

sub-activities, tasks and PSAs are all user driven. This approach is defined to execute

activities as an event driven activity execution paradigm. In our work, we followed the

concept of PSA to deal with exceptions and failures during e-contract enactment.

Sharma et al [3] describes the specification and execution of workflows using Meta Models

by introducing Meta Specification Workflow and Meta Execution Workflow. MSW handles

the specification of workflows and MEW takes care of their execution. Therefore in the

proposed approach MEW serves as a top layer to user workflows which help in executing

user workflows with ease. The MEW forms basis for our system.

In the previous works, the main focus is on updation of workflow to suit the needs of run-

time context, but there is no or less work done in handling failures that arise due to

inconsistencies during the execution of contract. In this work, we introduced mechanisms to

extended the capabilities of MEW in order to support exceptions/failures.

2.3 Document Level E-Contract inconsistencies

Marneffe and Manning [12] defined Stanford typed Dependencies which marks the

dependencies that exist in a sentence by finding out doer of the action. They presented an

approach by which one can understand the grammatical relationships existing in a sentence.

They also represented all sentence relationships as typed dependency relationships, which

helps in extracting useful information from the text. Xiao et al [13] presented a model that

bridges the gap between specified Access Control Policies and the implementation model by

proposing a technique that extracts Security Policies from Software Documents. Theirwork

uses Extensible Access Control Markup Language (XACML) for specifying Access Control

Policies’ constructs which were widely supported by major platform vendors. Gervasi and

Zowghi [14] described a method for automatically discovering inconsistencies in the

requirements specification documents from multiple stakeholders by model checking

techniques which focused on logical contradiction leading to inconsistency in the system.

Rush [15] presented a technique to augment sentence level models for Parsing and POS

Page 20: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

20

tagging with inter-sentence consistency constraints by adding consistency constraints to the

MST parser and Stanford Parts of speech tagger and also demonstrated reduction of error

when training data was out of domain or limited.

Several e-contract systems and frameworks exist in the literature. Examples are

ERECframework[16], COSMOS[20], CrossFlow [19], SweetDeal [17] and IST CONTRACT

project (www.ist-contract.org). All these works assume that the contractual sentences are

clearly stated without any ambiguity. Miloesvic [18] presented a technique for formal

modeling of e-contracts and also introduced visualization concepts such as role wind and

time maps and further described how these visualization concepts can be used as decision

support tool during contract negotiation. Fagundes [19] discussed about violation risks in e-

contracts and further presented an extension of Markov Decision Process called as Normative

Markov Decision Process for representation of norms of e-contract. Theirwork also describes

an algorithm for identifying the states of the process which characterize the violation of any

norm where norms express the obligations of different parties.

In our work, we consider contract documents that constitute activities (to be carried out by

parties) and clauses (to be satisfied for successful contract execution), and use parts-of-

speech (PoS) tags and dependency graphs to check for inconsistencies in an e-contract

document.

Most of the approaches (ex. [14] or [19]) detect inconsistencies from natural languages

sentences at specifications level whereas our approach considers contract (business)

semantics also in order to ensure that the contract is free from inconsistencies.

2.4 Execution level E-Contract Exceptions/Failures

There have been many projects (ex., [22, 23, 24, 25, 26]) that facilitate meta modeling to

provide flexibility during workflow execution. ADEPT, an adaptive workflow management,

described by Reichert et al [27] enables ad-hoc workflow changes, workflow schema

evolution and synchronization of inter-workflow dependencies. Their work also has features

to support temporal constraints and inter workflow dependencies. Zhang and Du [26]

described a dynamic planning for workflow process generation method to allow workflow

processes to be more flexible. They defined actions in terms of Description logic and

presented a hierarchical workflow ontology model for routing relations to increase the

process adaptability in workflows. Krishna and Karlapalem [23] viewed the e-contracts as

workflow meta model and described an approach to generate dynamic workflows from an e-

contract meta model. Reichert and Dadam [24] provided a set of modification primitives that

allow change in workflow schema, both static and dynamic. Chiu et al [22] presented a meta-

workflow model to monitor and handle exceptions raised during running of a workflow

Page 21: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

21

instance.

The above works support the execution of workflows which include multiple task executions.

However, consistent system state recovery is a challenge in the existing workflow systems

due to the autonomy of constituent services. That is, though each service can be deployed

multiple times, but there is no mechanism to handle the dependencies exist among various

services execution, which may cause delay (or abandon in some cases) and push the system

into an inconsistent state. Thus, these systems need to be augmented with additional

mechanisms to handle failures, for instance, due to dependencies among the tasks. Such

mechanisms handle pre-defined scenarios. However, in real-world applications, it is hard to

envisage all kinds of failures and exceptions during application design. Thus, we introduce

configurable workflow engine control logic, which handles failures as well as exceptions,

rather than doing the same within user workflows.

2.5 Summary

In this chapter, we presented the existing works in the area of e-contact and workflow

management systems. Further, we discussed on finding inconsistencies in e-contract at

document level which has not been explored much in the past. Finally, we looked into the

work on exceptions and failure handling techniques that have been devised to ensure

consistency and successful execution of a workflow, but unfortunately most of the works

failed to address the issue by maintaining automated system and at the same time support

dynamic changes at run time. In the next chapter, we discuss about the issue of

inconsistencies in e-contracts and suggest a methodology to deal with the problem.

Page 22: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

22

Chapter 3

Consistency of an E-Contract

The previous chapter discussed about state-of-the-art which addresses the issue of

inconsistency in e-Contract. In this chapter, we address the issue of consistency in e-

contracts,develop a methodology fordetecting inconsistencies at document level and resolves

the overheadsaves the extra effortof finding out what went wrong when a contract workflow

is in execution.We introduce the concept of Semantic Dependency graphs and Contract

Elements Dependency graph which help us in detecting existing inconsistencies in the

document contract.

3.1 Problem Description

In this work, we consider e-contract documents, which are largely textual documents

describing the various details and dependencies in the contract. These dependencies and

constraints in e-contract can be stated differently in different parts of a large document.

Inconsistencies in a contract document leads to serious problems during its execution. For

instance, consider the segment of a contract document below:

“Party A supplies raw materials to Party B. Party B ships the finished

goods to Party C. Party B supplies raw materials to Party A. Party C sends

finished goods to Party D. Party supplying raw material has to be supplied

with finished goods.”

In the above, the first sentence reveals that Party A is the one supplying raw materials to

Party B, but in the third sentence it is Party B that is supplying raw material to Party A. There

may be an inconsistency if the raw material to be supplied is same. Also in this case ‘Party

supplying raw material has to be supplied with finished goods’,the finished goods have to be

supplied to Party A and Party B, in addition to Party D. Here, these contract semantics leads

to an inconsistency. Other examples of commonly occurring inconsistencies among

sentences include the following:

"All payments must be made in within 6 days after receiving the goods."

"non-payment for any goods immediately after goods received leads to penalty".

"Premier customer placing an order is entitled a 5% discount".

"No discounts for Special orders".

Note that the inconsistencies may arise for some specific situation(s). For instance, in the

above example, there is a conflict when premier customer places a special order.

In this work, we focus on finding inconsistencies among contractual sentences (terms and

conditions) that may arise. Further, we find the dependencies among contract elements such

as parties, activities, clauses and exceptions existing in the contract to determine the

Page 23: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

23

inconsistencies that occur in the contract document. We also present a methodology that

extracts the existing dependencies and detects inconsistencies (if any) from textual

statements.

Towards achieving this, we perform checks at two different stages:

(1) checking for semantic dependencies existing among the sentences of the document

contract

(2) checking conflict dependencies among contract elements present in the contract.

We evaluate our approach througha seller-buyer contract. Our approach helps in reducing

risk and improving support for handling e-contract business processes (ex. activities, clauses

and exceptions) during contract enactment.

3.2Seller-Carrier-Buyer E-Contract

We consider seller-buyer contract to explain our approach that deals with consistency and

dependency issues in the contract at the sentence level of a contract document.The primary obligations of the buyer are to pay the money and accept the goods based on the delivery terms; and that of the seller is to deliver the goods as per the buyer’s satisfaction. Principal parties are: buyer and seller. Contract activities: dispatch of goods by the seller, receipt of the goods by the buyer and payment for the goods to the seller. Clauses include delivery terms for the seller, which are negotiated and agreed upon by mutual consent of both the buyer and the seller.

Page 24: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

24

The same contract example is used in rest of the thesisas well for better explanation of the

suggested approach.

We take a specific contract of seller-buyer that is a Textile value chain contractSTC (State

Textile Corporation) which is a large scale industry. Weavers, they are part of small scale

industry and are responsible for preparing the garments or the gray cloth. The raw material to

the weavers is supplied by the Mills. The gray cloth or the garments prepared by the weavers

are sent to the Printers, they do the dyeing, designing and printing of the cloth. The finished

goods are then sent to the showrooms. The amount received after selling the goods is credited

to the parties (STC, Weavers, Mills, and Printers) and the payments are handled by the

banks. In this contract, the parties carry out the activities as per the contractual agreement

between them. There are seven bilateral contracts involved between the parties as given

below:

STC and Mills: STC needs to send raw materials to the weavers, so it buys the material from

the Mills. As it is an e-contract it has set of activities, clauses, payment, exception and

commitment.

STC and Weavers: The raw material is sent by the STC to the weavers. At times due to lack

of time or distance issue, materials are sent by the mills directly to the weavers. The weavers

process the raw materials into finished goods and send them back to the STC.

STC and Printers: The STC provides the finished goods to Printers i.e. supplied from the

weavers. The gray cloths are printed and send back to the STC for selling purpose.

STC and Showrooms: The finished ready to sell goods are sent to the Showrooms.

STC and Organizations: There are organizations that directly purchase the materials from

the STC.

Inter-bank: The payment between the parties is done by the banks.

Bank and Customer: For the transfer of payments or to avail the loans the parties need to

have a bank account so as to ease the transaction.

The contract document comprises of English sentences. From the contract document, we

extracted the following S0 to S10 sample sentences:

S0 : STC buys the material from the Mills.

S1 : STC needs to send raw materials to the weavers,

S2 : The raw material is sent by the STC to the weavers.

S3 : At times , materials are sent by the mills directly to the weavers.

Page 25: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

25

S4 : The weavers process the raw materials into finished goods and send them back to

the STC.

S5 : The STC provides the finished goods to Printers that is supplied from the

weavers.

S6 : The gray clothes are printed and send back to the STC for selling purpose.

S7 : The finished ready to sell goods are sent to the Showrooms.

S8 : There are organizations that directly purchase the materials from the STC.

S9 : The payment between the parties is done by the banks.

S10 : For the transfer of payments or to avail the loans the parties need to have a bank

account so as to ease the transaction.

The activities, parties, clauses and exceptions of STC contract are represented below:

Activities:

A1 Placement of orders by the buyer.

A2 Get the orders from the buyer.

A3 Processing of request by the seller.

A4 Sending bid to the carrier.

A5 Response of carrier for the bid.

A6 Choosing of carrier by the seller.

A7 Shipment of goods to the buyer.

A8 Damaged goods are returned to the seller.

A9 Count the number of desktops ordered.

A10 Do the payment 1.) in cash, pay it to the

carrier, carrier will pay it to the seller.

2.) in credit payment pay directly to the seller.

Clauses

C1 Payment will be done using if the account

is a valid account.

C2 Shipment of the goods from one party to

another should not exceed 2 working days.

C3 The quality of the goods should be

maintained.

C4 Payment will be deducted by 10%, if the

time limit exceeds.

C5 The processing of order should not

exceed 5 working days.

C6 Orders received can be rejected if they do

not meet the standards fixed by the

inspection team.

Page 26: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

26

Exceptions are deviations from normal behavior of workflows which if not handled lead to

abnormal termination of workflows. Partial (or unsuccessful) workflow executions due to

such terminations keep the workflow into an inconsistent state. On the other hand, outcome

of a workflowexecution does not satisfy the end user due to improper design (model) of

workflow as per the business process specification. This is because of inconsistent statements

specified in the business process specification. That is, the execution is successful, but not as

desired.

In the next section, we outline our approach to ensure consistency in a contract document by

determining dependencies in the contract document.

3.3 Methodology for ensuring consistency

Our main focus is to determine whether a contract document is consistent or not. We first

detect the inconsistencies in the contract document at the semantic level that islinguistic

interpretation of sentences (at English language level) and then find out non-conflicting

dependencies among contract elements.

We summarize the methodology in Figure 3.1 represented below.

Exceptions

E1 Time limit exceeded during shipment.

E2 Time limit exceeded while supplying of raw material.

E3 Processed goods not up to the mark.

E4 Goods damaged while processing.

E5 Time limit exceeded while supplying of weaved material.

E6 Invalid account during fund transfer.

E7 No sufficient balance during fund transfer.

Page 27: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

27

Figure 3.1An overview of the procedure for ensuring a consistent contract

In this figure we represent two stages of ensuring consistency in the contract:

Step1: Mark POS tags of sentences and construct Sentence dependency graphs. After

constructing the graphs compare the sentence dependency graphs to check for incorrect

semantics.

Step 2: Construct Element Dependency graphs corresponding to each element of e-Contract.

After this is done we construct contract elements dependency graphs which represents all

dependencies that exist within elements.

We will describe the individual steps in more detail in further sections.

3.3.1 Semantic Dependency Check

We check the semantic dependencies between two sentences in the contract document.

Semantic dependencies are the dependencies that exist among English sentences in such a

way that a new sentence should not contradict other sentence(s). Any two conflicting

statements can be termed as contradictory.Two statements are said to be conflicting if both

statements provide opposite facts/meaning for a given object (or task),To check for

contradictory statements the dependency graph of sentences is compared. The sentences are

said to be inconsistent when there is a contradictionin dependencies of two sentences.

For finding semantic dependencies, we first construct Sentence Dependency Graphs (SDGs)

from contract sentences by performing Parts Of Speech (POS) tagging on sentences. SDGs

Page 28: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

28

are constructed using tokens of sentences (or words) in which vertices represent the tokens

and the edges represent the relations between the tokens.

Each token is linked with other tokens on which it is dependent. We store these dependencies

in a dependency table. Two dependency graphs are compared to perform dependency check.

If there is a match in tagged_token, then we compare the subgraphs at every nodeto check for

contradiction. These two sentences are said to be inconsistent, if there is a conflict

dependency between any two nodes. We usedWordnet [19] to map similar concept words

into a single word. The complexity of this approach is O(n log n) in worst case where n is the

number of sentences.

There may be cases when there is a logical error in the sentence of the contract and the

sentence faces no clash with another sentence but yet it is logically incorrect These kinds of

inconsistencies are not dealt using this check as they would be handled by a domain expert.

Consider the following two sentences from the example STC contract :

S2 : The raw material is sent by the STC to the weavers.

S3 :At times of emergency,materials are sent by the mills directly to the weavers.

We first mark POS tags for both these sentences and then we compare their dependency

graphs.

S2: The/DT raw/JJ material/NN is/VBZ sent/VBN by/IN STC/NNP to/TO

weavers/NNS

S3: At/IN times/NNS of/IN emergency/NN, materials/NNS are/VBP sent/VBN

by/IN the/DT mills/NNS directly/RB to/TO the/DT weavers/NNS

The semantic dependency graphs for S2 and S3 are shown in figure below.

Figure 3.2: Representing Sentence Dependency Graphs for Sentence S2 and

S3 respectively

Page 29: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

29

We start comparing from Verb that is attached to root. In this case it is ‘sent’. Now we

compare the dependencies of all tokens (listed in dependency table 3.2).

In sentence S2, dependencies of sent are: “materials”, “by”, “to”.

In sentence S3, dependencies of sentare: “materials”, “by”, “to”, “at”.

Finally, we check the dependencies of sent in both S2 and S3 for any conflicts. Note that

materials are sent to weavers in both the cases. In S2, it is sent by STC whereas in S3, it is by

mills. If there was no ‘at’ present in S3 with ‘sent’ then the sentences would have been

inconsistent. Since it is mentioned that “At times of emergency, materials are sent by mills to

weavers” and if we refer to dependency table Table3.2, the entry for S3 indicates that sent

has a dependency on ‘at’ and ‘at’ is further dependent on ‘times’. So these two sentences turn

out to be inconsistent. In the similar way, we perform consistency check between other

sentences using their SDGs.

Table 3.1. Parts of speech tags

Tag Signifies

SNo Sentence Number

NN Noun

NN_Mod Noun Modifiers

VB Verb

VB_Mod Verb Modifiers

IN Preposition

IN_Mod Preposition Modifiers

JJ Adjective

JJ_Mod Adjective Modifier

Therefore, the procedure is:

1.) Compare the two SDGs starting from root. Root is connected to main verb in most of the

sentences. Sentences which do not have main verb have helping verb connected to root.

2.) We compare the dependencies of two dependency graphs, if the dependencies for two

graphs are same and nouns are different, then there is a chance of inconsistency because

probably same task has been assigned to different persons and hence it needs to be cross-

checked for inconsistency.

3.) Else, if dependencies are same and nouns are same, then both sentences are consistent.

Page 30: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

30

4.) In casethedependencies are different, then we consider two sentences as different and

hence it is marked as consistent at this stage.As there should not be a chance of both

sentences to be inconsistent due to different dependencies.

We tried our approach on 3 e-contracts where it helped us to find a couple of inconsistencies.

3.3.1.1 Semantic Dependencies in the text We represent the contract sentences in a graph where vertices represent the sentences and

edges represent the transitions. One vertex of the graph corresponds to one single sentence.

Generally different people have different ways of interpreting a document. So, we can locate

different paths from start to end and also keep a check on dependencies between sentences.

We mark the Parts of Speech tags of the sentence and we maintain a Sentence Dependency

table with fields shown in table 3.1.

The dependency table serves as a mirror to the sentence since it conveys about the

dependencies of each word present in the sentence.

It represents the dependencies of each token of a sentence. Using this information, we

construct Sentence Dependency Graph for each sentence (using Stanford Parser). For each

sentence, we check whether the term attached with root of Sentence Dependency Graph

belongs to the same Wordnet as the other sentence. If it is Yes then we say that the sentences

are semantically similar and then compare their SDGs .

If we find dependency conflicts, then we report inconsistency, else we mark it as consistent.

The conflicts are determined by comparison of SDGs of two sentences. The algorithm for

consistency check is shown in figure 3.3 below:

Algorithm: To check consistency in Semantic Dependency Graph

1: Input: SNo containing all enumerated sentences of the document

2: Output: True if consistent False if inconsistent

3: SDGCheckconsistency(SNo){

4: for Si and Sj € SNo:

5: if adj_n_Si&&adj_n_Sj € same wordnet W:

6: Then compare SDG(Si,Sj);

7: if there is a dependency clash:

8: Return False;

9: }

Fig. 3.3 Algorithm for consistency check in SDG

According to the algorithm in Figure 3.3, it takes input as sentences enumerated as S0 to Sn.

Page 31: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

31

The output will give us whether a sentence is consistent or it has become inconsistent by

having a contradiction with another sentence. According to algorithm we take up each

sentence and compare their dependency graph elements for Si and Sj and check if both

belong to same wordnet W that meansthat both words can be used interchangeably, we

further compare their Semantic dependency graphs. To check SDGs we compare their

dependencies. If noun is same and dependencies are conflicting then the sentences are

marked inconsistent else if noun is different but dependencies are same, in this case also

sentences are marked inconsistent else if nouns and dependencies both vary the sentences are

consistent.This approach has been worked out with various sentences of a contract and

sentences tend to follow this logic. We have used this approach on 3 other contracts and it

has helped us find inconsistencies present in the documents.24 statements are predicted as

inconsistent using our system. Similarly it was found that 6 other statements were

inconsistent but our system could not capture them as there was no dependency clash that

was occurring in these 6 statements.

For our example contract [13], we can get the following Parts of Speech tags for

sentences (the tags have been given according to Penn Tree Bank notation [12]) :

S0 : STC/NN buys/VB the/DT material/NN from/PR the/DET Mills/NN

S1: STC/NNP needs/VBZ to/TO send/VB raw/JJ materials/NNS to/TO the/DT weavers/NNS

S2: The/DT raw/JJ material/NN is/VBZ sent/VBN by/IN STC/NNP to/TO weavers/NNS

S3: At/IN times/NNS of/IN emergency/NN , materials/NNS are/VBP sent/VBN by/IN the/DT mills/NNS directly/RB to/TO the/DT weavers/NNS .

S4: The/DT weavers/NNS process/VBP the/DT raw/JJ materials/NNS into/IN finished/JJ goods/NNS and/CC send/VBP them/PRP back/RB to/TO the/DT STC/NNP

S5: The/DT STC/NNP provides/VBZ the/DT finished/VBN goods/NNS to/TO Printers/NNP that/WDT is/VBZ supplied/VBN from/IN the/DT weavers/NNS

S6: The/DT gray/JJ clothes/NNS are/VBP printed/VBN and/CC send/VBP back/RB to/TO the/DT STC/NNP for/IN selling/VBG purpose/NN

S7: The/DT finished/JJ ready/JJ to/TO sell/VB goods/NNS are/VBP sent/VBN to/TO the/DT Showrooms/NNS

S8: There/EX are/VBP organizations/NNS that/WDT directly/RB purchase/VB the/DT materials/NNS from/IN the/DT STC/NNP

S9: The/DT payment/NN between/IN the/DT parties/NNS is/VBZ done/VBN by/IN the/DT banks/NNS

S10: For/IN the/DT transfer/NN of/IN payments/NNS or/CC to/TO avail/VB

Page 32: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

32

the/DT loans/NNS the/DT parties/NNS need/VBP to/TO have/VB a/DT bank/NN account/NN so/RB as/RB to/TO ease/VB the/DT transaction/NN

We represent the dependencies of these sentences below in Table 3.2.

Table 3.2Sentence Dependency Table with POS tags of the words

S

No NN NN_

Mod VB VB_Mod JJ JJ_ Mod IN IN_Mod

S0 STC Buys Buys Material From mills, material

Mills From

S1 STC Needs Sends to, material Raw Material To needs, sends

Weavers To Needs STC,to

S2 STC By Sent material, by,to Raw Material By STC, sent

Weavers To To

S3 Mills By Sent material, by,at,to - - To weavers, by

At times,sent

Emergency Of Of Times,emergency

By mills, sent

S4 Weavers Process Process into, material, send, weavers

- - Into finished, process

Finished Provides, goods

STC To Send To, process

S5 STC Provides Provides STC , finished - - To Printers, supplied

Printers To Finished Provides , goods

Weavers From Supplied To , from From supplied, weavers

S6 Printers Printed Printed Clothes, send Gray Clothes For send , selling

Send For, to, printed

STC To Selling For, purpose To send , STC

S7 Showrooms To Finished Goods, sent To showrooms, sent

S8 Organization Purchase Purchase material, organizations

From STC, materials

STC From

S9 Parties Between Done Payment, by Betw-een

Parties, payment

By banks, done

S10 Parties need, to Need to, parties - - To have, bank

Bank account, have

To need, have

Account Bank Avail to, loans - -

Page 33: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

33

After checking for the dependency conflicts, we check the inconsistencies for the example of

STC contract. In the above example contract, there are no inconsistencies. Suppose we

modify two sentences S2 and S3 in the contract example as below and apply our procedure

for inconsistency checks:

S2 : The raw material is sent by the STC to the weavers.

S3 : At times, materials are sent by the mills directly to the weavers.

Their semantic dependency graphs (SDG’s) are shown in Figure 3.2. If we remove At times

of emergency from S3 (as we know that “at” is an extra dependency in graph on S3) we get

the two sentences as :

S2 : The raw material is sent by the STC to the weavers.

S3 : Materials are sent by the mills directly to the weavers.

In the new SDGs, by comparing these two graphs, we get,

In S2 , sent is dependent on “materials” , “by” , “to”

In S3 , sent is dependent on “materials” , “by” , “to”

Further, there is a dependency conflict of ‘by’.

In S2, by is dependent on STC while in S3, by is dependent on Mills and rest other

dependencies are same. So we can infer that S2 and S3 are inconsistent and there is an

inconsistency at the semantic level itself in this contract.This is ‘OR’ condition only, i.e, S2

OR S3. However, inconsistency may arise when the party Mill is asked to send the material

to both STC and weavers.

We implemented a visualization using gephi tool to show the sentences derived from our

textual contract file. Here, the nodes with same verb and different dependencies having a

conflict are marked in red to represent inconsistency, whereas the consistent nodes are

marked in green color. We construct a visualization for our example contract sentences S0 to

S10 in figure 3.4 where nodes represent the sentences and the edges represent that one is

moving from a sentence to other sentence. Since all sentences get executed sequentially there

exists a dependency among the sentences. The main motivation behind representing a graph

structure is to show dependency of one sentence onto other during execution.Since there are

no conflicts of dependencies in SDGs, sentences are consistent and hence they are marked in

green.

Page 34: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

34

Fig. 3.4 Representing Sentences of SDG(Sentence Dependency Graphs)

3.3.2 Data Dependencies in terms of contract elements

In the previous section, we tracedthe contract document for inconsistencies. However, a

contract can have lot of inter- and intra-dependencies among contract elements. For

successful enactment of an e-contract, we need to capture and handle such dependencies.

In our approach, intra-dependencies are captured in terms of element specific Element

Dependency Graphs and inter-dependencies are captured in terms of Contract Elements

Dependency Graphs. In this work, we considered four contract elements namely parties,

activities, clauses and exceptions.

We find theContract elementsdependencies at the initial level for smooth enactment of the

contract.

The dependencies in an E-contract enactment that need to be satisfied generally include:

1. Activities need to be executed by different parties autonomously and in a loosely coupled

fashion.

2. Clauses are to be associated with an activity and are to be satisfied for execution.

3. In case of clause violation, exceptions need to be handled.

These dependencies are for ensuring consistency in an e-contract. Now we use dependency

graphs to check for these dependencies. To perform the check, we follow a bottom up

approach where we find intra dependencies among elements. We merge all these

dependencies and get an inter-dependency model of the contract document.

Page 35: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

35

The algorithm for the bottom up approach is shown in the following figure 3.5.

Algorithm : To construct Element Dependency Graph

1: Input : List all the sentence numbers

2: Parties[ ]={P1,P2,P3…}

3: Activities[ ] ={A1,A2,A3…}

4: Exceptions[ ]={E1,E2,E3..}

5: Clauses[ ]={C1,C2,C3..}

6: Output : Element Dependency Graph

7: ContractElementsDependency( ){

8: //Construct PartiesDependencyGraph where Parties

9: are Vertices and SNo are edges

10: for Parties Pi and Pj in Parties [ ]:

11: if Pi is dependent in Pj in some sentence SNo:

12: add an edge from Pi to Pj

13: end for

14: //Construct ExceptionsDependencyGraph where Exceptions

15: are Vertices and SNo are edges

16: for Exceptions Ei and Ej in Exceptions [ ]:

17: if Ei is dependent in Ej in some sentence SNo:

18: add an edge from Ei to Ej

19: end for

20: //Construct ClausesDependencyGraph where Clauses

21: are Vertices and SNo are edges

22: for Clauses Ci and Cj in Clauses [ ]:

23: if Ci is dependent in Cj in some sentence SNo:

24: add an edge from Ci to Cj

25: end for

26: //Construct ActivitiesDependencyGraph where Activities

27: are Vertices and SNo are edges

28: for Activities Ai and Aj in Activities [ ]:

29: if Ai is dependent in Aj in some sentence SNo:

30: add an edge from Ai to Aj

31: end for

32: }

Fig. 3.5 Algorithm for constructing EDG

Page 36: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

36

We explain our approach using STC contract. The following table (Table 3.3) shows the

contract elements:

Figures 3.6 to 3.9 show the dependency graphs for parties, exceptions, activities and clauses

respectively.In the dependency graphs an edge represents that one node is dependent on

another node in a particular sentence.

Table 3.3. Dependencies in the STC contract

Sentence No. Related Contract Elements

S0 P4 A1 A2 C4 C6 E1

S1 P1 A1 A2 A4 C2 C3

S2 P1 A12 A13 C2 C4

S3 P4 A7 A8 C2 C3 E1 E2

S4 P3 A10 A11 C5 C6 E3 E4

S5 P1 A14 A16 C5 C6 E4 E5

S6 P2 A17 A18 C2 C3 E1 E6

S7 P1 A16 A17 C2 C4

S8 P1 A18 A19 C3 C6

S9 P6 A19 A20 C1 C4 E6 E7

S10 P6 A20 A19 C1 C4 E6 E7

Page 37: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

37

Dependency graph for Parties:

Dependency graph for Exceptions:

Fig 3.6 : Representing dependency

graph for parties

Fig 3.7 : Representing dependency

graph for exceptions

Page 38: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

38

Dependency graph for Activities:

Disconnected graph means that there are activities that are independent of each other.

Dependency graph for Clauses:

Fig 3.8 : Representing dependency

graph for activities

Fig 3.9: Representing dependency

graph for clauses

Page 39: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

39

At this stage, sentences of the contract reveal that:

(1) which parties are dependent, (2) which activities are dependent

(3) what clauses are dependent

(4) which exceptions are dependent .

Since, we move in a bottom up manner, we first look at the contract elements and their

dependencies at the sentence level. A sentence in the contract document may bind contract

elements (ex. parties, activities, clauses, exceptions) together. In this step, we progress from

individual dependency graph for each contract element called as Element Dependency Graph

(EDG) to a contract-level dependency graph called as Contract Elements Dependency Graph

(CEDG). CEDG helps in determining whether the contract document is consistent or

not.CEDG can be treated as union of all EDGs where in an edge is added between two

different contract elements if there is a dependency identified in a sentence and the edge is

labeled with corresponding sentence number. Figure 3.10 shows the algorithm for

construction of CEDG.

Algorithm: Constructing Contract Elements Dependency Graphs 1: Input: SNo [ ] = List of all sentence numbers

2: EDG’s of all contract elements

2: Output: Contract Elements Dependency Graph

3: Contract ElementsDependencyGraph ( ):

4: while(SNo is not visited):

5: for x € EDGi and y € EDGj and i≠j:

6: if x is dependent on Y for some SNo:

7: add edge from X to Y

8: endfor

Fig. 3.10Algorithm for constructing CEDG

Table 3.3 shows dependencies extracted from STC contract document. For any two

sentences, say S0 and S4 in the example, we check their dependencies listed in table 4.

Consider a contract element activity. From the dependency table, we know that S0 is

dependent on A1 and A2. We revisit the activity-EDG and check the connected nodes of A1

and A2, and their neighbors. For instance, A2 is connected to A4. So, we can infer that a

sentence that follows S0 has a dependency on A4. The sentence following S0 is S1 and S1

has a dependency on A4 also. So we bring in S1 after S0 and in this way we find the

sequence in which sentences will come by looking at the EDG’s and CEDG’s together .

Similar exercise can be done using other contract elements. Therefore we can say that CEDG

guarantees consistency.

Page 40: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

40

3.3.3 Visualization of CEDG

We used gephi tool [29] for visualization. We depict the data dependencies existing in the

contract elements in the form of a 3-dimensional visualization that gives us an interface in

which a user can navigate. Further, for each sentence one can see its dependencies

corresponding to parties, clauses, exceptions or other contract elements.

For the STC contract dependency table, we have the visualization shown in figure 3.11. In

the visualization shown in figure 3.12 the dependency network consists of contract elements:

Parties, Activities, Exceptions, Clauses and Sentences. Parties are marked in Yellow,

Exceptions in Green, Clauses in Magenta, Sentences in Blue and Activities in Red. We can

navigate on each node and check for its dependencies. For instance if we see in Fig 3.12,

dependencies of S7 have been highlighted. S7 is dependent on Activity 16 and Activity 17

(activities marked in red). Also it has dependency on Clause 2 and Clause 4 (clauses marked

in Magenta) and on party 1 (parties marked in yellow).The interactivity features of our

visualization approach for CEDG helps in focusing a portion of a graph (corresponds to a

portion of an e-contract document) that facilitates a clear visibility of complex inter-

dependencies among contract elements.

Fig.3.11 Depicting dependencies of between different contract elements

Page 41: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

41

We mark inconsistent statements derived from SDG in CEDG. The elements that are

dependent through inconsistent statements may result in conflict dependency. Further, we

also infer the dependencies that show conflicts between two different contract elements due

to contractual relationships. Examples include an activity without any dependent party, a

clause without any dependent activity and two dependent clauses do not have a common

activity. Such conflict dependencies lead to the e-contract document inconsistency.

3.4 Summary

In this chapter, we presented an approach to resolve the e-contract inconsistency

issues at the document level and thereby reducing the failure rate of the project arising due

to dependencies and semantic dependencies existing in the text document contract. Our

approach checks dependencies at two levels: semantic level and contract elements level.We

constructed two graphs namely Sentence Dependency Graph and Contract Element

Dependency Graph. These constructs helps in ensuring that sentences are semantically

correct and also to find dependencies among contract elements. Further, these two checks

are needed as there may exist a case in which document is inconsistent at the semantic

level itself and we spend a lot of time and effort in execution of the contract and later

on it fails. The presented approach checks that the document is free from all semantic

inconsistencies and thereby progresses in a stepwise manner to ensure smooth enactment

of the contract.In the next chapter, we deal with failuresthat results in during the execution of

e-contract workflows.

Fig. 3.12 Depicting a Contract Elements Dependency Graph showing dependency of a

sentence (Blue) on Clauses(Magenta) and Activities(Red) and Parties(Yellow)

Page 42: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

42

Chapter 4

Failures in execution of an E-Contract

In this chapter, we represent how to use and modify meta execution workflows to

successfully execute the workflows without failure. Meta execution workflows allow

modification of workflow execution engine process to support design and run time changes.

We present a meta execution engine which helps in executing workflows in a seamless

manner by handling failures, and thereby ensuring consistency in the process of execution.

We represent workflow execution engine and other components of WFMS in terms of

workflows. The proposed system allows specification, instantiation, modification and

execution of workflows on-the-fly with less human intervention. We also present the meta

execution environment that facilitates workflow handling and database support. The

proposed system is very generic and adaptable to a variety of application failures.

4.1 Problem Description

Handling failures leads to escalations and may require experienced personnel to understand

the failure and take a decision based on the status of current execution. Exceptions and

failures seem to be similar but differ significantly from each other. For example, exceptions

may be caused by the scenarios which are not considered by current process design. On the

other hand, failures may be caused by incorrect process design. While we define exceptions

as the deviations from normal behavior of workflows that produce unintended results, which

can be handled by exception handlers properly; whereas we define failure as the inability of a

workflow to perform the required tasks with the given specifications within current execution

environment. For example, in a buyer-seller contract, if goods are not received in a stipulated

time period, then it marks an exception. On the other hand, a buyer cancels the order after the

seller ships the goods mark a failure of execution as there is no laid out procedure to handle it

at that point of time and it may undergo escalation.

Since the root causes for failures and exceptions are different, they need to be handled

differently. In this work, we identify the scenarios where a traditional workflow execution

engine needs additional support to handle failures and resume the execution seamlessly.

Page 43: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

43

4.2 Background: Meta Execution Workflow (MEW)

Meta Execution Workflows (MEWs) represent the working of a workflow engine as a

workflow. The concept of defining workflow engine as a workflow is used to increase the

flexibility of modifying execution engine to support evolving application needs. Also, MEW

enables specification of the tasks to be executed by the workflow engine. Workflow

execution engine that is driven by MEW helps in specification and execution of workflows

on-the-fly according to the changing requirements of an application. Our system is designed

to handle failures that occur during workflow execution in order to successfully execute

them.

We extend the capabilities of MEW to handle failures during the execution process by

considering context. Figure 4.1 shows high-level view of MEW-driven workflow execution

engine.

MEW can be instantiated and coupled with user workflows to execute as well as dynamically

update workflows (if required).

Fig. 4.1. MEW driven Workflow Execution Engine for failure handling.

Workflow Execution Engine

Instantiate

Specify,execute, modify

Execute, modify, suspend, Resume, abort

User

Workflows

Specify, Execute

Execution

EngineWorkflow

Instantiate

Meta Execution Workflow Modify/Creat

e

User Workflow Instances

Meta Execution Workflow Instances

Page 44: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

44

We deal with the execution of workflows with the flexibility to intervene in the control

flow process on the basis of context of a workflow. We further standardize the automation

processes of meta execution engine for (i) handling the control flow process, (ii) selection of

appropriate workflow on the basis of execution context, (iii) handling exceptions that occur

while execution, and (iv) handling failures that may occur while execution.

This chapter presents an approach to allow for configurable workflow engines to handle

exceptions and failures.

4.3Functional aspects of the system

We create MEW as a workflow where the tasks are defined and executed using a PSA. The

functional aspects of the proposed system are described below.

(i) Control flow process of a workflow

In most of the existing workflow engines, the logic (control and data flow) of workflow

engine was hardcoded. That is, there are finite ways in which workflow engine can execute a

workflow instance, and any other way of executing the workflow instance will require

modifying the workflow engine. For instance, incorporating new capabilities/features (such

as, define compensation handlers, workflow schema evolution, and managing inter and intra

workflow dependencies) into WFMS needs modification of traditional workflow engine.

This necessitates that there should be a mechanism thatcan incorporate pre-defined or newly

specified processes and execute them. Our system hascontrol flow processes to support

specification, execution and control of tasks to be executed and deals with many kinds of

failures in execution.

(ii) Select a workflow on the basis of context of execution

While executing workflows there are multiple instances running and there may be a situation

where an instance requires more resources or PSAs. The database is updated with these

requirements in terms of states of individual instances. The concept of states (such as,

executing, completed execution, failed task) forms a basis for deriving execution context in

our system, and MEWs facilitate selection of appropriate workflows depending on context of

failure that occurred.

Page 45: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

45

(iii) Deal with exceptions that occur while execution

Workflow instances may fail due to exceptions (ex. insufficient resources that are required by

a task). Our system also handles such exceptions.

(iv) Deal with failures that may occur while running parallel instances

There can be many instances of different workflows executing at the same time. This may

cause conflicts among tasks of different workflow instances resulting in failure of workflow

instances.

The five states for workflow instances are as follows (see figure 4.2):

Start: A start state indicates that workflow instance is currently being executed.

Finish: Finish state indicates that workflow instance has successfully completed

execution.

Failure: A failure state indicates that workflow instance has failed to execute.

Restart: Restart state indicates that a failed instance has been restarted its execution (after

required adjustments)

Cancel: A cancel state indicates that workflow instance has been withdrawn by the

specifier manually and cannot be executed now.

We represent the states namely start, finish, failure, restart and cancel as 0, 1, -1, 2 and -2

respectively in the runtime database.

4.4 Design of the system

Page 46: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

46

Figure 4.3 shows high-level view of our proposed system. There are three major components

of meta execution engine:

1.Workflow Specification,

2.Matchmaker and

3.Workflow Execution.

Fig. 4.2.State Diagram of Workflow Instances

Start

Restart Finish

Cancel

Failure

Page 47: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

47

The Workflow specification component is used to specify the MEW as well as user

workflows. Matchmaker component contains list of capabilities of each PSA.

At the execution step, matchmaker assigns different roles to PSAs at run-time depending on

availability of a particular agent at that required time and its capability. Further, after tasks

are assigned to PSA, a MEW is selected and tasks are executed one by one by the Workflow

Execution component. Both workflow specification and workflow execution components

Coordination and ensuring consistency before and after failure

Fig. 4.3 High-level Components for FRWS

Workflow Execution

Assignment of tasks to PSAs

Runtime

Database Tasks

Post events

Task Dispatcher

State Updation

MEW task routines

Workflow

Specification

User Workflow

MEW

Match

Maker

Knowledge base

Metadata (Specification database)

Capability data for PSAs

Page 48: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

48

coordinate each other for ensuring consistent execution with respect to specifications and

also during recovery when a failureoccurs. All the workflow specifications (MEW and user

workflows) are stored in specification database (metadata). A knowledge base holds various

definitions of MEWs so that in case of failures or exceptions the execution can be completed

using one of the existing MEW. Run-time information of all workflow instances is stored in

runtime database which is populated while execution. Task Dispatcher picks up tasks from a

pool of ready to execute tasks and is responsible for scheduling the tasks. It is also

responsible for dispatching task instances for execution. Tasks are logged when they are

being executed. The task log contains information pertaining to execution of each task (such

as task name, input and output parameters of the task, and status of the task execution).

There are three types of users in our system: Workflow specifier, Manager and regular User

(PSA).

1. Workflow Specifier: The specifier can specify a MEW and also can select appropriate

MEW from existing MEWs. Initially, Workflow specifier upload the tasks as specified

in the workflows as well as assign PSA to tasks in the system.

2. Manager: A user in this role can create, edit and evaluate workflow instances, and

have access to different workflow definitions specified by various users and can

instantiate new instances of workflows, different workflow definitions specified by

various users and can instantiate new instances of workflows.

3. User (PSA): This kind of user cannot specify or instantiate workflows, but can execute

task instances from its worklists.

We represent the activities of workflow specifier and manager in terms of a workflow as

shown in figure 4.4(a) and figure 4.4(b) respectively.

Page 49: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

49

Fig .4.4Representing (a) workflow specifier and (b) manager as workflowsfor admission workflow

The workflow specifier can either instantiate a MEW instance by making use of existing

MEW or add new MEW:

1. Add a new XML file specifying a new MEW workflow.

For example,

a) Start -> Get a task -> Stop, and

Specifier

Add MEW instance Add new MEW Workflow

(a)

Specifier Add new Workflow

Start Insert Review Stop

Get a task

Check Resources

Execute Task

(b)

Page 50: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

50

b) Start -> Get a task -> Check resources -> Execute task ->Stop (see figure 4.5)

represent two sample MEW workflows. This allows the manager to use one of the

MEW and accordingly add instances of workflows.

2.

Add

new

workflow instances, as per the system requirement. For example, for admission workflow in

University system,

a.) Start -> Insert the application details -> Stop

b.) Start -> Insert the application details -> Review the application -> Send mail for

acceptance -> Stop.

Manager adds new instances of the workflows. Whenever a manager adds a new instance of

any workflow, a MEW instance runs in the background and coupled with each task of the

workflow. It checks whether each task of the workflow satisfies the MEW workflow, and

accepts or rejects the tasks accordingly. If the task fails at any instance, for example, the task

does not have sufficient resources to fulfill its need, then the system checks for different

levels of failure and performs necessary actions corresponding to each type of failure. The

process continues till the task instance does not fail.

Levels of failure are represented in the following table 4.1.

Table 4.1. Categories of failures handled by execution engine

Fig. 4.5 A Sample MEW

Check Resources Execute Task Stop

Start

Get a Task

Page 51: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

51

4.5 Implementation Aspects

We implemented the proposed system using PHP and MySQL. Users can specify MEW as

well as user workflows, create instances of workflows, check their worklists and execute

tasks. A meta execution workflow engine has task scheduler and workflow specifier (figure

4.6). The user can add workflow instances in order to use that workflow and allocate work to

various agents according to their capabilities mentioned in the uploaded XMLs. As an

example, we take seller buyer contract and represent its tasks in fig4.6.

The system can incorporate dynamic changes in the environment and hence updates the

tables whenever changes in problem solving agent or workflow are required. The workflow

Level No. Resolved by Handled by

0 Retrying the workflow task that caused failure Machine/Human

1 Adding and/or Changing the PSA Machine

2 Changing the capabilities of PSA Machine/Human

3 Changing the task Human

4 Adding a new task Human

5 Changing workflow path Machine

6 Add new workflow path Human

7 Changing the MEW used to execute the

workflow instance

Machine

8 Adding new MEW and use it to execute the

workflow instance.

Human

9 Executing workflow instance off-line by using

other means

Human

Page 52: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

52

specifier uploads a MEW or may choose an existing workflow from the knowledge base. The

MEW (example shown in figure 4.5) is uploaded in the form of XML file in which the

individual tasks are specified in the following manner:

<task1>

<id> 1 </id>

<task_name> start </task_name>

<event>get_task</event>

<agent> human </agent>

</task1>

Each task has certain attributes such as id, name, event and agent, which can perform that

task (human or system). The specifier can also upload new workflows to be executed.

Page 53: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

53

Fig. 4.6 : Tasks of buyer seller contract

Specification file for PSA is shown below:

<psa1>

<id> 1 </id>

<name>krishan</name>

<post> seller</post>

<user_id>krishan</user_id>

<password> **** </password><!--randomly generated-->

<cap1>process_request</cap1>

Page 54: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

54

<cap2>send_bid</cap2>

<cap3>choose_carrier</cap3>

<priority> 2</priority>

</psa1>

Here, cap1, cap2 and cap3 tags represent capabilities possessed by the corresponding

PSA. A PSA can have many capabilities. The priority signifies the level of PSA in the

organization hierarchy. The workflow specifier uploads all these details.

This XML is stored in database where the data of PSAs gets stored as shown in table 4.2.

For buyer seller workflow manager and

specifier are mentioned as workflows in figure 4.7.

For the workflow mentioned in figure 4.6, the

tasks are allotted to various agents depending on

TABLE 4.2 : PSA AND THEIR CAPABILITIES FOR SELLER-BUYER E-CONTRACT

Id Name Post user_id Password Capabilities Priority

1 Krishan seller Krishan 123krish Process request,sendbid,Choose carrier 2

2 Vishnu buyer Vishnu Vish1098 Place order,getorder,count desktops 1

3 Narayan carrier Narayan Narayanhu Respond for bid 3

4 Kumar seller Kumar Kumaryun Process request,sendbid,Choose carrier 2

Fig. 4.7 Representing as workflows the tasks done by

(a) workflow specifier and (b) manager for sellerbuyer buyer

Page 55: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

55

their capabilities, which are mentioned by the specifier. The role of each agent, assigned on

the basis of capabilities that an agent possesses, is displayed in the worklist of that particular

agent. When matchmaker executes, the tasks are allocated to different PSAs. In table 4.2,

Krishan and Kumar have overlapping capabilities but the priority level is same for both of

them, so allocation of task is done randomly. After task allocation is done and Matchmaker

executes and selected tasks of MEW are executed.

During execution, there may be instances that are running in parallel. The database is

updated in case of instance failures whose status is marked as -1.

The table representing ECA rules is shown below :

An ECA (event-condition-action) rule is triggered based on the event occurred (see Table

4.3), and the necessary workflow is initiated accordingly.

TABLE 4.3 : TASK, CONDITIONS AND EVENTS FOR BUYER SELLER E-CONTRACT

ID Task_name Condition Input Output Event

1 Place Order NULL NULL NULL Get Order

2 Get Order NULL NULL NULL Process Request

3 Process Request NULL NULL NULL Send Bid

4 Send bid NULL NULL NULL Send Response

5 Send Response NULL NULL NULL Choose Carrier

6 Choose Carrier NULL NULL NULL Ship goods

7 Ship goods NULL NULL NULL Check if damaged

8 Check if damaged Yes NULL NULL Return

9 Check if damaged No NULL NULL Count Desktops

10 Return NULL NULL NULL Stop

11 Count Desktops NULL NULL NULL Make Payments

12 Make payments NULL NULL NULL Credit/Cash

13 Credit NULL NULL NULL Stop

14 Cash NULL NULL NULL Stop

TABLE 4.4 : REPRESENTING DATABASE UPDATES AT RUNTIME FOR BUYER SELLER E-CONTRACT

Page 56: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

56

When two or more instances run in parallel and any one instance fails, then runtime database

is updated with a status -1 and we try the levels in sequence order for dealing failures. Level

0 is retrying to run the instance. If retrying fails, then we proceed with level 1 which retries

the task by allocating it to another PSA. If the execution is not successful, we continue to

higher levelstill the failure is handled and instance is successfully executed.

Table 4.4 represents status of instances running for each task where i1 to i13 represent the

instance numbers and 0 indicates that instance is currently being executed, -1 indicates that

instancefailed to execute and +1 indicates that instance has been manually withdrawn by the

specifier and 1 indicates that instance executed successfully.

In this way, the proposed system caters to the dynamic changes (change in state of instances

and initiating corresponding workflow on the basis of state) that are made in the system.

ID Task Assigned_t

o

Date i

1

i

2

i

3

i4 i

5

i

6

i

7

i

8

i

9

i10 i11 i1

2

i13

1 Place order Machine 2014-05-

03

1 1 1 +1 0 0 1 1 1 0 -1 1 1

2 Get order Machine 2014-05-

07

0 0 0 0 0 0 0 0 0 0 0 0 0

3 Process

request

Human 2014-05-

10

0 0 0 0 0 0 0 0 0 0 0 0 0

4 Send bid Machine 2014-05-

12

0 0 0 0 0 0 0 0 0 0 0 0 0

5 Send

response

Human 2014-06-

30

0 0 0 0 0 0 0 0 0 0 0 0 0

6 Choose

carrier

Machine 2014-07-

05

0 0 0 0 0 0 0 0 0 -1 0 0 0

7 Ship goods Machine 2014-07-

06

0 0 0 0 0 0 0 0 0 0 0 0 0

14 Stop Machine 2014-07-

09

0 0 0 0 0 0 0 0 0 0 0 0 0

Page 57: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

57

The specification workflow starts execution and the specifier uploads the tasks and the PSA’s

in the system. The next task is to execute matchmaker. Matchmaker allocates tasks to PSAs.

After the matchmaker is executed, the execution engine starts executing.

Matchmaker algorithm is represented in the following figure 4.8.

Algorithm: To deal with failures using matchmaker

1: Input: The aborted task with task_status = -1

2: Run_matchmaker()

3: {

4: level = 0;

5: while (task_status = -1 and level <= 9)

6: {

7: try(level);

8: updatetask_status;

9: level++;

10: }

11: }

Fig 4.8: Matchmaker Algorithm

We take same MEW (specified in figure 4.5) for this example. The tasks in MEW execute

step by step and the workflow is executed.

Many processes in traditional workflow engine have been automated in our system such as

changing psa while task execution, changing MEW if task fails when another MEW is used

etc. Also in case of failure of any instance, our system handles the failure and avoids abrupt

terminations. For example, if an instance of a task fails while executing the contract, its status

becomes -1, and thus we retry the process by assigning another PSA for performing the task.

Then the status is changed to 1 once its execution is successful. Suppose, while running the

task "Choose carrier", the instance 10 fails to execute and returns -1. In such case, the match

maker is executed again and the task is retried which in turn leads to successful execution of

task instance and sets i10 to 1 at runtime. Though not impossible, this is a difficult activity in

a traditional workflow engines without human intervention.In case workflow execution does

not complete as Check_Resources task is not fulfilled due to dependencies on more than one

task, then the system prompts the user to change MEW.

There may be other failures that may arise in the system. Consider the case when a buyer

cancels the order before shipment of goods. When the order is cancelled before shipment of

goods, that is after the task Choose carrier is executed, the user cancels the order then the

instance that is currently running returns (-1) Abort state because Check_resources task for

Page 58: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

58

MEW corresponding to ship goods fails (table 4.4). This is handled in the system by running

the matchmaker again and assigning the task to another PSA who is capable of handling this

situation by changing the task or by selecting another MEW from the knowledge base. The

algorithm for matchmaker is shown in figure 4.8. The matchmaker starts when task is aborted

(i/e., returns -1). It starts with level 0 which is Retry the task. But if level 0 fails, the level is

incremented by 1 which is Change PSA. In this way, matchmaker keeps trying next levels till

the task_status is changed. We changed (by changing MEW to execute the workflow

instance) the execution logic of the workflow engine to incorporate various cases of failure

and to ensure the consistency.

Table 4.5 represents few of the failures encountered in the system which are handled using

the proposed approach.

Table 4.5 Representing failures encountered in the system

Sr.

No

Case Possible Outcomes/

Exceptions

PSA's

required

Modifications required

1. Execution of “Process

request”.

May execute successfully

or may fail due to inactivity

of allocated PSA

PSA-

Seller-1 is

assigned

initially

Change the PSA from Seller-1

to Seller-2

Results closing the order

(due to non-availability of

required items)

2. While executing the task

“Count Items” if the count

is not equal to the number

of items ordered.

The current workflow

instance aborts execution,

and raise an exception.

PSA-

Buyer

The capabilities of PSA are

changed and corresponding

capabilities are added : return

the order if count is not equal to

the ordered count of desktops,

call for assistance from seller

3. Payment is done in time,

but payment is delayed

due to some issue

(networking) at bank.

This activity needs a check

but there is no PSA who is

responsible for it. So this

activity is in waiting state

(not executed in this case).

A new PSA Pay_Manager is

added in the system who is

responsible for managing all

payment activities and their

dates.

Page 59: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

59

CASE 1 :

In case of failure of an instance while executing process request

The system executes the level 0 that is Retries the workflow task that caused failure. So here

the system retries the task of “Process request” again. Now even after retrying if the task fails

then it iterates to level 1 i.e. Changes the problem solving agent used to perform this task.

The task is allocated to some other problem solving agent and if it is successful in completing

the execution then we are done.

In case of failure again, we change the capabilities of the problem solving agent and now the

earlier problem solving agent is capable of performing this task. Further we execute it again

and if there is again a failure we add a new task. Let in this case we change the problem

solving agent from Seller-1 to Seller-2 and then try executing the task “Process Request” and

it gets successfully executed we get rid of system failure.

4. Buyer re-ordered the same

product (assuming that the

previous order is not

through, but not sure

whether it is processed or

not, mainly for on-line

submissions).

This activity causes an

issue due to less

communication between

seller and buyer.

Notify Buyer about re-

order.

PSA-Seller Modify the capabilities of the

PSA seller who was responsible

for processing order, now is also

responsible for informing buyer

that his order has been

processed for the earlier order

and hence indicating the buyer

to cancel the new order

5. Buyer cancelled the order

as the shipment is not

happened by the due date,

but the goods already

started shipment.

Workflow execution may

lead to an issue (not

envisaged during workflow

design).

PSA-3 This problem is resolved using

some offline means so that it

can be executed successfully.

6. Bulk orders placed

(expecting discounts).

Since the current wf does

not check for bulk orders it

will treat bulk orders as

normal orders and no

discount will be given.

PSA-4 Instantiate new workflow, and if

requires change meta execution

workflow

Page 60: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

60

CASE 2:

While executing the task “Count Desktops” if the count is not equal to the number of

desktops ordered then it may lead to failure of the system.

It reaches the state Abort. So the failure handling process of our system starts. First it tries to

execute the workflow again, but if this does not work it proceeds to level 1 that is changing

the problem solving agent doing the task. If this also does not work then task is allocated to

another problem solving agent. In case of encountering failure again at this step we change

the capabilities of the PSA. So here in case a buyer does not find the count of desktops equal

to the count he ordered he has a capability to return the desktops or ask the seller to assist

him with finding the remaining desktops. We update the PSA table with corresponding

capabilities.

Sr. No. Name of PSA Capabilities of PSA

1. Seller-1 Process request,sendbid,Choose carrier

2. Buyer-1 Place

order,getorder,countdesktops,makepayment,return

the order if count is not equal to the ordered count

of desktops, call for assistance from seller.

3. Carrier-1 Respond for bid

4. Seller-2 Process request,sendbid,Choose carrier

5. Buyer-2 Place

order,getorder,countdesktops,makepayment,return

the order if count is not equal to the ordered count

of desktops, call for assistance from seller

Page 61: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

61

CASE 3: Create new PSA

Payment is done through electronic transfer in time, but payment is delayed due to some

issue (networking) at bank.

In this scenario the instance cannot execute further since it sees that the payment is delayed.

In this case we add another PSA in our system who tracks payments and is responsible for

checking when did the buyer make payment. This inturn helps the workflow to run smoothly

and the instances are also executed. The updated PSA table is :

Sr. No. Name of PSA Capabilities of PSA

1. Seller-1 Process request,sendbid,Choose carrier

2. Buyer-1 Place

order,getorder,countdesktops,makepayment,return

the order if count is not equal to the ordered count of

desktops, call for assistance from seller

3. Carrier-1 Respond for bid

4. Seller-2 Process request,sendbid,Choose carrier

5. Buyer-2 Place

order,getorder,countdesktops,makepayment,returnthe

order if count is not equal to the ordered count of

desktops, call for assistance from seller

6. Pay_Manager Manages Payments between parties

Page 62: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

62

Case 4 :

Buyer re-ordered the same product assuming that the previous order is not through (made

the order, but not sure whether it is processed or not, mainly for on-line submissions).

In this case we can modify the capabilities of the PSA seller who was responsible for

processing order, now is also responsible for informing buyer that his order has been

processed for the earlier order and hence indicating the buyer to cancel the new order.

The PSA table now becomes like this:

Sr. No. Name of PSA Capabilities of PSA

1. Seller-1 Process

request,sendbid,Choosecarrier,Acknowledges

buyer about the order status

2. Buyer-1 Place

order,getorder,countdesktops,makepayment,return

the order if count is not equal to the ordered count

of desktops, call for assistance from seller

3. Carrier-1 Respond for bid

4. Seller-2 Process request,sendbid,Choose carrier

5. Buyer-2 Place

order,getorder,countdesktops,makepayment,return

the order if count is not equal to the ordered count

of desktops, call for assistance from seller

Page 63: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

63

In this way buyer when receives the acknowledgment that his order has been processed he

will himself cancel the new order placed for the same thing and thereby preventing the

system from any kind of failure.

CASE5 :

Buyer cancelled the order as the shipment is not happened by the due date, but the goods

already started shipment.

To incorporate this failure we try all the levels starting from 0. In this scenario we reach level

9 where we use some other means to execute the workflow instance offline since any other

level could not resolve the failure.

CASE6 :

Bulk orders are given discounts.

When a buyer orders in bulk he should get discounts but in the current workflow that has not

been incorporated anywhere so we add another workflow which checks if it is a normal order

or a bulk order. If it is bulk order then provide the discounts.

The new meta workflow looks something like this:

Apart from the failures mentioned in the table, there can be more possibilities of failures for

example in case of “Carrier lost (damaged in transit)” or ”Goods return (due to non-

6. Pay_Manager Manages Payments between parties

Page 64: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

64

satisfactory of goods)”we cater to these kinds of failure thereby making system more

flexible.

4.6 Comparison of traditional WFMS with Failure Resilient Workflow

System

Capability Existing WFMS MEW driven WFMS

Workflow

engine process

Fixed. Workflow

execution engine

processing logic cannot be

changed.

Flexible (can be selected pre-

defined or specify new MEW

based on the execution

context) (section 4.3)

Run-time

changes at

Instance level

Limited facility (when

alternatives are already

specified). Need to be

coded again when

requirements are modified.

Can adapt to modified

requirements with

ease.(section 4.3)

Exception/fail

ure Handling

at Instance

level

Yes, but limited to only

handling expected

exceptions.

Does not work in case of

unexpected exception or

failure that may occur

during task execution.

Handles exceptions and

failures occurring at run time

in a systematic way and avoids

abnormal termination of

workflow instance. (section

4.3)

PSA allocation May get stuck due to

inactivity of problem

Execution will be seamless by

allocating a new PSA when

Page 65: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

65

solving agent the present PSA has

failed.(section 4.4)

Evolution: On-

the-fly

addition/modif

ication of

workflows

Not flexible to add new

workflow or modify

existing one during run-

time.

Flexible enough to add new

workflows and modify

existing ones on-the-

fly.(section 4.3)

Table 4.6. Differences between traditional WFMS and MEW

driven WFMS

Page 66: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

66

Chapter 5

Failure Prevention

In this chapter we present a methodology to deal with inconsistency that arise during

workflow execution by predicting the failure that can possibly occur while execution. We

capture the task execution in execution log and for each corresponding task the dependencies

at contract elements dependency level (as suggested in Chapter 3) are extracted. Further these

dependencies are used to find failure patterns that can be viewed from past execution logs

and a possible incoming failure is predicted.

5.1 Problem Description

Failures during workflow execution lead to system in an inconsistent state. User workflows

may need to be modified to handle such failures. Failure handling at run-time is a challenging

task. So, there is a need to early detection of potential failures from the e-contract

specifications and provide mechanisms to adapt the workflow during run-time in order to

avoid failures during e-contract enactment. In this work, we propose a methodology that

allow the updation of user workflows based on the execution log and the inconsistencies (due

to incorrect process design) derived from e-contract specifications. We use meta execution

workflow and consistency dependency graphs to identify inconsistencies and support

workflow adaption when such inconsistencies leads to failure during e-contract workflow

execution. Our proposed approach helps in building a failure resilient system to support a

seamless execution of workflows.

5.2 Methodology to assess failures

Figure 5.1 represents the execution workflow. Execution log stores the data for success or

failure of each task that gets executed. In chapter 3 we proposed consistency detection graphs

which represent related contract elements in a document contract.

Page 67: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

67

Fig 5.1: Representing workflow execution engine

While executing the same document contract if a task execution is logged as fail we look up

its related contract elements from consistency detection graph which helps us in knowing

where the problem lies. The problem maybe with the delay due to party who is responsible

for performing the task or with a clause being violated or it may be due to a particular

pointer. As an example “payment is made at :location” is failed then for any future task if we

get the same :location the current workflow can be stopped and a new workflow can be

instantiated inspite of the current one.

This approach can be extend to finding patterns in data from execution log and consistency

detection graphs. For a task that is logged as failed in execution log, the dependencies for that

particular task can be extracted from consistency detection graph and are stored in

knowledge base of Meta Execution workflow and later on when similar dependencies are

found the task can be predicted as fail and instead of executing the current workflow, a new

workflow can be instantiated.

Thereby for a task in execution we can predict on the basis of past failed tasks that the

current task may fail. In this case the control is passed to MEW. The problem maybe with the

delay due to party who is responsible for performing the task or with a clause being violated

or it may be due to a particular pointer. MEW drives the execution of that failed path by 1.)

changing the workflow path, 2.) instantiating another workflow, 3.) select new workflow

from available workflows, 4.) allows human intervention to add a new workflow which can

handle the failure..

We use the CEDG used in chapter 3 and elaborate the methodology on the same example

with same notations.

Page 68: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

68

The algorithm for assessing the failure is represented in figure 5.2.

Algorithm: To assess failure based on execution trace

1: Input: Meta Execution Workflow and User Workflow

2: Output: Possible failures in the system

3: Detect_failure( ):

4: for each task ti to be executed:

5: check the dependencies of failed tasks

6: compare the dependencies of failed tasks

7: if dependencies of ti and failed task have an intersection:

8: add them to knowledge base

Figure 5.2: Algorithm for assessing failure

We take the task “Process Request” with id A10 (Process the raw material) and check for

predicting incoming failureand handling that failure. The execution log till this task gets

executed is represented along with dependencies in Table 5.1 represented below:

Task Task_name Message Dependencies(extracted

from CEDG)

A1 Send Request for

raw material

Fail A2,P1,P4,C2,C3,C4,C6,E1

A2 Request Material Fail A1,P1,P4,C2,C3,C4,C6,E1

A7 Supply raw material Success A8,P4,C2,C3,E1,E2

A10 Process the raw

material

Processing.. A11,P3,C5,C6,E3,E4

Table 5.1: Represents execution log and fetched dependencies

In the table represented above when we look at past failed tasks A1 and A2 we see that both

have a common set of dependencies: {P1,P4,C2,C3,C4,C6,E1}. But when dependencies of

task A7 are checked which is a successful task we get: {A8,P4,C2,C3,E1,E2}. Therefore for

Page 69: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

69

a task to fail in future it should not have: Dependencies of failed task – Dependencies of

successful task = {A8, C6}.

From the above result we can say that Clause 6 needs to be checked and fixed. This could be

helpful in dealing any future failure caused due to Clause 6. When task A10 comes up for

execution and it is found that the dependencies of A10 include C6 too so in spite of

continuing the execution of C6 the workflow should be stopped. After stopping the workflow

the control is passed to MEW which drives the execution of this task. Meta execution

workflow iteratively tries to execute the task by changing workflow path, instantiating

another workflow, selecting new workflow from available workflows, allows human

intervention to add new workflows and at the end driving the task to successful execution.

Therefore on the basis of past failures incoming failures can be predicted and handled. After

prediction the data comes into knowledge base where it can be used by Meta Execution

engine to handle the failure.

5.3 Summary

This chapter tries to deal with the problem of predicting failures that arise while executing

workflows in a workflow management system by maintaining an execution log which keeps

the status of each task being executed and uses captured dependencies of contract elements at

the document level to predict the failure of a task. It also makes it easier to deal with the

failure of upcoming task where same kind of failure has been dealt by meta execution

workflow engine previously by retrieving the task dependencies from consistency detection

graphs stored in knowledge base of meta execution workflow.

Page 70: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

70

Chapter 6

Case Study

This chapter presents the working of proposed approaches in previous chapters through a

step by step case study. We take a STC contract mentioned in the previous chapters to

demonstrate the work. We start with the document contract and fixing inconsistencies in the

corresponding contract. This has been explained in Chapter 3. Further we take the contract

for its enactment and check if there are any exceptions/failures that arise at run-time, we fix

them using the approaches proposed and hence execute the contract. The execution part has

been explained briefly in Chapter 4. We will elaborate it and explain how it actually works in

implementation.

Example Contract

The EREC diagram for STC contract is shown in figure 6.1

1.1 Activi

ties

Delivery time

> 2 weeks

1.2 Claus

es

Invalid

account

details

Hold

Resend

again

Wait

Send Clarification

has

Supplier

have

Payments

Parties

Exceptions

Buyer

Delivery

approval

Bank

Goods damaged

during shipment

Order of Goods

Shipment of

Goods Delivery of Goods

Transfer of Funds

Rejec

t

Not

sufficient

balance

Fig. 6.1. Extended ER contract diagram for STC contract

Good not

received

refer

Buyer-Supplier Contract

Payment

exceeds one

Million

Compensate

Relation between entity types Input events for exceptions

Relation between instances of entities Output events for exceptions

Page 71: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

71

The parties of STC contract include 1.) STC 2.) Mills 3.) Weavers 4.) Printers 5.) Banks 6.)

Showrooms 7.) Organizations.

The STC contract is a composite contract involving many bilateral contracts such as contract

between 1.) STC and Mills 2.) STC and weavers 3.) STC and printers 4.) STC and

showrooms 5.) STC and organizations.

Step 1.Specification of workflow

There are three users in the system : 1. Specifier 2. Manager 3. Normal User

Specifier uploads the MEW in the system. This is the interface where specifier has option to

upload the MEW.

Figure 6.2 : Interface for adding a new MEW

Page 72: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

72

Specifier uploads mew.xml file here. The xml which has been uploaded contains the

following tasks:

<?xml version="1.0" encoding="iso-8859-1"?>

<mew>

<name>mew</name>

<description>mew</description>

<count>5</count>

<task1>

<id>1</id>

<name>start</name>

<postevent>get_task</postevent>

<agent>human</agent>

</task1>

<task2>

<id>2</id>

<name>get_task</name>

<postevent>check_resources</postevent>

<agent>human</agent>

</task2>

<task3>

<id>3</id>

<name>check_resources</name>

<postevent>execute_task</postevent>

<agent>machine</agent>

</task3>

<task4>

<id>4</id>

<name>execute_task</name>

<postevent>stop</postevent>

<agent>human</agent>

</task4>

<task5>

<id>5</id>

<name>stop</name>

<postevent>NULL</postevent>

<agent>machine</agent>

</task5>

<mew>

Page 73: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

73

After MEW has been uploaded, the task workflow of STC contract that needs to be executed are

uploaded.

Figure 6.3 : Interface for adding a new user workflow

And the xml for PSA’s looks as follows:

<?xml version="1.0" encoding="iso-8859-1"?>

<psa_workflow>

<psa_count>5</psa_count>

<psa1>

<id>1</id>

<name>Ram Kumar</name>

<post>Assistant Manager</post>

<user_id>ram</user_id>

<password>ram</password><!--randomly generated-->

<cap1>place_order</cap1>

<cap2>make_payment</cap2>

<cap3>NULL</cap3>

<priority>1</priority>

</psa1>

<psa2>

<id>2</id>

Page 74: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

74

<name>lakhansharma</name>

<post>Finance Manager</post>

<user_id>lakhan</user_id>

<password>lakhan</password><!--randomly generated-->

<cap1>send_bid</cap1>

<cap2>make_payment</cap2>

<cap3>NULL</cap3>

<priority>2</priority>

</psa2>

<psa3>

<id>3</id>

<name>Hari Raj</name>

<post>Assistant Finance Manager</post>

<user_id>hari</user_id>

<password>hari</password><!--randomly generated-->

<cap1>send_acceptance</cap1>

<cap2>send_rejection</cap2>

<cap3>NULL</cap3>

<priority>3</priority>

</psa3>

<psa4>

<id>4</id>

<name>Ratan Sharma</name>

<post>employee</post>

<user_id>ratan</user_id>

<password>ratan</password><!--randomly generated-->

<cap1>choose_carrier</cap1>

<cap2>make_payment</cap2>

<cap3>NULL</cap3>

<priority>4</priority>

</psa4>

<psa5>

<id>5</id>

<name>Raghu Agarwal</name>

<post>employee</post>

<user_id>raghu</user_id>

<password>raghu</password><!--randomly generated-->

<cap1>count_items</cap1>

<cap2>choose_carrier</cap2>

<cap3>NULL</cap3>

<priority>4</priority>

</psa5>

<psa_workflow>

After the workflow has been added, we have a table in the database containing all these details:

Page 75: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

75

Figure 6.4 Representing tasks in database added from xml file

PSA table is created in database is as follows:

Figure 6.5: PSA table in database

Page 76: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

76

Step 2: Execution of a workflow

When the workflow is executed, the MEW task gets coupled with tasks in User Workflow.

For example we take the MEW task “Process Request” it gets coupled with the user

workflow as represented in figure 6.6.

After successful execution of one user task by MEW, a status “complete” is returned by the

task dispatcher and hence MEW moves on to the next task of user workflow. In this way

tasks are executed one by one towards completion.

Figure 6.6. Representing coupling of a task from user

workflow with MEW tasks

Page 77: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

77

Step 4: Check for failures that occur in workflow instance execution

While execution of few tasks if there are no resources available for example PSA is not

available or task can’t be executed due to some other reason the workflow should not stop

there. We have defined states for a workflow namely start, finish, failure, restart and cancel

as 0, 1, -1, 2 and -2 respectively in the runtime database.

For a task instance which has failed to execute due to any possible reason is markedas -1. To

deal with the failure we have stated levels of failure in the previous chapter according to

which we execute the failure handling steps iteratively till workflow is successfully executed.

The database after execution of tasks is in the following condition:

Figure 6.7: Representing failures in execution

Since we observe that status for all the tasks is not 1 and few of them have been marked 1

means these tasks have failed to execute.

We can check failures using Show failures button in the system.

Page 78: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

78

Fig. 6.8: Interface showing failures occurred while execution

To handle the failure user can click corresponding handle. Suppose we press Handle

corresponding to Workflow ID 6. The next step is to handle failures :

Fig 6.9: Interface representing steps for failure handling

In our system we have included tasks which can be handled by Machine and for now did not

include the tasks done by human. The next step here is to handle the failure by iteratively

trying these steps. When a user clicks on Retry which is 1st step here the workflow is

executed again. The execution refers to running the matchmaker again that is PSA allocation

to tasks is done again and then the workflow is executed again. In this case it is unsuccessful.

Page 79: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

79

In case it would have been successful in handling the failure handling would have stopped at

this step.

The interface for retrying the task with workflow id 6 is shown in the following figure :

Fig: 6.10 : Representing the result of retrying the failed instance

Now we move on to check the next level that is change PSA. We take the available PSA at

that moment who is capable of executing the task and assign the task to him. After this we

execute the instance again. In this case where workflow id is 6 it failed again as shown in fig.

6.11.

Fig. 6.11: Changing PSA

Page 80: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

80

After this fails, we move on to the next failure handling step “Change capabilities of PSA”.

In this case user is asked to change capabilities of the PSAand the instance is re-run again. It

is represented in fig 6.12.

Fig. 6.12: Changing PSA Capabilities

Since in this case Hari was assigned send_acceptance task whose instance failed, we add the

capability send_acceptance in Raghu’s capabilities, and re-execute the failed instance. In this

way, the system is capable to deal with different kinds of failures. At the end of failure

handling steps, if the failure is not dealt, then it is withdrawn by the specifier.

6.2 Summary

In this chapter, we presented our approach using a working example starting from

specification to successful execution by combating any kind of exception/failure.We

presented database tables containing specification tables and execution tables and how they

are updated. Existing systems can be augmented with additional mechanismsto handle

failures, for instance, due to dependencies among the tasks. Such mechanisms handle pre-

defined scenarios. However, in real-world applications, it is hard to envisage all kinds of

failures and exceptions during application design. Thus, we introduce configurable workflow

engine control logic, which handles failures as well as exceptions, rather than doing the same

within user workflows.

Page 81: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

81

Chapter 7

Conclusion

The work done in the thesis addresses the issue of dealing with consistency issues in an e-

contract. We have developed a methodology to detect inconsistencies in the document

contract and thereby removing those inconsistencies to obtain a consistent contract.We

introduced Sentence Dependency Graph and Contract Element Dependency Graph to

determine the inconsistent activities/tasks specified in an e-contract document.The buyer

seller contract has been used as an example in this thesis work to explain the approach in a

more simplified manner and also demonstrated the usability and applicability of the

suggested approach.

Another important issue that has been dealt is the way of dealing with exceptions/ failures

that occur while executing activities of a contract.State-of-the-art works in the area of

workflows and e-contract systemsprovide dynamic modifications of workflows. However,

there are no systems that allows flexibility during enactment of e-contracts due to evolving

business processes and handle failures without abrupt termination of workflow execution.

This thesis also focus on seamless execution of e-contracts and proposed a system which can

incorporate changes dynamically thereby helps in dealing withexceptions or

failuresoccurring at run time. Towards achieving this, we used the concept of meta execution

workflow and developed a Failure resilient workflow system by designing all the workflow

engine components as workflows. This feature allows easy updation of workflows and also

selects new workflows for instantiation and execution, if required, during the enactment of e-

contract processes. We use the concept of problem solving agents to handle failure by

allocating a failure to an appropriate Problem Solving Agent. Our approach also prevents

possible failures that may occur during e-contract enactment by logging the task data in

execution log and later retrieving dependencies of failed tasks and further find out whether or

not an incoming task would fail.

Future Work:

In our future work, we extend the idea of execution using MEW as a Service to drive

multiple workflow systems where each execution instance can have different

capabilities.This idea ofmoving the code to cloud environment for MEW-as-a-Service enable

the MEW to instantiate appropriate workflow engine (from lightweight to complex)

Page 82: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

82

depending on the application requirement.

Using machine learning techniques, we develop a learning sub-system that supports handling

a particular failure and hence, for a new upcoming failure,select a suitable MEW intelligently

rather than involving a human to select another MEW. This would make it easier to select a

particular MEW when a certain case (or a similar case) has been dealt earlier.

We formalize and standardize the data and flow control in the execution of activities. The

formalization can be done using a query language where it would be easy to diagnose all

exceptions and failures that may arise during execution.

Page 83: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

83

Bibliography

[1]K. Anushree, P. Radha Krishna and KamalakarKarlapalem, A Methodology and Toolkit

for Deploying Contract Documents as E-contracts, 26th International Conference on

Conceptual Modeling (ER 2007), CRPIT 83, 91-96, 2007.

[2] L. Kutvonen, T. Ruokolainen, J. Metso, and J. –P. Haataja. (2006). Interoperability

Middleware for Federated Enterprise Applications in web-Pilarcos. In D. Konstantas,

J.-P. Bourrières, M. Léonard, & N. Boudjlida (Eds.), Interoperability of Enterprise

Software and Applications (pp. 185–196). Springer London. Retrieved from

http://link.springer.com/chapter/10.1007/1-84628-152-0_17

[3]S. Sharma, KamalakarKarlapalemandP. RadhaKrishna, (2012) A Case for a Workflow

Driven Workflow Execution Engine. In Workshop on Information Technologies and

System. Orlando.

[4] AngelovSamuil and Grefen Paul The 4W framework for B2B e&#45;contractingInt.J.

Netw. Virtual Organ.,pages (78-97), 2003

[5] P. Grefen, K. Aberer, H. Ludwig, and Y. Hoffner, (2000). CrossFlow: Cross-

organizational workflow management in dynamic virtual enterprises. International

Journal of Computer Systems Science & Engineering, 15, 277–290.

[6]W. M. P. van der Aalst, A. Kumar, H. M. W. (Erik) Verbeek: Organizational

Modeling in UML and XML in the Context of Workflow Systems. In Proc. of 18th

Annual ACM Symposium on Applied Computing (SAC 2003), pp. 603-608, 2003.

[7]M. T. Schmidt, Building workflow business objects, object-oriented

programmingsystems languages applications, OOP-SLA’98 Business Object

Workshop, London, pp. 64-76, 1998

[8] J. Metso, and L. Kutvonen, (2005). Managing Virtual Organizations with Contracts.

[9]T. Kwok and T. Nguyen, An Enterprise Electronic Contract Management System using

Dual XML and Secure PDF documents, 10th IEEE International Enterprise 145

Distributed Object Computing Conference Workshops, IEEE Computer Society, p. 57,

2006.

[10]Patrick C. K. Hung, KamalakarKarlapalem: Secure Disconnected Agent Interaction for

Electronic Commerce Activities Using CapBasED-AMS. Information Technology and

Management 3(4): 329-351 (2002)

Page 84: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

84

[11] Z. Milosevic, A. Jøsang, M.A. Patton, T. Dimitrakos: Discretionary enforcement of

Electronic Contracts, Proc. 6th Int’l Enterprise Distributed Object Computing Conf.

(EDOC 02), IEEE CS Press, pp. 39–50, 2002

[12]M-C. deMarneffe and C. D. Manning, (2010) Stanford typed dependencies manual,

Stanford Parser Library.

[13] Xusheng Xiao, Amit M. Paradkar, Suresh Thummalapenta, Tao Xie (2012). Automated

extraction of security policies from natural-language software documents. SIGSOFT

FSE 2012: 12

[14] Vincenzo Gervasi, DidarZowghi (2005). Reasoning about inconsistencies in natural

language requirements. ACM Trans. Softw. Eng. Methodol. 14(3): 277-330

[15] Alexander Rush,RoiReichart, Michael Collins, Amir Globerson (2012). Improved

Parsing and POS Tagging Using Inter-Sentence Consistency Constraints ,Association

for Computational Linguistics

[16] P. Radha Krishna, KamalakarKarlapalem, Dickson K. W. Chiu (2004). An EREC

framework for e-contract modeling, enactment and monitoring. Data and Knowledge

Eng. 51(1): 31-58

[17] B. Grosof and T. Poon, (2003). SweetDeal: Representing Agent Contracts with

Exceptions using XML Rules, Ontologies and Process Descriptions, 12th WWW

Conference, ACM Press, pp. 340-349.

[18]Marjanovic, O., Milosevic, Z. (2001). Towards Formal Modeling of e-Contracts. In: The

5th IEEE International EDOC Conference, pp. 59-68.

[19] P. Radha Krishna, KamalakarKarlapalem, (2013). A Methodology for Evolving E-

Contracts Using Templates. IEEE T. Services Computing 6(4): 497-510

[20] P. Radha Krishna, KamalakarKarlapalem, (2008) Electronic Contracts. IEEE Internet

Computing 12(4): 60-68

[21]P. Grefen, K. Aberer, Y. Hoffner, and H. Ludwig (2000). CrossFlow: Cross-

Organizational workflow management in Dynamic virtual enterprises, International

Journal of Computer Systems Science and Engineering, 15(5), pp.277-290.

[22] P. Radha Krishna, KamalakarKarlapalem, 2007. “Active Meta Modeling Support for

Evolving E-contracts”, 26th International Conference on Conceptual Modeling (ER

2007), CRPIT 83, pp. 103-108.

Page 85: CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTSweb2py.iiit.ac.in/research_centres/publications/download/masters... · CONSISTENCY AND FAILURE HANDLING IN ELECTRONIC CONTRACTS

85

[23] M.Reichert, S. Rinderle, and P. Dadam, 2003. “Adept workflow management system:

flexible support for enterprise-wide business processes”, In Proceedings of the 2003

international conference on Business process management (BPM’03), pp. 370–379.

[24] F. Zhang, F. and Y. Du. 2009. “A process generation approach of dynamic workflows

based description logics”, Information Technology Journal, (8), pp.S 998-1005.

[25] KamalakarKarlapalem,Helen P. Yeung and Patrick C. K. Hung. 1995. “CapBasED-

AMS - A Framework for Capability-Based and Event-Driven Activity Management

System”, In Int. Conf. on Cooperative Information Systems (CoopIS 1995) , pp. 205-

219.

[26] J. Eder, and W. Liebhart, 1995. “The Workflow Activity Model WAMO” ,In Int. Conf.

on Cooperative Information Systems (CoopIS 1995).

[27] N. Russell, N., van der Aalst, Wil M.P. and ter Hofstede, Arthur H.M. 2006. “Exception

Handling Patterns in Process-Aware Information Systems”, Technical Report BPM

Center Report BPM-06-04, BPMCenter.org.

[28] M. J. Looise, (2008). Inter-level consistency checking between requirements and design

artefacts, MSc Comptuer Science thesis, Software Engineering, University of Twente.

[29] M. Bastian, S. Heymann, M. Jacomy. (2009). Gephi: an open source software for

exploring and manipulating networks. International AAAI Conference on Weblogs and

Social Media.

[30] J. Eder, and W. Liebhart, “The Workflow Activity Model WAMO”, Int. Conf. on

Cooperative Information Systems (CoopIS), 1995.

[31] E. Elmroth, H. Hernández and J. Tordsson, “A Light-Weight Grid Workflow Execution

Engine, Enabling Client and Middleware Independence”, 7th International Conference

on Parallel Processing and Applied Mathematics (PPAM 2007), Springer Verlag,

LNCS 4967, pp. 754-761, 2007

[32] P. J. Kammer, G. A. Bolcer, R. N. Taylor and M. Bergman, “Techniques for Supporting

Dynamic and Adaptive Workflow”, Journal of Computer Supported Cooperative Work,

Kluwer Academic Publishers vol. 9, no. 304, pp. 269-292, 2000.

1.

2.

3.