ࡱ > W Z N O P Q R S T U V a bjbj͚ I\I\(G X X К К К К К D t r ( @ 3 f l | | | | | | | $ D * | 9 К | К К H , К К | | . _ #g 0jMw . ` | B 0 r b T $ $ /g =g $ К Qg h | | r $ X > : [MS-WFIM]: Workflow Instance Management Protocol
Intellectual Property Rights Notice for Open Specifications Documentation
Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages, standards as well as overviews of the interaction among each of these technologies.
Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you may make copies of it in order to develop implementations of the technologies described in the Open Specifications and may distribute portions of it in your implementations using these technologies or your documentation as necessary to properly document the implementation. You may also distribute in your implementation, with or without modification, any schema, IDLs, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications.
No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.
Patents. Microsoft has patents that may cover your implementations of the technologies described in the Open Specifications. Neither this notice nor Microsoft's delivery of the documentation grants any licenses under those or any other Microsoft patents. However, a given Open Specification may be covered by Microsoft HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=214445" Open Specification Promise or the HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=214448" Community Promise. If you would prefer a written license, or if the technologies described in the Open Specifications are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting HYPERLINK "mailto:iplg@microsoft.com" iplg@microsoft.com.
Trademarks. The names of companies and products contained in this documentation may be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights. For a list of Microsoft trademarks, visit HYPERLINK "http://www.microsoft.com/trademarks" www.microsoft.com/trademarks.
Fictitious Names. The example companies, organizations, products, domain names, email addresses, logos, people, places, and events depicted in this documentation are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.
Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than specifically described above, whether by implication, estoppel, or otherwise.
Tools. The Open Specifications do not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments you are free to take advantage of them. Certain Open Specifications are intended for use in conjunction with publicly available standard specifications and network programming art, and assumes that the reader either is familiar with the aforementioned material or has immediate access to it.
Revision Summary
DateRevision HistoryRevision ClassComments09/25/20090.1MajorFirst Release.11/06/20090.1.1EditorialRevised and edited the technical content.12/18/20090.1.2EditorialRevised and edited the technical content.01/29/20100.2MinorUpdated the technical content.03/12/20100.2.1EditorialRevised and edited the technical content.04/23/20100.3MinorUpdated the technical content.06/04/20100.3.1EditorialRevised and edited the technical content.07/16/20101.0MajorSignificantly changed the technical content.08/27/20101.0No changeNo changes to the meaning, language, or formatting of the technical content.10/08/20101.0No changeNo changes to the meaning, language, or formatting of the technical content.11/19/20101.0No changeNo changes to the meaning, language, or formatting of the technical content.01/07/20112.0MajorSignificantly changed the technical content.02/11/20112.0No changeNo changes to the meaning, language, or formatting of the technical content.03/25/20112.0No changeNo changes to the meaning, language, or formatting of the technical content.05/06/20112.0No changeNo changes to the meaning, language, or formatting of the technical content.06/17/20112.1MinorClarified the meaning of the technical content.09/23/20112.1No changeNo changes to the meaning, language, or formatting of the technical content.12/16/20113.0MajorSignificantly changed the technical content.03/30/20123.0No changeNo changes to the meaning, language, or formatting of the technical content.07/12/20123.0No changeNo changes to the meaning, language, or formatting of the technical content.10/25/20123.0No changeNo changes to the meaning, language, or formatting of the technical content.01/31/20133.0No changeNo changes to the meaning, language, or formatting of the technical content.08/08/20133.0No changeNo changes to the meaning, language, or formatting of the technical content.
Contents
TOC \f \h \t "DSTOC1-1,1,DSTOC1-2,2,DSTOC1-3,3,DSTOC1-4,4,DSTOC1-5,5,DSTOC1-6,6,DSTOC1-7,7,DSTOC1-8,8,DSTOC1-9,9,DSTOC2-2,2,DSTOC2-3,3,DSTOC2-4,4,DSTOC2-5,5,DSTOC2-6,6,DSTOC2-7,7,DSTOC2-8,8,DSTOC2-9,9,DSTOC3-3,3,DSTOC3-4,4,DSTOC3-5,5,DSTOC3-6,6,DSTOC3-7,7,DST HYPERLINK \l "_Toc362245202" 1 Introduction PAGEREF _Toc362245202 \h 7
HYPERLINK \l "_Toc362245203" 1.1 Glossary PAGEREF _Toc362245203 \h 7
HYPERLINK \l "_Toc362245204" 1.2 References PAGEREF _Toc362245204 \h 7
HYPERLINK \l "_Toc362245205" 1.2.1 Normative References PAGEREF _Toc362245205 \h 8
HYPERLINK \l "_Toc362245206" 1.2.2 Informative References PAGEREF _Toc362245206 \h 8
HYPERLINK \l "_Toc362245207" 1.3 Overview PAGEREF _Toc362245207 \h 9
HYPERLINK \l "_Toc362245208" 1.4 Relationship to Other Protocols PAGEREF _Toc362245208 \h 9
HYPERLINK \l "_Toc362245209" 1.5 Prerequisites/Preconditions PAGEREF _Toc362245209 \h 10
HYPERLINK \l "_Toc362245210" 1.6 Applicability Statement PAGEREF _Toc362245210 \h 10
HYPERLINK \l "_Toc362245211" 1.7 Versioning and Capability Negotiation PAGEREF _Toc362245211 \h 10
HYPERLINK \l "_Toc362245212" 1.8 Vendor-Extensible Fields PAGEREF _Toc362245212 \h 10
HYPERLINK \l "_Toc362245213" 1.9 Standards Assignments PAGEREF _Toc362245213 \h 10
HYPERLINK \l "_Toc362245214" 2 Messages PAGEREF _Toc362245214 \h 11
HYPERLINK \l "_Toc362245215" 2.1 Transport PAGEREF _Toc362245215 \h 11
HYPERLINK \l "_Toc362245216" 2.2 Common Message Syntax PAGEREF _Toc362245216 \h 11
HYPERLINK \l "_Toc362245217" 2.2.1 Namespaces PAGEREF _Toc362245217 \h 11
HYPERLINK \l "_Toc362245218" 2.2.2 Messages PAGEREF _Toc362245218 \h 12
HYPERLINK \l "_Toc362245219" 2.2.3 Elements PAGEREF _Toc362245219 \h 12
HYPERLINK \l "_Toc362245220" 2.2.4 Complex Types PAGEREF _Toc362245220 \h 12
HYPERLINK \l "_Toc362245221" 2.2.5 Simple Types PAGEREF _Toc362245221 \h 12
HYPERLINK \l "_Toc362245222" 2.2.6 Attributes PAGEREF _Toc362245222 \h 12
HYPERLINK \l "_Toc362245223" 2.2.7 Groups PAGEREF _Toc362245223 \h 12
HYPERLINK \l "_Toc362245224" 2.2.8 Attribute Groups PAGEREF _Toc362245224 \h 12
HYPERLINK \l "_Toc362245225" 3 Protocol Details PAGEREF _Toc362245225 \h 13
HYPERLINK \l "_Toc362245226" 3.1 IWorkflowInstanceManagement Server Details PAGEREF _Toc362245226 \h 13
HYPERLINK \l "_Toc362245227" 3.1.1 Abstract Data Model PAGEREF _Toc362245227 \h 13
HYPERLINK \l "_Toc362245228" 3.1.1.1 Active State PAGEREF _Toc362245228 \h 14
HYPERLINK \l "_Toc362245229" 3.1.1.2 Suspended State PAGEREF _Toc362245229 \h 14
HYPERLINK \l "_Toc362245230" 3.1.1.3 Completed State PAGEREF _Toc362245230 \h 14
HYPERLINK \l "_Toc362245231" 3.1.2 Timers PAGEREF _Toc362245231 \h 15
HYPERLINK \l "_Toc362245232" 3.1.3 Initialization PAGEREF _Toc362245232 \h 15
HYPERLINK \l "_Toc362245233" 3.1.4 Message Processing Events and Sequencing Rules PAGEREF _Toc362245233 \h 15
HYPERLINK \l "_Toc362245234" 3.1.4.1 Run PAGEREF _Toc362245234 \h 16
HYPERLINK \l "_Toc362245235" 3.1.4.1.1 Messages PAGEREF _Toc362245235 \h 17
HYPERLINK \l "_Toc362245236" 3.1.4.1.1.1 IWorkflowInstanceManagement_Run_InputMessage PAGEREF _Toc362245236 \h 17
HYPERLINK \l "_Toc362245237" 3.1.4.1.1.2 IWorkflowInstanceManagement_Run_OutputMessage PAGEREF _Toc362245237 \h 17
HYPERLINK \l "_Toc362245238" 3.1.4.1.2 Elements PAGEREF _Toc362245238 \h 17
HYPERLINK \l "_Toc362245239" 3.1.4.1.2.1 Run PAGEREF _Toc362245239 \h 17
HYPERLINK \l "_Toc362245240" 3.1.4.1.2.2 RunResponse PAGEREF _Toc362245240 \h 18
HYPERLINK \l "_Toc362245241" 3.1.4.2 TransactedRun PAGEREF _Toc362245241 \h 18
HYPERLINK \l "_Toc362245242" 3.1.4.2.1 Messages PAGEREF _Toc362245242 \h 19
HYPERLINK \l "_Toc362245243" 3.1.4.2.1.1 IWorkflowInstanceManagement_TransactedRun_InputMessage PAGEREF _Toc362245243 \h 19
HYPERLINK \l "_Toc362245244" 3.1.4.2.1.2 IWorkflowInstanceManagement_TransactedRun_OutputMessage PAGEREF _Toc362245244 \h 19
HYPERLINK \l "_Toc362245245" 3.1.4.2.2 Elements PAGEREF _Toc362245245 \h 20
HYPERLINK \l "_Toc362245246" 3.1.4.2.2.1 TransactedRun PAGEREF _Toc362245246 \h 20
HYPERLINK \l "_Toc362245247" 3.1.4.2.2.2 TransactedRunResponse PAGEREF _Toc362245247 \h 20
HYPERLINK \l "_Toc362245248" 3.1.4.3 Abandon PAGEREF _Toc362245248 \h 20
HYPERLINK \l "_Toc362245249" 3.1.4.3.1 Messages PAGEREF _Toc362245249 \h 21
HYPERLINK \l "_Toc362245250" 3.1.4.3.1.1 IWorkflowInstanceManagement_Abandon_InputMessage PAGEREF _Toc362245250 \h 21
HYPERLINK \l "_Toc362245251" 3.1.4.3.1.2 IWorkflowInstanceManagement_Abandon_OutputMessage PAGEREF _Toc362245251 \h 21
HYPERLINK \l "_Toc362245252" 3.1.4.3.2 Elements PAGEREF _Toc362245252 \h 22
HYPERLINK \l "_Toc362245253" 3.1.4.3.2.1 Abandon PAGEREF _Toc362245253 \h 22
HYPERLINK \l "_Toc362245254" 3.1.4.3.2.2 AbandonResponse PAGEREF _Toc362245254 \h 22
HYPERLINK \l "_Toc362245255" 3.1.4.4 Cancel PAGEREF _Toc362245255 \h 23
HYPERLINK \l "_Toc362245256" 3.1.4.4.1 Messages PAGEREF _Toc362245256 \h 23
HYPERLINK \l "_Toc362245257" 3.1.4.4.1.1 IWorkflowInstanceManagement_Cancel_InputMessage PAGEREF _Toc362245257 \h 23
HYPERLINK \l "_Toc362245258" 3.1.4.4.1.2 IWorkflowInstanceManagement_Cancel_OutputMessage PAGEREF _Toc362245258 \h 24
HYPERLINK \l "_Toc362245259" 3.1.4.4.2 Elements PAGEREF _Toc362245259 \h 24
HYPERLINK \l "_Toc362245260" 3.1.4.4.2.1 Cancel PAGEREF _Toc362245260 \h 24
HYPERLINK \l "_Toc362245261" 3.1.4.4.2.2 CancelResponse PAGEREF _Toc362245261 \h 24
HYPERLINK \l "_Toc362245262" 3.1.4.5 TransactedCancel PAGEREF _Toc362245262 \h 25
HYPERLINK \l "_Toc362245263" 3.1.4.5.1 Messages PAGEREF _Toc362245263 \h 25
HYPERLINK \l "_Toc362245264" 3.1.4.5.1.1 IWorkflowInstanceManagement_TransactedCancel_InputMessage PAGEREF _Toc362245264 \h 26
HYPERLINK \l "_Toc362245265" 3.1.4.5.1.2 IWorkflowInstanceManagement_TransactedCancel_OutputMessage PAGEREF _Toc362245265 \h 26
HYPERLINK \l "_Toc362245266" 3.1.4.5.2 Elements PAGEREF _Toc362245266 \h 26
HYPERLINK \l "_Toc362245267" 3.1.4.5.2.1 TransactedCancel PAGEREF _Toc362245267 \h 26
HYPERLINK \l "_Toc362245268" 3.1.4.5.2.2 TransactedCancelResponse PAGEREF _Toc362245268 \h 27
HYPERLINK \l "_Toc362245269" 3.1.4.6 Terminate PAGEREF _Toc362245269 \h 27
HYPERLINK \l "_Toc362245270" 3.1.4.6.1 Messages PAGEREF _Toc362245270 \h 28
HYPERLINK \l "_Toc362245271" 3.1.4.6.1.1 IWorkflowInstanceManagement_Terminate_InputMessage PAGEREF _Toc362245271 \h 28
HYPERLINK \l "_Toc362245272" 3.1.4.6.1.2 IWorkflowInstanceManagement_Terminate_OutputMessage PAGEREF _Toc362245272 \h 28
HYPERLINK \l "_Toc362245273" 3.1.4.6.2 Elements PAGEREF _Toc362245273 \h 28
HYPERLINK \l "_Toc362245274" 3.1.4.6.2.1 Terminate PAGEREF _Toc362245274 \h 29
HYPERLINK \l "_Toc362245275" 3.1.4.6.2.2 TerminateResponse PAGEREF _Toc362245275 \h 29
HYPERLINK \l "_Toc362245276" 3.1.4.7 TransactedTerminate PAGEREF _Toc362245276 \h 29
HYPERLINK \l "_Toc362245277" 3.1.4.7.1 Messages PAGEREF _Toc362245277 \h 30
HYPERLINK \l "_Toc362245278" 3.1.4.7.1.1 IWorkflowInstanceManagement_TransactedTerminate_InputMessage PAGEREF _Toc362245278 \h 30
HYPERLINK \l "_Toc362245279" 3.1.4.7.1.2 IWorkflowInstanceManagement_TransactedTerminate_OutputMessage PAGEREF _Toc362245279 \h 30
HYPERLINK \l "_Toc362245280" 3.1.4.7.2 Elements PAGEREF _Toc362245280 \h 31
HYPERLINK \l "_Toc362245281" 3.1.4.7.2.1 TransactedTerminate PAGEREF _Toc362245281 \h 31
HYPERLINK \l "_Toc362245282" 3.1.4.7.2.2 TransactedTerminateResponse PAGEREF _Toc362245282 \h 31
HYPERLINK \l "_Toc362245283" 3.1.4.8 Suspend PAGEREF _Toc362245283 \h 32
HYPERLINK \l "_Toc362245284" 3.1.4.8.1 Messages PAGEREF _Toc362245284 \h 32
HYPERLINK \l "_Toc362245285" 3.1.4.8.1.1 IWorkflowInstanceManagement_Suspend_InputMessage PAGEREF _Toc362245285 \h 32
HYPERLINK \l "_Toc362245286" 3.1.4.8.1.2 IWorkflowInstanceManagement_Suspend_OutputMessage PAGEREF _Toc362245286 \h 33
HYPERLINK \l "_Toc362245287" 3.1.4.8.2 Elements PAGEREF _Toc362245287 \h 33
HYPERLINK \l "_Toc362245288" 3.1.4.8.2.1 Suspend PAGEREF _Toc362245288 \h 33
HYPERLINK \l "_Toc362245289" 3.1.4.8.2.2 SuspendResponse PAGEREF _Toc362245289 \h 34
HYPERLINK \l "_Toc362245290" 3.1.4.9 TransactedSuspend PAGEREF _Toc362245290 \h 34
HYPERLINK \l "_Toc362245291" 3.1.4.9.1 Messages PAGEREF _Toc362245291 \h 35
HYPERLINK \l "_Toc362245292" 3.1.4.9.1.1 IWorkflowInstanceManagement_TransactedSuspend_InputMessage PAGEREF _Toc362245292 \h 35
HYPERLINK \l "_Toc362245293" 3.1.4.9.1.2 IWorkflowInstanceManagement_TransactedSuspend_OutputMessage PAGEREF _Toc362245293 \h 35
HYPERLINK \l "_Toc362245294" 3.1.4.9.2 Elements PAGEREF _Toc362245294 \h 35
HYPERLINK \l "_Toc362245295" 3.1.4.9.2.1 TransactedSuspend PAGEREF _Toc362245295 \h 36
HYPERLINK \l "_Toc362245296" 3.1.4.9.2.2 TransactedSuspendResponse PAGEREF _Toc362245296 \h 36
HYPERLINK \l "_Toc362245297" 3.1.4.10 Unsuspend PAGEREF _Toc362245297 \h 36
HYPERLINK \l "_Toc362245298" 3.1.4.10.1 Messages PAGEREF _Toc362245298 \h 37
HYPERLINK \l "_Toc362245299" 3.1.4.10.1.1 IWorkflowInstanceManagement_Unsuspend_InputMessage PAGEREF _Toc362245299 \h 37
HYPERLINK \l "_Toc362245300" 3.1.4.10.1.2 IWorkflowInstanceManagement_Unsuspend_OutputMessage PAGEREF _Toc362245300 \h 37
HYPERLINK \l "_Toc362245301" 3.1.4.10.2 Elements PAGEREF _Toc362245301 \h 38
HYPERLINK \l "_Toc362245302" 3.1.4.10.2.1 Unsuspend PAGEREF _Toc362245302 \h 38
HYPERLINK \l "_Toc362245303" 3.1.4.10.2.2 UnsuspendResponse PAGEREF _Toc362245303 \h 38
HYPERLINK \l "_Toc362245304" 3.1.4.11 TransactedUnsuspend PAGEREF _Toc362245304 \h 38
HYPERLINK \l "_Toc362245305" 3.1.4.11.1 Messages PAGEREF _Toc362245305 \h 39
HYPERLINK \l "_Toc362245306" 3.1.4.11.1.1 IWorkflowInstanceManagement_TransactedUnsuspend_InputMessage PAGEREF _Toc362245306 \h 40
HYPERLINK \l "_Toc362245307" 3.1.4.11.1.2 IWorkflowInstanceManagement_TransactedUnsuspend_OutputMessage PAGEREF _Toc362245307 \h 40
HYPERLINK \l "_Toc362245308" 3.1.4.11.2 Elements PAGEREF _Toc362245308 \h 40
HYPERLINK \l "_Toc362245309" 3.1.4.11.2.1 TransactedUnsuspend PAGEREF _Toc362245309 \h 40
HYPERLINK \l "_Toc362245310" 3.1.4.11.2.2 TransactedUnsuspendResponse PAGEREF _Toc362245310 \h 41
HYPERLINK \l "_Toc362245311" 3.1.4.12 Update PAGEREF _Toc362245311 \h 41
HYPERLINK \l "_Toc362245312" 3.1.4.12.1 Messages PAGEREF _Toc362245312 \h 41
HYPERLINK \l "_Toc362245313" 3.1.4.12.1.1 IWorkflowInstanceManagement_Update_InputMessage PAGEREF _Toc362245313 \h 42
HYPERLINK \l "_Toc362245314" 3.1.4.12.1.2 IWorkflowInstanceManagement_Update_OutputMessage PAGEREF _Toc362245314 \h 42
HYPERLINK \l "_Toc362245315" 3.1.4.12.2 Elements PAGEREF _Toc362245315 \h 42
HYPERLINK \l "_Toc362245316" 3.1.4.12.2.1 Update PAGEREF _Toc362245316 \h 42
HYPERLINK \l "_Toc362245317" 3.1.4.12.2.2 UpdateResponse PAGEREF _Toc362245317 \h 43
HYPERLINK \l "_Toc362245318" 3.1.4.13 TransactedUpdate PAGEREF _Toc362245318 \h 43
HYPERLINK \l "_Toc362245319" 3.1.4.13.1 Messages PAGEREF _Toc362245319 \h 43
HYPERLINK \l "_Toc362245320" 3.1.4.13.1.1 IWorkflowInstanceManagement_TransactedUpdate_InputMessage PAGEREF _Toc362245320 \h 44
HYPERLINK \l "_Toc362245321" 3.1.4.13.1.2 IWorkflowInstanceManagement_TransactedUpdate_OutputMessage PAGEREF _Toc362245321 \h 44
HYPERLINK \l "_Toc362245322" 3.1.4.13.2 Elements PAGEREF _Toc362245322 \h 44
HYPERLINK \l "_Toc362245323" 3.1.4.13.2.1 TransactedUpdate PAGEREF _Toc362245323 \h 44
HYPERLINK \l "_Toc362245324" 3.1.4.13.2.2 TransactedUpdateResponse PAGEREF _Toc362245324 \h 45
HYPERLINK \l "_Toc362245325" 3.1.5 Timer Events PAGEREF _Toc362245325 \h 45
HYPERLINK \l "_Toc362245326" 3.1.6 Other Local Events PAGEREF _Toc362245326 \h 45
HYPERLINK \l "_Toc362245327" 3.2 IWorkflowInstanceManagement Client Details PAGEREF _Toc362245327 \h 45
HYPERLINK \l "_Toc362245328" 4 Protocol Examples PAGEREF _Toc362245328 \h 46
HYPERLINK \l "_Toc362245329" 5 Security PAGEREF _Toc362245329 \h 47
HYPERLINK \l "_Toc362245330" 5.1 Security Considerations for Implementers PAGEREF _Toc362245330 \h 47
HYPERLINK \l "_Toc362245331" 5.2 Index of Security Parameters PAGEREF _Toc362245331 \h 47
HYPERLINK \l "_Toc362245332" 6 Appendix A: Full WSDL PAGEREF _Toc362245332 \h 48
HYPERLINK \l "_Toc362245333" 6.1 Workflow Instance Management Protocol WSDL PAGEREF _Toc362245333 \h 48
HYPERLINK \l "_Toc362245334" 6.2 Workflow Instance Management Protocol Schema PAGEREF _Toc362245334 \h 54
HYPERLINK \l "_Toc362245335" 7 Appendix B: Product Behavior PAGEREF _Toc362245335 \h 59
HYPERLINK \l "_Toc362245336" 8 Change Tracking PAGEREF _Toc362245336 \h 61
HYPERLINK \l "_Toc362245337" 9 Index PAGEREF _Toc362245337 \h 62
1 Introduction
This document specifies the Workflow Instance Management Protocol, which defines a set of SOAP messages for the management of HYPERLINK \l "z1" durable program instances, such as suspending, resuming, or canceling an instance.
Sections 1.8, 2, and 3 of this specification are normative and can contain the terms MAY, SHOULD, MUST, MUST NOT, and SHOULD NOT as defined in RFC 2119. Sections 1.5 and 1.9 are also normative but cannot contain those terms. All other sections and examples in this specification are informative.
1.1 Glossary
The following terms are defined in HYPERLINK "[MS-GLOS].pdf" [MS-GLOS]:
globally unique identifier (GUID).NET FrameworkSOAP faultSOAP messageWeb Services Description Language (WSDL)WSDL messageWSDL operationWSDL port typeXML namespaceXML schema (XSD)
The following terms are specific to this document:
durable program: A program whose lifetime is not bound to a single operating system process. For more information about these processes, see HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90251" [PROCESS]. The execution of the durable program starts in one process with a durable state, survives process termination, and can continue to execute in another process at a later point in time.
durable program instance: An identifiable occurrence of the execution of a durable program. The durable program instance captures the complete state of the execution. The execution of a durable program instance is limited to a single process at a time.
management operation: An operation on a durable program instance that is not related to the business logic of the durable program.
SOAP: Either the Simple Object Access Protocol (SOAP) 1.1 HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90520" [SOAP1.1] or SOAP 1.2 HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=94664" [SOAP1.2-1/2007]. This term is used in cases where the difference between the two SOAP version specifications has no impact on the specification of the Workflow Instance Management Protocol.
MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as described in HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90317" [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.
1.2 References
References to Microsoft Open Specifications documentation do not include a publishing year because links are to the latest version of the documents, which are updated frequently. References to other documents include a publishing year when one is available.
A reference marked "(Archived)" means that the reference document was either retired and is no longer being maintained or was replaced with a new document that provides current implementation details. We archive our documents online HYPERLINK "http://msdn.microsoft.com/en-us/library/jj633107.aspx " [Windows Protocol].
1.2.1 Normative References
We conduct frequent surveys of the normative references to assure their continued availability. If you have any issue with finding a normative reference, please contact HYPERLINK "mailto:dochelp@microsoft.com" dochelp@microsoft.com. We will assist you in finding the relevant information. Please check the archive site, HYPERLINK "http://msdn2.microsoft.com/en-us/library/E4BD6494-06AD-4aed-9823-445E921C9624" http://msdn2.microsoft.com/en-us/library/E4BD6494-06AD-4aed-9823-445E921C9624, as an additional source.
[MS-DTCO] Microsoft Corporation, " HYPERLINK "[MS-DTCO].pdf" MSDTC Connection Manager: OleTx Transaction Protocol".
[MS-DTYP] Microsoft Corporation, " HYPERLINK "[MS-DTYP].pdf" Windows Data Types".
[MS-WSPOL] Microsoft Corporation, " HYPERLINK "[MS-WSPOL].pdf" Web Services: Policy Assertions and WSDL Extensions".
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90317" http://www.rfc-editor.org/rfc/rfc2119.txt
[SOAP1.1] Box, D., Ehnebuske, D., Kakivaya, G., et al., "Simple Object Access Protocol (SOAP) 1.1", May 2000, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90520" http://www.w3.org/TR/2000/NOTE-SOAP-20000508/
[SOAP1.2-1/2007] Gudgin, M., Hadley, M., Mendelsohn, N., et al., "SOAP Version 1.2 Part 1: Messaging Framework (Second Edition) ", W3C Recommendation 27, April 2007, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=94664" http://www.w3.org/TR/2007/REC-soap12-part1-20070427/
[SOAP1.2-2/2007] Gudgin, M., Hadley, M., Mendelsohn, N., et al., "SOAP Version 1.2 Part 2: Adjuncts (Second Edition)", W3C Recommendation, April 2007, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=119124" http://www.w3.org/TR/2007/REC-soap12-part2-20070427
[WSDL] Christensen, E., Curbera, F., Meredith, G., and Weerawarana, S., "Web Services Description Language (WSDL) 1.1", W3C Note, March 2001, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90577" http://www.w3.org/TR/2001/NOTE-wsdl-20010315
[XMLNS-2ED] World Wide Web Consortium, "Namespaces in XML 1.0 (Second Edition)", August 2006, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90602" http://www.w3.org/TR/2006/REC-xml-names-20060816/
[XMLSCHEMA1] Thompson, H.S., Beech, D., Maloney, M., and Mendelsohn, N., Eds., "XML Schema Part 1: Structures", W3C Recommendation, May 2001, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90608" http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/
[XMLSCHEMA2] Biron, P.V., and Malhotra, A., Eds., "XML Schema Part 2: Datatypes", W3C Recommendation, May 2001, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90610" http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/
1.2.2 Informative References
[MS-GLOS] Microsoft Corporation, " HYPERLINK "[MS-GLOS].pdf" Windows Protocols Master Glossary".
[MS-WSRVCAT] Microsoft Corporation, " HYPERLINK "[MS-WSRVCAT].pdf" WS-AtomicTransaction (WS-AT) Version 1.0 Protocol Extensions".
[PROCESS] Microsoft Corporation, "About Processes and Threads", HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90251" http://msdn.microsoft.com/en-us/library/ms681917.aspx
[WSS1] Nadalin, A., Kaler, C., Hallam-Baker, P., et al., "Web Services Security: SOAP Message Security 1.0 (WS-Security 2004)", March 2004, HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=131547" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf
1.3 Overview
The familiar control operations of starting, pausing, and terminating processes are sufficient for managing programs where execution is contained within a single process; however, these operations are insufficient when the program is durable because a HYPERLINK \l "z2" durable program spans multiple processes over time. A similar control mechanism that is not scoped to a single process is required for managing durable programs. The Workflow Instance Management Protocol specifies such a control mechanism.
Durable program instances can be hosted on a variety of execution environments or hosts, for example on a desktop computer, a server farm, and so on. The Workflow Instance Management Protocol is provided on durable program hosts that support messaging (that is, messaging hosts) for the external control of various lifetime and execution aspects of the durable program instances running on that host. External control consists of operations for terminating, suspending, and resuming the execution of durable program instances where the client for these operations is typically system administration tooling.
The Workflow Instance Management Protocol defines a set of request and reply HYPERLINK "[MS-GLOS].pdf" SOAP messages that specify these external control operations. This specification also describes the interdependencies of these operations and how they relate to an abstract model of the durable program instance state.
For example, consider an expense approval durable program that is running in a messaging host. The host for the expense approval durable program exposes an expense approval messaging endpoint. The expense approval endpoint and its protocol are part of the definition of the expense approval application. The host can also expose a messaging endpoint that supports the Workflow Instance Management Protocol. This is a generic, infrastructural endpoint provided by the host for the administration of instances of the expense approval durable program. Using this infrastructural endpoint, an administrator of the application can have available tooling that uses the Workflow Instance Management Protocol to control the execution of instances of the expense approval workflows. Using the Abandon, Cancel, Terminate, Suspend, and Unsuspend operations defined in this protocol, the tooling enables the administrator to perform tasks, such as terminating a particular Instance or temporarily suspending its execution.
In some scenarios, operations in the Workflow Instance Management Protocol are used by the system internals itself. For example, the Run operation can be utilized internally by the system for recovery after system failure.
1.4 Relationship to Other Protocols
The Workflow Instance Management Protocol can be used with HYPERLINK "[MS-GLOS].pdf" SOAP-formatted messages. The following figure shows a protocol stack:
Figure 1: Protocol stack for the Workflow Instance Management Protocol
1.5 Prerequisites/Preconditions
The Workflow Instance Management Protocol requires that:
1. The client role can communicate with the server role so that messages can be exchanged between client and server.
2. The server role can create and host durable program instances and associate a unique identifier to each durable program instance.
3. The client role can determine the unique identifier associated by the server role to the durable program instance on which HYPERLINK \l "z3" management operation(s) need to be performed. This unique identifier is used by the client to identify the target instance of the management operation on the server.
1.6 Applicability Statement
The Workflow Instance Management Protocol is applicable to scenarios where management of durable program instances is required. The client and server use this protocol to perform management operations on durable program instances.
1.7 Versioning and Capability Negotiation
This document covers versioning issues in the following areas:
S u p p o r t e d T r a n s p o r t s : T h i s p r o t o c o l u s e s m u l t i p l e t r a n s p o r t s w i t h S O A P a s s p e c i f i e d i n s e c t i o n H Y P E R L I N K \ l " z 4 9 a 4 5 0 e d 6 e 2 e 4 c 7 c 9 0 a d 7 2 2 e f a f 1 4 4 e 8 " 2 . 1 .
P r o t o c o l V e r s i o n s : T h i s p r o t o c o l h a s o n l y o n e H Y P E R L I N K " [ M S - G L O S ] . p d f " W S D L p o r t t y p e v e r s i o n w i t h a s i n g l e s e t o f o p e r a t i o n s . T h e u s e o f t h e s e o p e r a t i o n s i s s p e c i f i e d i n s e c t i o n H Y P E R L I N K \ l " z 1 7 5 8 8 0 9 9 d e a 5 4 9 3 1 9 5 3 1 a 5 6 3 b 2 c 0 8 b b e " 3 . 2 .
C a p a b i l i t y N e g o t i a t i o n : T h e W o r k f l o w I n s t a n c e M a n a g e m e n t P r o t o c o l d o e s n o t s u p p o r t n e g o t i a t i o n o f t h e v e r s i o n t o use. Instead, an implementation has to be configured to process messages only as described in section HYPERLINK \l "z49a450ed6e2e4c7c90ad722efaf144e8" 2.1.
1.8 Vendor-Extensible Fields
There are no vendor-extensible fields in this protocol.
1.9 Standards Assignments
None.
2 Messages
2.1 Transport
The Workflow Instance Management Protocol can be used over any transport protocol that supports transmitting messages that are specified by the following protocols:
S O A P 1 . 1 H Y P E R L I N K " h t t p : / / g o . m i c r o s o f t . c o m / f w l i n k / ? L i n k I d = 9 0 5 2 0 " [ S O A P 1 . 1 ]
S O A P 1 . 2 H Y P E R L I N K " h t t p : / / g o . m i c r o s o f t . c o m / f w l i n k / ? L i n k I d = 9 4 6 6 4 " [ S O A P 1 . 2 - 1 / 2 0 0 7 ]
T h i s s p e c i f i c a t i o n u s e s t h e t e r m S O A P t o m e a n e i t h e r S O A P 1 . 1 o r S O A P 1 . 2 . A n i m p l e m e ntation of the Workflow Instance Management Protocol MUST support the processing of messages that are specified by either of these SOAP versions.
2.2 Common Message Syntax
This section contains common definitions used by this protocol. The syntax of the definitions uses HYPERLINK "[MS-GLOS].pdf" XML schema (XSD) as defined in HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90608" [XMLSCHEMA1] and HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90610" [XMLSCHEMA2], and Web Services Description Language as defined in HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90577" [WSDL].
2.2.1 Namespaces
This specification defines and references various HYPERLINK "[MS-GLOS].pdf" XML namespaces using the mechanisms specified in HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90602" [XMLNS-2ED]. Although this specification associates a specific XML namespace prefix for each XML namespace that is used, the choice of any particular XML namespace prefix is implementation-specific and is not significant for interoperability.
PrefixNamespace URIReferencesoaphttp://schemas.xmlsoap.org/wsdl/soap/ HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90520" [SOAP1.1]Soapenchttp://schemas.xmlsoap.org/soap/encoding/ HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90520" [SOAP1.1]Wsuhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsdXsdhttp://www.w3.org/2001/XMLSchemasoap12http://schemas.xmlsoap.org/wsdl/soap12/ HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=94664" [SOAP1.2-1/2007], HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=119124" [SOAP1.2-2/2007]Tnshttp://schemas.datacontract.org/2008/10/WorkflowServicesWsahttp://schemas.xmlsoap.org/ws/2004/08/addressingWsphttp://schemas.xmlsoap.org/ws/2004/09/policyWsaphttp://schemas.xmlsoap.org/ws/2004/08/addressing/policyWsawhttp://www.w3.org/2006/05/addressing/wsdlMschttp://schemas.microsoft.com/ws/2005/12/wsdl/contract HYPERLINK "[MS-WSPOL].pdf" [MS-WSPOL]wsa10http://www.w3.org/2005/08/addressingWsxhttp://schemas.xmlsoap.org/ws/2004/09/mexWsamhttp://www.w3.org/2007/05/addressing/metadataWsdlhttp://schemas.xmlsoap.org/wsdl/ HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90577" [WSDL]Xshttp://www.w3.org/2001/XMLSchema HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90608" [XMLSCHEMA1], HYPERLINK "http://go.microsoft.com/fwlink/?LinkId=90610" [XMLSCHEMA2]q4http://schemas.microsoft.com/2003/10/Serialization/2.2.2 Messages
This specification does not define any common XSD message definitions.
2.2.3 Elements
This specification does not define any common XSD element definitions.
2.2.4 Complex Types
This specification does not define any common XSD complex-type definitions.
2.2.5 Simple Types
This specification does not define any common XSD simple-type definitions.
2.2.6 Attributes
This specification does not define any common XSD attribute definitions.
2.2.7 Groups
This specification does not define any common XSD group definitions.
2.2.8 Attribute Groups
This specification does not define any common XSD attribute group definitions.
3 Protocol Details
The client side of this protocol is simply a pass-through mechanism. That is, no additional timers or other state is required on the client side of this protocol. Calls made by the higher-layer protocol or application are passed directly to the transport, and the results returned by the transport are passed directly back to the higher-layer protocol or application.
3.1 IWorkflowInstanceManagement Server Details
3.1.1 Abstract Data Model
This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.
The server MUST maintain the following data e l e m e n t :
D u r a b l e P r o g r a m I n s t a n c e T a b l e : A t a b l e t h a t a s s o c i a t e s a H Y P E R L I N K " [ M S - G L O S ] . p d f " g l o b a l l y u n i q u e i d e n t i f i e r ( G U I D ) , a s s p e c i f i e d i n H Y P E R L I N K " [ M S - D T Y P ] . p d f " [ M S - D T Y P ] s e c t i o n 2 . 3 . 4 , t o a d u r a b l e p r o g r a m i n s t a n c e a n d d u r a b l e p r o g r a m i n s t a n c e s t a t e . T h e d u r a b l e p r o g r a m i n s t a n c e s t a t e i s a n e n u m e r a t i o n t h a t i d e n t i f i e s t h e c u r r e n t s t a t e o f t h e d u r a b l e p r o g r a m i n s t a n c e :
A c t i v e
S u s p e n d e d
C o m p l e t e d
T h e f o l l o w i n g t a b l e s h o w s t h e r e l a t i o n s h i p b e t w e e n d u r a b l e p r o g r a m i n s t a n c e s t a t e s a n d Workflow Instance Management Protocol operations. The table identifies the durable program instance state when the operation completes, based on the durable program instance state when the operation was invoked.
Figure 2: Durable program instance states when operation is invoked and completed
3.1.1.1 Active State
The durable program instance is in the active state before it reaches the completed state and when it is not in the suspended state. In the active state, the durable program instance SHOULD execute and process application messages.
3.1.1.2 Suspended State
In the suspended state, the durable program instance MUST NOT execute.
3.1.1.3 Completed State
The completed state is a final state of the durable program instance. The durable program instance MUST NOT execute in this state.
In a typical implementation, other parts of the system will interact with the durable program instance and can cause the state to be changed. The current state of the durable program instance can also be a snapshot into a durable store, where durability affects the system in the sense that a durable program instance can be reloaded from the durable store, or can be reset to the last durable state. As a result, the Workflow Instance Management Protocol does not prescribe a durable program instance state machine. In the absence of any other interactions, an implementation MAY HYPERLINK \l "z7" <1> implement the following durable program instance state machine.
Figure 3: Durable program instance state machine
3.1.2 Tim e r s
N o n e .
3 . 1 . 3 I n i t i a l i z a t i o n
W h e n a s e r v e r r o l e i s i n i t i a l i z e d :
T h e D u r a b l e P r o g r a m I n s t a n c e T a b l e M U S T b e s e t t o a v a l u e t h a t i s o b t a i n e d f r o m a n i m p l e m e n t a t i o n - s p e c i f i c s o u r c e .
A l i s t e n i n g i n f r a s t r u c t u r a l e n d p o i n t i s c r e a t e d .
W h e n a d u r a b l e p r o g r a m i n s t a n c e i s i n i t i a l i z e d :
A n e n t r y f o r t h e d u r a b l e p r o g r a m i n s t a n c e M U S T b e m a d e i n t h e D u r a b l e P r o g r a m I n s t a n c e T a b l e .
A G U I D t o i d e n t i f y t h e d u r a b l e p r o g r a m i n s t a n c e M U S T b e s e t t o a v a l u e t h a t i s o b t a i n e d f r o m a n i m p l e m e n t a t i o n - s p e c i f i c s o u r c e .
The durable program instance state MUST be set to one of the enumerated values: active, suspended, or completed.
3.1.4 Message Processing Events and Sequencing Rules
The following table summarizes the list of HYPERLINK "[MS-GLOS].pdf" WSDL operations as defined by this specification:
OperationDescriptionAbandonSHOULD forcefully stop the execution of the durable program instance and indicate to the system that the durable program instance SHOULD be disposed.CancelTransitions a durable program instance from the active or suspended state to the completed state. The operation SHOULD gracefully cancel any remaining work and clean up resources being used by the durable program instance.RunSHOULD provide the durable program instance an opportunity to execute.SuspendTransitions a durable program instance from the active state to the suspended state.TerminateTransitions a durable program instance from the active or suspended state to the completed state. It SHOULD perform the minimum possible work needed to transition the durable program instance to the completed state.TransactedCancelPerforms the Cancel operation under a transaction (flowed in from the client or locally created). If the system maintains the durable state of the durable program instance, the durable state MUST be updated during execution of this operation.TransactedRunPerforms the Run operation under a transaction (flowed in from the client or locally created). If the system maintains the durable state of the durable program instance, the durable state MUST be updated during execution of this operation.TransactedSuspendPerforms the Suspend operation under a transaction (flowed in from the client or locally created). If the system maintains the durable state of the durable program instance, the durable state MUST be updated during execution of this operation.TransactedTerminatePerforms the Terminate operation under a transaction (flowed in from the client or locally created). If the system maintains the durable state of the durable program instance, the durable state MUST be updated during execution of this operation.TransactedUnsuspendPerforms the Unsuspend operation under a transaction (flowed in from the client or locally created). If the system maintains the durable state of the durable program instance, the durable state MUST be updated during execution of this operation.TransactedUpdatePerforms the Update operation under a transaction (flowed in from the client or locally created).UnsuspendTransitions a durable program instance from the suspended state to the active state.UpdateTransitions the identity of a durable program instance from its current identity to an updated identity.3.1.4.1 Run
The HYPERLINK "[MS-GLOS].pdf" WSDL definition of the Run operation is as follows.
The Run operation SHOULD provide the durable program instance with an opportunity to execute in an implementation-specific manner. A GUID MUST be passed to the operation as the value of the element to identify the durable program instance on which the operation is to be performed. The operation SHO U L D r e t u r n a H Y P E R L I N K " [ M S - G L O S ] . p d f " S O A P f a u l t m e s s a g e i f o n e o r m o r e o f t h e f o l l o w i n g c o n d i t i o n s e x i s t :
T h e v a l u e o f t h e <