工作流开发规范

上传人:jiups****uk12 文档编号:90661633 上传时间:2019-06-14 格式:DOC 页数:14 大小:1.49MB
返回 下载 相关 举报
工作流开发规范_第1页
第1页 / 共14页
工作流开发规范_第2页
第2页 / 共14页
工作流开发规范_第3页
第3页 / 共14页
工作流开发规范_第4页
第4页 / 共14页
工作流开发规范_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《工作流开发规范》由会员分享,可在线阅读,更多相关《工作流开发规范(14页珍藏版)》请在金锄头文库上搜索。

1、浦发单证中心工作流平台工作流开发规范微软(中国)有限公司顾问咨询部2019年6月修改日期修改人修改内容2004-8-15李紫凤、吴德柱初始版本1. 概要本文主要描述如何基于Microsoft BizTalk来开发单证中心项目中的业务流程规范。 1.1. 工作流运行体系工作流运行体系的一个重要功能是在流程参与者之间传递任务和信息。可以利用现有的各种通信机制(电子邮件、消息传递、分布式对象技术等)来实现。下面的工作流系统图强调了工作流的信息传递特征。Distribution within the workflow enactment service一个业务流程(Business Process)可

2、以理解成一系列需要完成的活动(Activity)或任务(Task)。各种流程参与者根据现有的规则和信息完成这些活动。参与者可以是一个人或应用程序。1.2. 基于BizTalk的工作流运行体系(图示 1.4.A)在基于Biztalk的工作流产品结构图中,描述了工作流引擎、基于引擎开发的业务流程产品之间,工作流引擎系统数据和工作流产品数据之间的关系。Process Definition (流程定义)包含了流程被执行所需的所有信息。包括启动和完成条件,活动(activity)组成,路由规则,用户需要完成的任务,被调用的应用程序等。Workflow Engine (工作流引擎)工作流引擎解释流程的描述

3、,控制流程的创建和活动的安排,向用户工作列表中添加工作项,调用应用程序。工作流引擎维护内部控制数据(workflow control data)。Workflow Relevant Data (工作流相关数据)工作流引擎决定流程流向或其他控制操作所依赖的数据称为工作流相关数据,这些数据只被流程引擎使用。Workflow Application Data (工作流应用数据)工作流应用数据则由调用的程序直接操纵,工作流引擎负责在应用程序间转送这些数据。Activity (活动)描述流程中的一个逻辑步骤所包含的工作。一个流程定义通常由许多活动组成。活动可以是一个人工活动,也可以是一个自动活动。Aut

4、omated Activity (自动活动)一个具备计算机自动化能力的活动。Manual Activity (人工活动)一个业务流程中无法自动化,处于工作流管理系统之外的活动。Work Item (工作项目)代表在一个流程实例的一个活动中,需要由工作流参与者处理的工作。工作项目一般通过工作列表提交给用户,且只同人工活动联系在一起。工作项目的属性包括:流程号、流程类型、工作项加入时间、优先级、紧急程度、重要程度等。Worklist (工作列表)和一个指定工作流参与者相关的一组工作项目。在很多情况下,一组工作流参与者会共享一个公共工作列表。Worklist Handler管理用户和工作列表之间交互

5、的软件组件。其主要完成的工作包括:l 选择一个工作项目l 重新分配一个工作项目l 通知工作项目的完成l 启动工具或客户应用程序上图描述了关键术语之间的关系。2. 命名规则2.1. 架构基于 XML 架构定义语言 (XSD),对一个或多个 BizTalk Server 实例消息的结构的描述。通常用于定义与其它系统的接口。命名空间命名为:系统名称(英文名).SPDB。如单证中心为TradeCenter.SPDB。架构命名为:接口定义名称(英文名)+Schema,比如与EE接口定义为EESchema。2.2. 映射一种基于可扩展样式表语言转换 (XSLT) 的转换,用于将符合某种 BizTalk S

6、erver 架构的实例消息转换为符合另一种 BizTalk Server 架构的实例消息。映射命名为:架构1+To+架构2Map。2.3. 业务流程BizTalk中可执行的业务程序。通常有可能多个业务流程包括在一个程序集中。程序集的命名为:子系统名称(英文名)。比如:Import。业务流程的命名为:业务功能名(英文名)。比如:LCIssue。2.4. 发送端口指发送消息的目标位置以及用来实现通信操作的技术。该位置由端口名称唯一标识。发送端口的命名为:发送动作+SP,比如发送LCIssue消息为:LCIssueSP2.5. 接收端口/接收位置接收位置定义了接收功能。接收端口是相似接收位置的逻辑分

7、组。接收端口的命名为:接收动作+RP,比如接收LCIssue消息为:LCIssueRequestRP接收位置的命名为:接收动作+适配器+RL,比如用Soap接收LCIssue消息为:LCIssueRequestSoapRL2.6. 程序脚本Biztalk Server完全采用了.NET/WebService构架,因此,其程序脚本的命名及编写规范必须符合.NET的规范,请参见NET程序编码规范.doc。2.7. 发送管道从 BizTalk Server 发送消息之前对该消息执行的管道过程。其命名为:处理类型(英文名)SendPipeline,比如处理XML的发送管道为:XMLSendPipeli

8、ne。2.8. 接收管道在适配器接收到消息后,但在将消息发布到 MessageBox 数据库之前对消息执行的管道过程。其命名为:处理类型(英文名)ReceivePipeline,比如处理XML的接收管道为:XMLReceivePipeline。3. 标准流程模式的实现 (Workflow pattern implementation)3.1. 基本控制流程的模式 (Basic control flow patterns)3.1.1. 顺序模式(Sequence)描述顺序是指在同一流程中,一个活动(Action或Activity)在前一个活动结束后被激活。实现使用无条件转移箭头将两个Action

9、连接在一起。3.1.2. “AND” 分支 (Parallel Split,Fork,AND-Split)描述流程中的某一点,从单执行路径分支成多个并行执行路径。允许多个活动同时或以任何顺序执行。实现使用Fork(并行)操作,定义一个有多条流出路径(outgoing transition)的路由点(Routing Node)。3.1.3. 同步模式(Synchronization, AND-Join)描述流程中的某一点,多个并行的子流程或活动汇集成单个执行路径,并同步等待这些执行路径执行完毕。实现使用AND-Join(用并行循环),定义一个有多条流入路径(outgoing transition

10、)的路由点(Routing Node)。3.1.4. 互斥选择(Exclusive Choice,Decision,XOR-Split)描述流程中的某一点,根据条件表达式或流程控制数据从多条分支中选择一条。实现使用Decision,为活动指定条件规则,形成规则列表。当活动完成后,选择第一条表达式运算结果为TRUE的路径。3.1.5. 异步合并(Asynchronous Join,OR-Join)描述流程中的某一点,多个并行的子流程或活动简单合并在一起,且无需同步等待。实现使用OR-Join(用并行循环),定义一个有多条流入路径(outgoing transition)的路由点(Routing

11、Node)。3.2. 分支和同步模式 (Advanced Branching and Synchronization patterns)3.2.1. 多重选择(Multi-Choice)描述流程中的某一点,根据条件表达式或流程控制数据从多条分支中选择一条以上的分支。实现1.组合使用AND-Split(Fork)和XOR-Split(Decision),在每一个Fork流出分支都加上一个Decision条件判断,该分支的活动要么被执行,要么被旁路。2.第二种实现方法,是将第一种的组合反过来。在所有的Decision流出分支上加Fork。通常各个分支的可能组合并不多,因此此种方法显得更加紧凑。3.

12、3. 结构模式 (Structural patterns)3.3.1. 循环(Cycle,Loop,Structured Cycles)描述流程中某一个或多个活动被重复执行多次,循环只有一个入口和一个出口。实现使用While,Decision和辅助变量来控制活动的重复次数和退出条件。3.3.2. 任意循环(Arbitrary Cycles)描述流程中某一个或多个活动被重复执行多次,循环可以有多个入口和多个出口。实现Biztalk不支持任意循环。大部分情况下,可以将任意循环转换成结构化循环(即3.3.1的Cycle模式),然后再由Biztalk实现。如下图所示。3.3.3. 隐式终止(Impli

13、cit Termination)描述当流程(或子流程)没有可执行的活动时,流程会自动终止。实现指定多个End节点。当到达某个End节点后,且其他正在执行的活动也中止后,流程自动终止。3.4. 多实例模式 (Multiply Instances patterns)3.4.1. 非同步的多实例(Multiply Instances without Synchronization)描述创建某个活动的多个实例。各个实例相互独立,且无需同步。实现1. 最直接的实现方法是使用Fork,并复制所有的实例。适用于在设计时已知实例数目的情况。2. 使用While循环,创建多个实例。3. 使用XLANG Scheduler Moniker接口创建多个实例。3.4.2. 同步多实例(Multiply Instances with Synchronization)描述创建某个活动的多个实例,等待各个实例结束后,进入下面的活动。实现1.对前一节中使用Fork的情况,可以使用AND-Join来同步所有实例。2.另外一种相对简单的方法是,使用顺序的While循环,所有的活动都顺序执行。如下图所示:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号