1 / 36

Implementing Distributed Workflow Systems from XML Specifications

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

Download Presentation

Implementing Distributed Workflow Systems from XML Specifications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ImplementingDistributed Workflow Systems from XML Specifications Vineet Kakani Dept of Computer Science University of Minnesota http://www.cs.umn.edu/Ajanta

  2. Project Goals • Specification of a generic workflow • Construction of workflow from high level specifications • Rapid construction of any workflow

  3. Project Contributions • Use of XML for specifying the workflow entities • Design and Implementation of a generic distributed collaboration facility built using agents

  4. 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

  5. Approach Overview • Devising a XML schema • Description of a Workflow Plan • Shared Objects • Roles • Privileges • Coordination Operations • Interfacing plan with generic coordination facility

  6. Workflow Environment Schema XML Specification of a Workflow Plan Agent based Distributed Workflow System using Ajanta Steps in building distributed Workflow

  7. 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

  8. Workflow • What is workflow ? • Examples • Document Workflow • Internet Based Workflow

  9. Reviewer 1 Book Reviewer 2 Review Editor Author Reviewer 3 Feedback Book Authoring Document Workflow

  10. 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

  11. Workflow Models • Short Term Workflow • Example - Online Shopping • Medium Term Workflow • Example - Project Proposal • Long Term Workflow • Example - House Loan

  12. Example Authoring System

  13. <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

  14. <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

  15. <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

  16. <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

  17. <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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. (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

  24. 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

  25. 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

  26. 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

  27. User Interface User Interface for Author Role

  28. 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

  29. 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

  30. 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

  31. 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

  32. <!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

  33. <!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

  34. <!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

  35. <!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

More Related