Implementing Distributed Workflow Systems from XML Specifications Vineet

Implementing Distributed Workflow Systems from XML Specifications Vineet Kakani Dept of Computer Science University of Minnesota http: //www. cs. umn. edu/Ajanta Jump to first page

Project Goals n n n Specification of a generic workflow Construction of workflow from high level specifications Rapid construction of any workflow Jump to first page

Project Contributions n n Use of XML for specifying the workflow entities Design and Implementation of a generic distributed collaboration facility built using agents Jump to first page

Publications n Distributed Collaborations using Network Mobile Agents F To appear in ASA/MA 2000 F By Anand R Tripathi, Tanvir Ahmed, Vineet Kakani and Shremattie Jaman n Implementing Distributed Workflow Systems from XML Specifications F Submitted to CSCW 2000 F By Anand R Tripathi, Tanvir Ahmed, Vineet Kakani and Shremattie Jaman Jump to first page

Approach Overview n n Devising a XML schema Description of a Workflow Plan F Shared Objects F Roles F Privileges F Coordination n Operations Interfacing plan with generic coordination facility Jump to first page

Steps in building distributed Workflow Environment Schema XML Specification of a Workflow Plan Agent based Distributed Workflow System using Ajanta Jump to first page

Outline of Presentation n Workflow F definition F examples n n n XML schema and example of Workflow Plan using an authoring system Design of an agent based middleware Conclusions and Future work Jump to first page

Workflow n n What is workflow ? Examples F Document Workflow F Internet Based Workflow Jump to first page

Document Workflow Reviewer 1 Book Reviewer 2 Review Editor Author Reviewer 3 Feedback Book Authoring Jump to first page

Internet based Workflow Item Processing 1 Order Processing Inventory Control Item Assembling Delivery Process Item Processing N Financial Institute Shipment Notice Commodity Delivered Online Purchase Jump to first page

Workflow Models n Short Term Workflow F Example n Medium Term Workflow F Example n - Online Shopping - Project Proposal Long Term Workflow F Example - House Loan Jump to first page

Example Authoring System Jump to first page

XML : Plan <PLAN> <ROLE_ID="doc: author" ROLE_NAME="author" OBJECT_REF="doc" ROLE_INTERFACE="ajanta. User. Interface"> <PRINCIPAL URN="URN: ans: A"/> </ROLE> <ROLE_ID="doc: reviewer" ROLE_NAME="reviewer" OBJECT_REF="doc" ROLE_INTERFACE="ajanta. User. Interface"> <PRINCIPAL URN="URN: ans: B"/> <PRINCIPAL URN="URN: ans: C"/> </ROLE>. . </PLAN> XML Specification for Workflow Plan and Role Jump to first page

XML : Object <OBJECT OBJ_ID="doc" OBJ_NAME="Document" OBJ_TYPE="multipart/alternative"> <ACL/> <STATUS/> <OBJECT OBJ_ID="doc: ch 1" OBJ_NAME="Chapter 1" OBJ_TYPE="multipart/alternative"> <ACL/> <STATUS/> <OBJECT OBJ_ID="doc: ch 1: content" OBJ_NAME="Contents" OBJ_TYPE="text/plain">. . </OBJECT> XML Specification for an Object Jump to first page

XML : Access Control <ACL> <ACL_ENTRY> <GROUP ROLE_REF="doc: author"/> <PERMISSION NAME="read"/> <PERMISSION NAME="update"/> </ACL_ENTRY> <GROUP ROLE_REF="doc: reviewer"/> <PERMISSION NAME="read"/> </ACL_ENTRY> <ACL_ENTRY TYPE="negative"> <PRINCIPAL URN="URN: ans: C"/> <PERMISSION NAME="read"/> </ACL_ENTRY> </ACL> XML Specification for Role Based Access Control Jump to first page

XML : Operation <OPERATION OP_ID ="doc: ch 1: con: publish" OBJECT_REF="doc: ch 1: content" OPERATION_NAME="Content_Publish"> <ACL_ENTRY> <GROUP ROLE_REF="doc: author"/> <PERMISSION/> </ACL_ENTRY> </ACL> <CLONE_OBJECT> <TARGET ROLE_REF="doc: reviewer"/> </CLONE_OBJECT> </OPERATION> XML Specification for an Operation Jump to first page

XML : Agent Action <OPERATION OP_ID="doc: status" OBJECT_REF="status" OPERATION_NAME="Update. Status"> <ACL/> <AGENT_ACTION> <TARGET ROLE_REF="doc: reviewer"/> <REMOTE_METHOD OBJECT_REF="status" METHOD_NAME="update. Op"/> </AGENT_ACTION> </OPERATION> XML Specification for Agent Action Jump to first page

Implementation of Workflow using Mobile Agents n n n Integration of XML description and generic coordination facility Coordination facility - built using Ajanta System Next : F Ajanta Overview F Agent Based Implementation environment F Implementation Issues Jump to first page

Ajanta Overview n n n A Java based framework for programming mobile agents Agent - an autonomous entity migrating from node to node Key Features F Security F Authentication F Access Control F Resource Protection Jump to first page

Ajanta (cont. ) Agent-Agent Communication X Agent Migration Y Y Agent Server 1 Server- Server protocol Agent Server 2 Host A Physical Network Host B A Mobile Agent System Jump to first page

Role of Mobile Agents in Workflow n To encapsulate F Role specific protocols and interfaces F Security privileges based on user’s role and identity n n Dynamic alteration of workflow policies by updating the mobile agents Supporting Disconnected Operations Jump to first page

Agent-based Implementation Environment n Plan Creation and Consistency Checking F XML Plan preparation F Parsing and Consistency Checking n Plan Distribution with Authentication F Role specific Plan Distribution F Bare User Coordination Interface(UCI) derived from Agent. Server Class Jump to first page

(cont. ) n Creation of Role Based User Interface F UCI populated with objects and user interface F User Interface - from Convener or default generic interface n Execution of Coordination Operations F Access Control F Precondition Check F Cloning/Agent Action F Launching of Agents Jump to first page

Plan Creation and Distribution User A User B 3 3 2 XML specifications 2 1 Convener 2 1 2 3 Plan Creation and Consistency Checking Authentication 3 Role C Plan Distribution Jump to first page

System Level View Role Based User Interface Generic Coordination Facility Get Plan Convener Get Plan Role Based User Interface Generic Coordination Facility User A User B Jump to first page

User Coordination Interface Role Based User Interface Document Manager Proxy AGENT from a remote user’s UCI Objects obtained from Convener Access. Protocol Agent Environment UCI Implementation as an Agent Server Jump to first page

User Interface for Author Role Jump to first page

Execution of Coordination Operations a User A User B User Interface b c Shared Objects Agent-based Coordination Facility d Communication Network Dispatching of a Coordination Agent a b c d Shared Objects Agent-based Coordination Facility Jump to first page

Implementation Issues n Node Serialization not supported by current DOM Model F implemented n our own version DOM allows only string values to be stored in the XML tree Jump to first page

Conclusion n Main Contribution : methodology for building distributed workflow systems using a high level specification Able to leverage an agent based middleware and its security architecture Generic Specification for implementing any workflow/collaboration Jump to first page

Future Work n Dynamic System Behavior F Dynamic delegation of access rights F Adding entities to workflow dynamically n Manipulation of different MIME types of objects through User Interface Jump to first page

Jump to first page

XML DTD : Plan <!DOCTYPE PLAN [ <!ELEMENT PLAN (ROLE+, OBJECT+, OPERATION+)> <!ELEMENT ROLE (PRINCIPAL+)> <!ATTLIST ROLE_ID ID #REQUIRED ROLE_NAME CDATA #REQUIRED OBJECT_REF IDREF #REQUIRED ROLE_INTERFACE NMTOKEN #IMPLIED > <!ELEMENT PRINCIPAL EMPTY> <!ATTLIST PRINCIPAL URN CDATA #REQUIRED >. . . ]> <PLAN> <ROLE_ID="doc: author" ROLE_NAME="author" OBJECT_REF="doc" ROLE_INTERFACE="ajanta. User. Interface"> <PRINCIPAL URN="URN: ans: A"/> </ROLE> <ROLE_ID="doc: reviewer" ROLE_NAME="reviewer" OBJECT_REF="doc" ROLE_INTERFACE="ajanta. User. Interface"> <PRINCIPAL URN="URN: ans: B"/> <PRINCIPAL URN="URN: ans: C"/> </ROLE>. . </PLAN> Schema and Example for Workflow Plan and Role Jump to first page

XML DTD : Objects <!ELEMENT OBJECT (ACL, STATUS, METHOD*, OBJECT*) > <!ATTLIST OBJECT OBJ_ID ID #REQUIRED OBJ_NAME CDATA #REQUIRED OBJ_TYPE CDATA #REQUIRED CODE_BASE NMTOKEN "null" OBJ_DATA CDATA "null" > <!ELEMENT METHOD ( ACL, PARAMETER*)> <!ATTLIST METHOD_NAME NMTOKEN #REQUIRED > <!ELEMENT STATUS OPERATION_PERFORMED*)> <!ELEMENT OPERATION_PERFORMED EMPTY> <!ATTLIST OPERATION_PERFORMED OP_REF IDREF #REQUIRED OPERATOR CDATA #IMPLIED > <OBJECT OBJ_ID="doc" OBJ_NAME="Document" OBJ_TYPE="multipart/alternative"> <ACL/> <STATUS/> <OBJECT OBJ_ID="doc: ch 1" OBJ_NAME="Chapter 1" OBJ_TYPE="multipart/alternative"> <ACL/> <STATUS/> <OBJECT OBJ_ID="doc: ch 1: content" OBJ_NAME="Contents" OBJ_TYPE="text/plain">. . </OBJECT> Schema and Example for Object Jump to first page

XML DTD : Access Control <!ELEMENT ACL (ACL_ENTRY*)> <!ATTLIST ACL_NAME CDATA #IMPLIED ACL_OWNER CDATA #IMPLIED > <!ELEMENT ACL_ENTRY ((PRINCIPAL|GROUP), PERMISSION*)> <!ATTLIST ACL_ENTRY TYPE (positive|negative) "positive" > <!ELEMENT GROUP EMPTY> <!ATTLIST GROUP ROLE_REF IDREF #REQUIRED > <!ELEMENT PERMISSION EMPTY> <!ATTLIST PERMISSION NAME (execute|update|read) "execute" > <ACL_ENTRY> <GROUP ROLE_REF="doc: author"/> <PERMISSION NAME="read"/> <PERMISSION NAME="update"/> </ACL_ENTRY> <GROUP ROLE_REF="doc: reviewer"/> <PERMISSION NAME="read"/> </ACL_ENTRY> <ACL_ENTRY TYPE="negative"> <PRINCIPAL URN="URN: ans: C"/> <PERMISSION NAME="read"/> </ACL_ENTRY> </ACL> Schema and Example for Role Based Access Control Jump to first page

XML DTD : Operation <!ELEMENT OPERATION (ACL, PRE_CONDITION* (CLONE_OBJECT | AGENT_ACTION+))> <!ATTLIST OPERATION OP_ID ID #REQUIRED OBJECT_REF IDREFS #REQUIRED OPERATION_NAME NMTOKEN #REQUIRED > <!ELEMENT PRE_CONDITION EMPTY> <!ATTLIST PRE_CONDITION OP_REF IDREFS #REQUIRED > <!ELEMENT CLONE_OBJECT (TARGET*)> <!ELEMENT TARGET EMPTY> <!ATTLIST TARGET ROLE_REF IDREFS #REQUIRED > <OPERATION OP_ID ="doc: ch 1: con: publish" OBJECT_REF="doc: ch 1: content" OPERATION_NAME="Content_Publish"> <ACL_ENTRY> <GROUP ROLE_REF="doc: author"/> <PERMISSION/> </ACL_ENTRY> </ACL> <CLONE_OBJECT> <TARGET ROLE_REF="doc: reviewer"/> </CLONE_OBJECT> </OPERATION> Schema and Example for Operation Jump to first page
- Slides: 36