360 likes | 470 Views
Implementing Distributed Workflow Systems from XML Specifications. Vineet Kakani Dept of Computer Science University of Minnesota http://www.cs.umn.edu/Ajanta. Project Goals. Specification of a generic workflow Construction of workflow from high level specifications
E N D
ImplementingDistributed Workflow Systems from XML Specifications Vineet Kakani Dept of Computer Science University of Minnesota http://www.cs.umn.edu/Ajanta
Project Goals • Specification of a generic workflow • Construction of workflow from high level specifications • Rapid construction of any workflow
Project Contributions • Use of XML for specifying the workflow entities • Design and Implementation of a generic distributed collaboration facility built using agents
Publications • Distributed Collaborations using Network Mobile Agents • To appear in ASA/MA 2000 • By Anand R Tripathi, Tanvir Ahmed, Vineet Kakani and Shremattie Jaman • Implementing Distributed Workflow Systems from XML Specifications • Submitted to CSCW 2000 • By Anand R Tripathi, Tanvir Ahmed, Vineet Kakani and Shremattie Jaman
Approach Overview • Devising a XML schema • Description of a Workflow Plan • Shared Objects • Roles • Privileges • Coordination Operations • Interfacing plan with generic coordination facility
Workflow Environment Schema XML Specification of a Workflow Plan Agent based Distributed Workflow System using Ajanta Steps in building distributed Workflow
Outline of Presentation • Workflow • definition • examples • XML schema and example of Workflow Plan using an authoring system • Design of an agent based middleware • Conclusions and Future work
Workflow • What is workflow ? • Examples • Document Workflow • Internet Based Workflow
Reviewer 1 Book Reviewer 2 Review Editor Author Reviewer 3 Feedback Book Authoring Document Workflow
Item Processing 1 Order Processing Inventory Control Item Assembling Delivery Process Financial Institute Item Processing N Shipment Notice Commodity Delivered Online Purchase Internet based Workflow
Workflow Models • Short Term Workflow • Example - Online Shopping • Medium Term Workflow • Example - Project Proposal • Long Term Workflow • Example - House Loan
<PLAN> <ROLE ROLE_ID="doc:author" ROLE_NAME="author" OBJECT_REF="doc" ROLE_INTERFACE="ajanta.UserInterface"> <PRINCIPAL URN="URN:ans:A"/> </ROLE> <ROLE ROLE_ID="doc:reviewer" ROLE_NAME="reviewer" OBJECT_REF="doc" ROLE_INTERFACE="ajanta.UserInterface"> <PRINCIPAL URN="URN:ans:B"/> <PRINCIPAL URN="URN:ans:C"/> </ROLE> ......... </PLAN> XML : Plan XML Specification for Workflow Plan and Role
<OBJECT OBJ_ID="doc" OBJ_NAME="Document" OBJ_TYPE="multipart/alternative"> <ACL/> <STATUS/> <OBJECT OBJ_ID="doc:ch1" OBJ_NAME="Chapter1" OBJ_TYPE="multipart/alternative"> <ACL/> <STATUS/> <OBJECT OBJ_ID="doc:ch1:content" OBJ_NAME="Contents" OBJ_TYPE="text/plain"> .... </OBJECT> XML : Object XML Specification for an Object
<ACL> <ACL_ENTRY> <GROUP ROLE_REF="doc:author"/> <PERMISSION NAME="read"/> <PERMISSION NAME="update"/> </ACL_ENTRY> <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 : Access Control XML Specification for Role Based Access Control
<OPERATION OP_ID ="doc:ch1:con:publish" OBJECT_REF="doc:ch1:content" OPERATION_NAME="Content_Publish"> <ACL> <ACL_ENTRY> <GROUP ROLE_REF="doc:author"/> <PERMISSION/> </ACL_ENTRY> </ACL> <CLONE_OBJECT> <TARGET ROLE_REF="doc:reviewer"/> </CLONE_OBJECT> </OPERATION> XML : Operation XML Specification for an Operation
<OPERATION OP_ID="doc:status" OBJECT_REF="status" OPERATION_NAME="UpdateStatus"> <ACL/> <AGENT_ACTION> <TARGET ROLE_REF="doc:reviewer"/> <REMOTE_METHOD OBJECT_REF="status" METHOD_NAME="updateOp"/> </AGENT_ACTION> </OPERATION> XML : Agent Action XML Specification for Agent Action
Implementation of Workflow using Mobile Agents • Integration of XML description and generic coordination facility • Coordination facility - built using Ajanta System • Next : • Ajanta Overview • Agent Based Implementation environment • Implementation Issues
Ajanta Overview • A Java based framework for programming mobile agents • Agent - an autonomous entity migrating from node to node • Key Features • Security • Authentication • Access Control • Resource Protection
Ajanta (cont.) Agent-Agent Communication Agent Migration X Y Y Agent Server 1 Agent Server 2 Server- Server protocol Host A Physical Network Host B A Mobile Agent System
Role of Mobile Agents in Workflow • To encapsulate • Role specific protocols and interfaces • Security privileges based on user’s role and identity • Dynamic alteration of workflow policies by updating the mobile agents • Supporting Disconnected Operations
Agent-based Implementation Environment • Plan Creation and Consistency Checking • XML Plan preparation • Parsing and Consistency Checking • Plan Distribution with Authentication • Role specific Plan Distribution • Bare User Coordination Interface(UCI) derived from AgentServer Class
(cont.) • Creation of Role Based User Interface • UCI populated with objects and user interface • User Interface - from Convener or default generic interface • Execution of Coordination Operations • Access Control • Precondition Check • Cloning/Agent Action • Launching of Agents
Plan Creation and Distribution User A User B 3 3 2 2 XML specifications Convener 1 3 2 Plan Creation and Consistency Checking Role C 1 2 Authentication 3 Plan Distribution
System Level View Role Based User Interface Generic Coordination Facility Convener Get Plan Get Plan Role Based User Interface Role Based User Interface Generic Coordination Facility Generic Coordination Facility User A User B
User Coordination Interface Role Based User Interface Document Manager AGENT from a remote user’s UCI Proxy Objects obtained from Convener AccessProtocol Agent Environment UCI Implementation as an Agent Server
User Interface User Interface for Author Role
Execution of Coordination Operations User A User B Communication Network User Interface User Interface a b c d a b c d Shared Objects Shared Objects Agent-based Coordination Facility Agent-based Coordination Facility Dispatching of a Coordination Agent
Implementation Issues • Node Serialization not supported by current DOM Model • implemented our own version • DOM allows only string values to be stored in the XML tree
Conclusion • 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
Future Work • Dynamic System Behavior • Dynamic delegation of access rights • Adding entities to workflow dynamically • Manipulation of different MIME types of objects through User Interface
<!DOCTYPE PLAN [ <!ELEMENT PLAN (ROLE+, OBJECT+, OPERATION+)> <!ELEMENT ROLE (PRINCIPAL+)> <!ATTLIST ROLE 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 ROLE_ID="doc:author" ROLE_NAME="author" OBJECT_REF="doc" ROLE_INTERFACE="ajanta.UserInterface"> <PRINCIPAL URN="URN:ans:A"/> </ROLE> <ROLE ROLE_ID="doc:reviewer" ROLE_NAME="reviewer" OBJECT_REF="doc" ROLE_INTERFACE="ajanta.UserInterface"> <PRINCIPAL URN="URN:ans:B"/> <PRINCIPAL URN="URN:ans:C"/> </ROLE> ......... </PLAN> XML DTD : Plan Schema and Example for Workflow Plan and Role
<!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 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:ch1" OBJ_NAME="Chapter1" OBJ_TYPE="multipart/alternative"> <ACL/> <STATUS/> <OBJECT OBJ_ID="doc:ch1:content" OBJ_NAME="Contents" OBJ_TYPE="text/plain"> .... </OBJECT> XML DTD : Objects Schema and Example for Object
<!ELEMENT ACL (ACL_ENTRY*)> <!ATTLIST ACL 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> <ACL_ENTRY> <GROUP ROLE_REF="doc:author"/> <PERMISSION NAME="read"/> <PERMISSION NAME="update"/> </ACL_ENTRY> <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 DTD : Access Control Schema and Example for Role Based Access Control
<!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:ch1:con:publish" OBJECT_REF="doc:ch1:content" OPERATION_NAME="Content_Publish"> <ACL> <ACL_ENTRY> <GROUP ROLE_REF="doc:author"/> <PERMISSION/> </ACL_ENTRY> </ACL> <CLONE_OBJECT> <TARGET ROLE_REF="doc:reviewer"/> </CLONE_OBJECT> </OPERATION> XML DTD : Operation Schema and Example for Operation