企业内部所有应用功能都是以Web服务的方式提供的,方便用户需求改变时的业务重组。同时,工作流引擎在进行调度的时候,采用(Simple Object Access Protocol,SOAP)协议来实现工作流引擎和Web服务之间的交互。在Web服务与工作流之间交互时通过Web服务管理器,做到逻辑上的独立性。为此,发布Web服务时使用标准的Web服务描述语言(WSDL),同时,采用SOAP代理来实现SOAP消息的生成和传送。
首先是服务定义阶段,在该阶段,根据功能需求分析对应Web服务,使用WSDL来定义。WSDL和SOAP一起构成了Web服务的核心结构单元。WSDL基于XML格式,用来描述Web服务。它描述了Web服务可以执行的操作以及Web服务可以发送或接收的消息格式。WSDL文档可以看成是客户端和服务器之间的一个协约。使用WSDL工具可以自动处理这个过程,几乎不用手工编写代码就能够让应用程序整合新的服务。因此,WSDL是Web服务体系结构的基础,因为它提供了一个通用语言,用来描述服务和整合这些服务的平台。由于WSDL文件能够导入其它的WSDL文件,因此,总有可能发生名字冲突的时候。所以,最后注册的WSDL文件需要在它们的部分里面定义targetNamespace和xml:tns的属性,在那里targetNamespace被设成对应于特定的WSDL(通常是原始的WSDL文件的名称)的一个唯一URL。完成此功能的WSDL生成器利用TNS对不同模块之间的引用做范围界定,防止相同名字冲突。使用标准WSDL工具可以指定发布的Web服务名、该服务提供的操作名等Web服务的属性,工具根据这些设置,自动生成WSDL文档。将这些生成的WSDL文档放在WSDL数据库中,数据库可以使用新型的XML数据库,也可以使用传统的关系数据库。此外,将所有的功能模块放入SOAP服务器(具有SOAP通信功能的Web Services器,如Apache SOAP 2.0)中,供工作流引擎在执行过程中调用。
其次是流程定制阶段,在工作流定制的过程中可使用流程定制工具,它提供了友好、简单的图形化界面,以支持拖放的方式实现工作流定制。一个流程是由许多的活动组成,每个活动表示一个要执行的功能,该功能的执行者就叫做参与者。一个参与者有2个可能的选项:Web服务和角色。如果是Web服务,用户选择企业WSDL数据库中的某一Web服务;如果是角色,仅仅需要指定角色的名字。或者同时指定服务与角色。
最后是流程执行阶段,当执行到某个活动需要请求Web服务时,工作流引擎发送服务请求信息,如Web服务的名字,给Web服务管理器,管理器通过读取并解析在流程数据库中存储的工作流描述文档(WSDL),可以得到包括Web服务名称、操作名称、操作所需的入口参数等信息。将这些信息传给SOAP代理,由SOAP代理执行SOAP调用。