implementing distributed workflow systems from xml specifications
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Jump to first page
ImplementingDistributed Workflow Systems from XML Specifications
Vineet KakaniDept of Computer ScienceUniversity of Minnesotahttp://www.cs.umn.edu/Ajanta
Jump to first page
Project Goals
Specification of a generic workflow
Construction of workflow from high level specifications
Rapid construction of any workflow
Jump to first page
Project Contributions
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 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
Jump to first page
Approach Overview
Devising a XML schema Description of a Workflow Plan
Shared Objects Roles Privileges Coordination Operations
Interfacing plan with generic coordination facility
Jump to first page
WorkflowEnvironment
Schema
XML Specification
of a Workflow
Plan
Agent based Distributed Workflow
Systemusing Ajanta
Steps in building distributed Workflow
Jump to first page
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
Jump to first page
Workflow
What is workflow ? Examples
Document Workflow Internet Based Workflow
Jump to first page
Document Workflow
Book Authoring
Reviewer 1
Book Reviewer 2
Reviewer 3
Review Editor
Feedback
Author
Jump to first page
Internet based Workflow
Online Purchase
InventoryControl
Item Processing
N
Item Processing
1
Item Assembling
DeliveryProcess
Shipment Notice
Commodity Delivered
Order Processing
Financial Institute
Jump to first page
Workflow Models
Short Term Workflow Example - Online Shopping
Medium Term Workflow Example - Project Proposal
Long Term Workflow Example - House Loan
Jump to first page
Example Authoring System
Jump to first page
XML : Plan<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 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: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 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>
<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: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 Specification for an Operation
Jump to first page
XML : Agent Action
<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 Specification for Agent Action
Jump to first page
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
Jump to first page
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
Jump to first page
Ajanta (cont.)
Agent Server 1
X
Host A
Agent Server 2
Y
Host B
Y
Agent Migration
Server- Server protocol
Physical Network
Agent-Agent Communication
A Mobile Agent System
Jump to first page
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
Jump to first page
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
Jump to first page
(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
Jump to first page
Plan Creation and Distribution
Plan Creation and Consistency Checking
Convener
User A
Role C
User B
XML specifications
2
3
2
3
3
2
1
Plan Distribution
Authentication
1
2
3
Jump to first page
System Level View
Get Plan Get Plan
Role Based User Interface
Generic Coordination Facility
Role Based User Interface
Generic Coordination Facility
Role Based User Interface
Generic Coordination Facility
User A User B
Convener
Jump to first page
User Coordination Interface
Agent Environment
AccessProtocol
AGENT from a remote
user’s UCI
Role Based User Interface
Document Manager
Proxy
Objects obtained from Convener
UCI Implementation as an Agent Server
Jump to first page
User Interface
User Interface for Author Role
Jump to first page
Execution of Coordination Operations
a b dc
User Interface
Shared Objects
Agent-based Coordination Facility
User A
a b dc
User Interface
Shared Objects
Agent-based Coordination Facility
User B
CommunicationNetwork
Dispatching of a Coordination Agent
Jump to first page
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
Jump to first page
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
Jump to first page
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
Jump to first page
Jump to first page
XML DTD : Plan<!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>
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
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>
Schema and Example for Object
Jump to first page
XML DTD : Access Control<!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>
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: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>
Schema and Example for Operation