22
Simple Simple Workflow Workflow Access Access Protocol Protocol (SWAP) (SWAP) Keith Swenson Keith Swenson July 14, 1998 July 14, 1998

Simple Workflow Access Protocol (SWAP) Keith Swenson July 14, 1998

Embed Size (px)

Citation preview

Simple WorkflowSimple WorkflowAccess Protocol Access Protocol

(SWAP)(SWAP)

Keith SwensonKeith Swenson

July 14, 1998July 14, 1998

Overview WorkflowWorkflow

RequirementsRequirements Design DetailsDesign Details Relationship to:Relationship to:

WfMC standardsWfMC standards Event NotificationEvent Notification

Workflow Management Coalition Started in ‘93Started in ‘93 Organization of over 200 vendors, users, Organization of over 200 vendors, users,

analystsanalysts Purpose is toPurpose is to

Educate the market on workflowEducate the market on workflow Develop interoperability standardsDevelop interoperability standards

Based on a workflow architectureBased on a workflow architecture http://www.wfmc.org/http://www.wfmc.org/

The Nature of Workflow A model of a business processA model of a business process Every organization is differentEvery organization is different Aggregate organizational behavior is not Aggregate organizational behavior is not

predictablepredictable Effect on Design:Effect on Design:

Customized for End UserCustomized for End User Islands of AutomationIslands of Automation

Workflow == Integration Workflow is an integrating technologyWorkflow is an integrating technology

different peopledifferent people different tasksdifferent tasks different toolsdifferent tools different placesdifferent places together in one processtogether in one process

Service: Black Box There is a service “out there” which takes a There is a service “out there” which takes a

long time to completelong time to complete We want to configure a program “here” to We want to configure a program “here” to

call the service.call the service. How much does the program “here” have to How much does the program “here” have to

be given about the service “there” in order be given about the service “there” in order to start it, monitor it, control it, and be to start it, monitor it, control it, and be notified when it is completed?notified when it is completed?

Two Other Standards jFlow - OMG technologyjFlow - OMG technology

requires CORBArequires CORBA requires Business Objects (BOCA)requires Business Objects (BOCA) firewall problems (domains of authority)firewall problems (domains of authority)

WfMC IF4 / MIMEWfMC IF4 / MIME unreliable email overheadunreliable email overhead unpredictable delaysunpredictable delays error handling is complexerror handling is complex

SWAP Problem StatementA standard protocol is needed to integrate work providers, A standard protocol is needed to integrate work providers, asynchronous services, across the intranet/internet and asynchronous services, across the intranet/internet and provide for their interaction. The integration and interactions provide for their interaction. The integration and interactions consist of control and monitoring of the work. Control consist of control and monitoring of the work. Control means creating the work, setting up the work, starting the means creating the work, setting up the work, starting the work, stopping the work, being informed of exceptions, work, stopping the work, being informed of exceptions, being informed of the completion of the work and getting the being informed of the completion of the work and getting the results of the work Monitoring means checking on the results of the work Monitoring means checking on the current status of the work and getting a history of the current status of the work and getting a history of the execution of the work. execution of the work.

The protocol should be light weight and easy to implement, The protocol should be light weight and easy to implement, so that a variety of devices and situations can be covered. so that a variety of devices and situations can be covered.

Basic Interaction Start with URI of the ProcessDefinitionStart with URI of the ProcessDefinition Invoke the Invoke the createProcessInstancecreateProcessInstance command, command,

get the URI of ProcessInstanceget the URI of ProcessInstance Give the URI of the Observer to the Give the URI of the Observer to the

ProcessInstanceProcessInstance When done, the ProcessInstance invokes When done, the ProcessInstance invokes

the the completedcompleted command on the Observer. command on the Observer.

Observer / Service Model

ProcessDefinition

Observer ProcessInstance

StartPauseResumeCheck StatusUpdate DataCheck Results

EventsCompletedResults

Both Polling & Event Oriented Using the URI of the ProcessInstance, the Using the URI of the ProcessInstance, the

propFindpropFind command is invoked, to retrieve command is invoked, to retrieve current status.current status. Needed when observer has no permanent web Needed when observer has no permanent web

address.address. When observer has an URI, then register it When observer has an URI, then register it

to receive the completion event.to receive the completion event. Useful to avoid traffic due to polling.Useful to avoid traffic due to polling.

Work Breakdown

Action

Sub-Step 1

Sub-Step 2

Sub-Step 3

Action

Step 1 Step 2 Step 3

Two parts to each action

ProcessInstanceObject

ObservingObject

ProcessInstanceInterface

ObserverInterface

Workflow Process

ActivityObserver

ActivityObserver

ActivityObserver

ProcessInstance

ProcessInstance

ObserverObserverObserver

Hierarchical Workflow

ActivityObserver

ActivityObserver

ActivityObserver

ProcessInstance

ActivityObserver

ActivityObserver

ActivityObserver

ProcessInstance

AutomatedTool

InvokedAgent

AutomatedTool

InvokedAgent

AutomatedTool

Observer / Process Model

ProcessDefinition

Observer ProcessInstance

ProcessDefinition

ActivityObserver

ProcessInstsance

Organization to Organization

W

W

HTTP

HTTP

HTTP

HTTP

Firewall

Is SWAP an Event Protocol? Observer / Process is a RelationshipObserver / Process is a Relationship

each object has some knowledge of and each object has some knowledge of and requirements on the otherrequirements on the other

Need for other eventsNeed for other events achievement of a particular step in a processachievement of a particular step in a process a particular condition on the data valuesa particular condition on the data values SWAP does not handle theseSWAP does not handle these

SWAP != Event Notification SWAP originally had a SUBSCRIBE / SWAP originally had a SUBSCRIBE /

UNSUBSCRIBE methodsUNSUBSCRIBE methods Because no event notification service existedBecause no event notification service existed

Current feeling is to pull these out and Current feeling is to pull these out and adopt whatever event standard is adopted adopt whatever event standard is adopted by IETFby IETF

Lightweight Events Remember the islands of automation?Remember the islands of automation?

existing workflow systems existing workflow systems in existing departmentsin existing departments workflow systems themselves are reliableworkflow systems themselves are reliable need to get them interoperatingneed to get them interoperating

The requirement of a separate event service The requirement of a separate event service is problematicis problematic

SWAP Status http://www.ics.uci.edu/pub/ietf/swap/http://www.ics.uci.edu/pub/ietf/swap/ http://people.netscape.com/kswenson/SWAP/http://people.netscape.com/kswenson/SWAP/ Not yet a working group, Not yet a working group,

charter under reviewcharter under review requirements, scenarios, spec in progressrequirements, scenarios, spec in progress

Concentration on demonstration of Concentration on demonstration of operating codeoperating code

Planning meeting at IETF ChicagoPlanning meeting at IETF Chicago

Summary WorkflowWorkflow

RequirementsRequirements Design DetailsDesign Details Relationship to:Relationship to:

WfMC standardsWfMC standards Event NotificationEvent Notification