Concurrency control for overlapping and cooperative workflows Juha Puustjarvi, Henry Tirri Department of Computer Science P. O. Box 26 (Teollisuuskatu 23) FIN-00014 UNIVERSITY OF HELSINKI Finland e-mail: {puustjar, tirri}@cs.helsinki.fi Jari Veijalainen VTT Information Technology Multimedia Systems P.O. Box 1203 FIN-02044 VTT Finland e-mail: Jari.Veijalainen@vtt.fi Abstract In this paper, we will focus on developing concurrency control mechanisms supporting cooperative workflows, which are characterized by the following cooperation activities: workflows are allowed to see other workflows' non-committed persistent data, workflows may delegate tasks to other workflows, and workflows may notify each other of their behaviour. We also emphasize workflow task reusability by addressing overlapping workflows sharing one or several tasks as subworkflows. In our approach the required properties of a task are specified in the call procedure as types of task execution modes. In ddition we will also introduce a general mechanism called constraint locking which addresses controlling the synchronization, atomicity and cooperation in cooperative workflows. As opposed to traditional transaction locking where the order of the transaction executions is dynamically determined by acquisition of locks for the shared data, in constraint locking this ordering is controlled by constraints both on the shared data state and operations performed by the participating workflows. Thus constraint locking is a generalization of the traditional transaction locking where the unconditional ordering based on lock conflicts is relaxed to depend on (dynamically defined) predicates. By constraint locking, we address the problems of workflow synchronization, workflow atomicity and workflow cooperation (i.e., relaxed isolation). We will demonstrate our approach by describing the concepts in the framework of an example in the banking domain.