implementing distributed workflow systems from xml specifications

Post on 31-Dec-2015

31 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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 Presentation

TRANSCRIPT

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

top related