CoMex – A Mechanism for Coordination of Task Execution in Group Work Hilda Tellio ˘ g lu Vienna University of Technology Institute of Design and Assessment of Technology CSCW & Multidisciplinary Design Group Vienna, Austria hilda.tellioglu@tuwien.ac.at http://as43.media.tuwien.ac.at 1 st International Workshop on Computer Supported Activity Coordination CSAC 2004 April 13-14, 2004, Porto, Portugal Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 1
Contents • Collaboration within a workgroup • The case – The enrollment processing • CoMex – The Coordination Mechanism – The methodology – The theoretical framework – The implementation – The CoMexDB – The web interface – The runtime execution • Conclusions Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 2
Collaboration within a workgroup • It needs several communication, coordination and cooperation mechanisms. • Research has been done in – identifing and classifing coordination processes (Crowston, 1994) – describing coordination problems within complex work processes – creating a topology of coordination problems and in trying to solve them by means of well-known coordination forms (Etcheverry et al., 2001) – producing a catalogue of coordination patterns by taking the coordination situations iden- tified by Malone and Crowston (1994) • Coordination models and languages – data-driven – Linda (Ahuja, 1986), Sonia (Banville, 1996), Laura (Tolksdorf, 1996), Ariadne (Florijn et al., 1996) ... – process-oriented – IWIM (Arbab, 1996), MANIFOLD (Arbab et al., 1996; 1993) ... Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 3
CoMex – The Coordination Mechanism CoMex is a mechanism to coordinate the execution of tasks accessing coordinable entities. It uses coordination rules to describe the temporal and logical order of tasks performed in a cooperative work setting by several actors and to coordinate semantic dependencies between work activities. • The case = an international insurance company that uses a web-based management infor- mation system with workflow functionality – Some of the requirements – management of information packet requests and enrollment forms clients send, management of policies they offer and maintain – Some of the artifacts – inquiry requests, enrollment forms, policies, contacts, dependents, outstanding items etc. Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 4
The case – The enrollment processing Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 5
CoMex – The methodology (I) • The conceptualization of a work domain – to understand its objects and relations between its actors – to name and describe the entities and the relationships among those – to provide a vocabulary for representing and communicating knowledge about that domain ⇒ the notion of ontology • Muccini & Mancinelli (2003) – an approach to identify elements to be coordinated (static coordination) and how these entities may be coordinated (dynamic coordination) • CoMex is based on an object-oriented approach. 1. Use case diagams 4. Rules 2. Data dictionary 5. Activity diagrams 3. Domain model 6. Coordination rules Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 6
CoMex – The methodology (II) • Use case diagrams with UML • Data dictionary to describe concepts used in the system and their relations to each other • Identification of classes, their attributes and relations ⇒ domain model • Restrictions and norms ⇒ rules – Rules express the (hidden) dependencies between entities. – Rules describe what needs to be guaranteed by the system. – Rules emerge when users talk about dependencies between their artifacts and activities. – Rules need to be refined and communicated between users and systems designers. – Rules can in a first step be presented in a natural language. R1: If an enrollment form is received, check all items attached to the enrollment. R2: If an enrollment form is received, the administrator must be notified. R3: If an enrollment form is received, the todo-list of the admin. must be modified. Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 7
CoMex – The methodology (III) • Activity diagrams to show the tasks to be performed and their temporal and logical order • Coordination rules – as coordination laws that determine how active entities are coordinated using the coordi- nation media – to specify the semantics of the model’s framework – by analyzing the temporal and logical order of tasks that must be performed in order to implement a use case in an application CR1: receiveEnrollment meets checkItemsOfEnrollment CR2: receiveEnrollment meets notifyAdministrator CR3: receiveEnrollment meets modifyTodoListOfAdministrator Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 8
CoMex – The theoretical framework (I) • based on processes that consist of resources, activities and dependencies (Malone & Crowston, 1994) – A dependency is a relation among activities. – There are three types of dependencies ∗ flow ∗ sharing ∗ fit – “ Using these three basic types, any process can be decomposed into a structure of activities and dependencies. ” (Hayashi & Herman, 2002) – Coordination is “ managing dependencies between activities ” (Malone & Crowston, 1994) – Dependencies can be described by using temporal relations between tasks. Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 9
CoMex – The theoretical framework (II) • Allen’s seven primitive relations between pairs of tasks (1984) and a set of axioms to create a temporal logic based on these relations (1983) • active, passive, blocking and resource management interdependencies by Raposo & Fuks (2002) • The CoMex is based on task interdependencies. Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 10
CoMex – The implementation Middle Tier Web Container CoMex CoMexAdmin� CoMexMonitor� JSP� (V) (V) (V) Client Tier EIS Tier CoMexService� Servlet� (C) Web browser (C) ComexServiceImlementation� Database JavaBeans� (C) Web service peers (M) CoMexDB CoMexConfigure.xml� Struts framework Client (M) JDK (1.4) – MySQL (3.23.55) – Tomcat 4 Servlet/JSP Container (4.1.24) – Apache Jakarta Struts (1.1) Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 11
CoMex – The CoMexDB (I) <<table>> <<table>> ActionType Task -actionTypeID[1] : int (11) -actionTypeName[0..1] : varchar (128) -taskID[1] : int (11) -entityTypeID[1] : int (11) -actionTypeID[1] : int (11) -method[0..1] : varchar (255) <<table>> ... EntityType 1..* -entityTypeID[1] : int (11) -entityTypeName[0..1] : varchar (128) 0..* * equals� <<table>> * starts� * finishes� CR <<table>> * meets� CoorType * overlaps� -firstTaskID[1] : int (11) * during� -coorTypeID[1] : int (11) -coorTypeID[1] : int (11) * before -secondTaskID[1] : int (11) -coorTypeName[0..1] : varchar (128) Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 12
CoMex – The CoMexDB (II) insert into ActionType values (1,’receive’); insert into ActionType values (2,’submit’); insert into ActionType values (7,’store’); insert into ActionType values (8,’delete’); insert into ActionType values (9,’modify todo-list’); insert into ActionType values (10,’notify’); insert into ActionType values (11,’check items’); insert into EntityType values (1,’Enrollment’); insert into EntityType values (2,’Info Packet Request’); insert into EntityType values (3,’Policy’); insert into EntityType values (4,’Outstanding Item’); Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 13
CoMex – The CoMexDB (III) insert into CoorType values (1,’equals’); insert into CoorType values (2,’starts’); insert into CoorType values (3,’finishes’); insert into CoorType values (4,’meets’); insert into CoorType values (5,’overlaps’); insert into CoorType values (6,’during’); insert into CoorType values (7,’before’); insert into Task values (1,1,1,null); # receiveEnrollment insert into Task values (12,1,10,’notifyAdministrator’); insert into Task values (13,1,11,’checkItemsOfEnrollment’); insert into Task values (14,1,9,’modifyTodoListOfAdministrator’); insert into CR values (1,4,12); insert into CR values (1,4,13); insert into CR values (1,4,14); Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 14
CoMex – The web interface Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 15
CoMex – The runtime execution (I) Enrollment Form Action Servlet of Enrollment EnrollmentAction.execute() public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception EnrollmentService es = (EnrollmentService)getService(‘‘EnrollmentService’’); es.storeEnrollment(enrollment); ComexService cs = (ComexService)getService(‘‘ComexService’’); cs.executeCR(enrollment,1,1); public void executeCR(Object object, int entityTypeID, int actiontypeID) throws Exception Hilda Tellioglu – CSAC 2004 – April 13-14, 2004 – Porto, Portugal 16
Recommend
More recommend