Title: Implementing Distributed Workflow Systems from XML Specifications
1ImplementingDistributed Workflow Systems from
XML Specifications
Vineet Kakani Dept of Computer Science University
of Minnesota http//www.cs.umn.edu/Ajanta
2Project Goals
- Specification of a generic workflow
- Construction of workflow from high level
specifications - Rapid construction of any workflow
3Project Contributions
- Use of XML for specifying the workflow entities
- Design and Implementation of a generic
distributed collaboration facility built using
agents
4Publications
- 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
5Approach Overview
- Devising a XML schema
- Description of a Workflow Plan
- Shared Objects
- Roles
- Privileges
- Coordination Operations
- Interfacing plan with generic coordination
facility
6Steps in building distributed Workflow
7Outline 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
8Workflow
- What is workflow ?
- Examples
- Document Workflow
- Internet Based Workflow
9Document Workflow
10Internet based Workflow
11Workflow Models
- Short Term Workflow
- Example - Online Shopping
- Medium Term Workflow
- Example - Project Proposal
- Long Term Workflow
- Example - House Loan
12Example Authoring System
13XML Plan
- ltPLANgt
- ltROLE ROLE_ID"docauthor"
- ROLE_NAME"author"
- OBJECT_REF"doc"
- ROLE_INTERFACE"ajanta.UserInterface"gt
- ltPRINCIPAL URN"URNansA"/gt
- lt/ROLEgt
- ltROLE ROLE_ID"docreviewer"
- ROLE_NAME"reviewer"
- OBJECT_REF"doc"
- ROLE_INTERFACE"ajanta.UserInterface"gt
- ltPRINCIPAL URN"URNansB"/gt
- ltPRINCIPAL URN"URNansC"/gt
- lt/ROLEgt
- .........
- lt/PLANgt
XML Specification for Workflow Plan and Role
14XML Object
- ltOBJECT OBJ_ID"doc"
- OBJ_NAME"Document"
- OBJ_TYPE"multipart/alternative"gt
- ltACL/gt
- ltSTATUS/gt
-
- ltOBJECT OBJ_ID"docch1"
- OBJ_NAME"Chapter1"
- OBJ_TYPE"multipart/alternative"gt
- ltACL/gt
- ltSTATUS/gt
- ltOBJECT OBJ_ID"docch1content"
- OBJ_NAME"Contents"
- OBJ_TYPE"text/plain"gt
- ....
- lt/OBJECTgt
XML Specification for an Object
15XML Access Control
- ltACLgt
- ltACL_ENTRYgt
- ltGROUP ROLE_REF"docauthor"/gt
- ltPERMISSION NAME"read"/gt
- ltPERMISSION NAME"update"/gt
- lt/ACL_ENTRYgt
- ltACL_ENTRYgt
- ltGROUP ROLE_REF"docreviewer"/gt
- ltPERMISSION NAME"read"/gt
- lt/ACL_ENTRYgt
- ltACL_ENTRY TYPE"negative"gt
- ltPRINCIPAL URN"URNansC"/gt
- ltPERMISSION NAME"read"/gt
- lt/ACL_ENTRYgt
- lt/ACLgt
XML Specification for Role Based Access Control
16XML Operation
- ltOPERATION OP_ID "docch1conpublish"
- OBJECT_REF"docch1content"
- OPERATION_NAME"Content_Publish"gt
- ltACLgt
- ltACL_ENTRYgt
- ltGROUP ROLE_REF"docauthor"/gt
- ltPERMISSION/gt
- lt/ACL_ENTRYgt
- lt/ACLgt
- ltCLONE_OBJECTgt
- ltTARGET ROLE_REF"docreviewer"/gt
- lt/CLONE_OBJECTgt
- lt/OPERATIONgt
XML Specification for an Operation
17XML Agent Action
- ltOPERATION OP_ID"docstatus"
- OBJECT_REF"status"
- OPERATION_NAME"UpdateStatus"gt
- ltACL/gt
- ltAGENT_ACTIONgt
- ltTARGET ROLE_REF"docreviewer"/gt
- ltREMOTE_METHOD
- OBJECT_REF"status"
- METHOD_NAME"updateOp"/
gt - lt/AGENT_ACTIONgt
- lt/OPERATIONgt
XML Specification for Agent Action
18Implementation 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
19Ajanta 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
Host B
Physical Network
A Mobile Agent System
21Role of Mobile Agents in Workflow
- To encapsulate
- Role specific protocols and interfaces
- Security privileges based on users role and
identity - Dynamic alteration of workflow policies by
updating the mobile agents - Supporting Disconnected Operations
22Agent-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
24Plan Creation and Distribution
User A
User B
3
3
2
2
Convener
XML specifications
1
3
2
Plan Creation and Consistency Checking
Role C
1
Authentication
2
Plan Distribution
3
25System 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
26User Coordination Interface
Role Based User Interface
Document Manager
AGENT from a remote users UCI
Proxy
Objects obtained from Convener
AccessProtocol
Agent Environment
UCI Implementation as an Agent Server
27User Interface
User Interface for Author Role
28Execution of Coordination Operations
User A
User B
Communication Network
User Interface
User Interface
a
b
d
c
a
b
d
c
Shared Objects
Shared Objects
Agent-based Coordination Facility
Agent-based Coordination Facility
Dispatching of a Coordination Agent
29Implementation 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
30Conclusion
- 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
31Future 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(No Transcript)
33XML DTD Plan
- ltPLANgt
- ltROLE ROLE_ID"docauthor"
- ROLE_NAME"author"
- OBJECT_REF"doc"
- ROLE_INTERFACE"ajanta.UserInterface"gt
- ltPRINCIPAL URN"URNansA"/gt
- lt/ROLEgt
- ltROLE ROLE_ID"docreviewer"
- ROLE_NAME"reviewer"
- OBJECT_REF"doc"
- ROLE_INTERFACE"ajanta.UserInterface"gt
- ltPRINCIPAL URN"URNansB"/gt
- ltPRINCIPAL URN"URNansC"/gt
- lt/ROLEgt
- .........
- lt/PLANgt
- lt!DOCTYPE PLAN
- lt!ELEMENT PLAN (ROLE, OBJECT,
-
OPERATION)gt - lt!ELEMENT ROLE (PRINCIPAL)gt
- lt!ATTLIST ROLE
- ROLE_ID ID REQUIRED
- ROLE_NAME CDATA REQUIRED
- OBJECT_REF IDREF REQUIRED
- ROLE_INTERFACE NMTOKEN IMPLIED
- gt
- lt!ELEMENT PRINCIPAL EMPTYgt
- lt!ATTLIST PRINCIPAL
- URN CDATA REQUIRED
- gt
- ......
- gt
Schema and Example for Workflow Plan and Role
34XML DTD Objects
- lt!ELEMENT OBJECT (ACL, STATUS,METHOD, OBJECT) gt
- lt!ATTLIST OBJECT
- OBJ_ID ID REQUIRED
- OBJ_NAME CDATA REQUIRED
- OBJ_TYPE CDATA REQUIRED
- CODE_BASE NMTOKEN "null"
- OBJ_DATA CDATA "null"
- gt
- lt!ELEMENT METHOD ( ACL, PARAMETER)gt
- lt!ATTLIST METHOD
- METHOD_NAME NMTOKEN REQUIRED
- gt
- lt!ELEMENT STATUS OPERATION_PERFORMED)gt
- lt!ELEMENT OPERATION_PERFORMED EMPTYgt
- lt!ATTLIST OPERATION_PERFORMED
- OP_REF IDREF REQUIRED
- OPERATOR CDATA IMPLIED
- gt
- ltOBJECT OBJ_ID"doc"
- OBJ_NAME"Document"
- OBJ_TYPE"multipart/alternative"gt
- ltACL/gt
- ltSTATUS/gt
- ltOBJECT OBJ_ID"docch1"
- OBJ_NAME"Chapter1"
- OBJ_TYPE"multipart/alternative"gt
- ltACL/gt
- ltSTATUS/gt
- ltOBJECT OBJ_ID"docch1content"
- OBJ_NAME"Contents"
- OBJ_TYPE"text/plain"gt
- ....
- lt/OBJECTgt
Schema and Example for Object
35XML DTD Access Control
- lt!ELEMENT ACL (ACL_ENTRY)gt
- lt!ATTLIST ACL
- ACL_NAME CDATA IMPLIED
- ACL_OWNER CDATA IMPLIED
- gt
- lt!ELEMENT ACL_ENTRY ((PRINCIPALGROUP),
PERMISSION)gt - lt!ATTLIST ACL_ENTRY
- TYPE (positivenegative) "positive"
- gt
- lt!ELEMENT GROUP EMPTYgt
- lt!ATTLIST GROUP
- ROLE_REF IDREF REQUIRED
- gt
- lt!ELEMENT PERMISSION EMPTYgt
- lt!ATTLIST PERMISSION
- NAME (executeupdateread) "execute"
- gt
- ltACLgt
- ltACL_ENTRYgt
- ltGROUP ROLE_REF"docauthor"/gt
- ltPERMISSION NAME"read"/gt
- ltPERMISSION NAME"update"/gt
- lt/ACL_ENTRYgt
- ltACL_ENTRYgt
- ltGROUP ROLE_REF"docreviewer"/gt
- ltPERMISSION NAME"read"/gt
- lt/ACL_ENTRYgt
- ltACL_ENTRY TYPE"negative"gt
- ltPRINCIPAL URN"URNansC"/gt
- ltPERMISSION NAME"read"/gt
- lt/ACL_ENTRYgt
- lt/ACLgt
Schema and Example for Role Based Access Control
36XML DTD Operation
- lt!ELEMENT OPERATION (ACL, PRE_CONDITION
(CLONE_OBJECT AGENT_ACTION))gt - lt!ATTLIST OPERATION
- OP_ID ID REQUIRED
- OBJECT_REF IDREFS REQUIRED
- OPERATION_NAME NMTOKEN REQUIRED
- gt
- lt!ELEMENT PRE_CONDITION EMPTYgt
- lt!ATTLIST PRE_CONDITION
- OP_REF IDREFS REQUIRED
- gt
- lt!ELEMENT CLONE_OBJECT (TARGET)gt
- lt!ELEMENT TARGET EMPTYgt
- lt!ATTLIST TARGET
- ROLE_REF IDREFS REQUIRED
- gt
- ltOPERATION OP_ID "docch1conpublish"
- OBJECT_REF"docch1content"
- OPERATION_NAME"Content_Publish"gt
- ltACLgt
- ltACL_ENTRYgt
- ltGROUP ROLE_REF"docauthor"/gt
- ltPERMISSION/gt
- lt/ACL_ENTRYgt
- lt/ACLgt
- ltCLONE_OBJECTgt
- ltTARGET ROLE_REF"docreviewer"/gt
- lt/CLONE_OBJECTgt
- lt/OPERATIONgt
Schema and Example for Operation