CN103092617A - 一种基于后备服务的高可靠工作流开发方法 - Google Patents
一种基于后备服务的高可靠工作流开发方法 Download PDFInfo
- Publication number
- CN103092617A CN103092617A CN2013100132824A CN201310013282A CN103092617A CN 103092617 A CN103092617 A CN 103092617A CN 2013100132824 A CN2013100132824 A CN 2013100132824A CN 201310013282 A CN201310013282 A CN 201310013282A CN 103092617 A CN103092617 A CN 103092617A
- Authority
- CN
- China
- Prior art keywords
- workflow
- reliability
- service
- subsystem
- reserve
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000011161 development Methods 0.000 title claims abstract description 24
- 230000007246 mechanism Effects 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 6
- 238000011960 computer-aided design Methods 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013396 workstream Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于后备服务的高可靠性工作流开发方法,首先用户对既有工作流添加后备服务,工作流描述机制将加入了后备服务的工作流以形式化的语言进行描述;分解出该添加了后备服务的工作流中包含的各个子系统,计算出可靠性,如果可靠性不满足需求,从外部服务中选择最优的服务继续添加;渐进地提高工作流的可靠性,直至达到用户的要求。本发明利用网络中涌现的大量的等价服务作为工作流中服务的后备服务,构建高可靠性的工作流。
Description
技术领域
本发明涉及计算机应用技术,具体是一种应用了Web Service技术和网站开发技术实现了基于后备服务的高可靠性工作流开发方法。
背景技术
工作流是一类能够完全或者部分自动执行的业务过程,文档、信息或任务根据一定的程序规则在不同的参与者之间进行传递与执行。作为企业经营过程重组与过程自动化的一种手段, 工作流技术着眼于协调企业资源, 自动化企业业务流程, 高效完成企业业务目标。近年来,面向web服务的工作流技术逐渐兴起,使得企业活动分散的参与者能够透明地应用分布异构的资源进行更快更便捷的合作。
然而,面对开放、动态的网络环境,构造和保障工作流的可靠执行面临巨大挑战。 web服务所处的环境是一个动态的网络环境,很多服务可能经常发生变化,服务构建、服务组合、服务绑定和服务实际运行中都有可能出现失败的情况。因此,即使已经建立了可靠的流程,流程中涉及服务的可靠性变化还会使整个流程可靠性降低甚至无法顺利运行。
开放的网络环境是挑战,同是也带来了机遇。随着web服务的发展,往往会出现多个具有相似功能、能完成相同任务的服务,可以通过一定的方法把这些服务引入到工作流中增强工作流的可靠性。
在UDDI(Universal Description Discovery and Integration,统一描述、发现和集成协议)中心,会有很多相似行为的服务,比如提供的服务功能相同,服务调用方法相同。如果服务A的使用环境也是服务B的使用环境,那么我们称服务B能模拟服务A;如果服务A与服务B能够互相模拟,那么称服务A与服务B等价。对于等价的服务,它们的使用环境相同,如果把处于工作流中的一个服务使用它的等价服务替换,那么整个工作流的运行将不会受到影响(如果替换服务能够正常与运行的话)。我们把这些等价服务称作原来工作流中服务的后备服务。
发明内容
本发明提供了一个基于后备服务的高可靠工作流开发方法,用户按此方法进能开发出相对更可靠的工作流。
本发明所述的一种基于后备服务的高可靠工作流开发方法,其包括以下步骤:
1)首先,为提高可靠性,用户对既有工作流添加后备服务,工作流描述机制将加入了后备服务的工作流以形式化的语言进行描述;
2)分解出该添加了后备服务的工作流中包含的各个子系统,计算出子系统中每个web服务节点的可靠性以及工作流整体的可靠性,如果计算得到的工作流可靠性不满足用户的需求,用户从外部服务中选择最优的服务继续添加到后备服务列表中;
3)再次评估服务节点和工作流整体的可靠性,如果还是不满足要求,则继续添加后备服务,渐进地提高工作流的可靠性,直至达到用户的要求。
上述步骤2)中,分解工作流中包含的各个子系统及计算可靠性的过程是:将工作流自顶向下被分解成五种不同类型的子系统:服务节点,顺序结构,选择结构,并行结构和循环结构, 运用Petri网系统结构性能分析的方法,把Petri网对图形结构的性能分析方法应用于工作流结构的分析与可靠性的评估计算;使用自顶向下的方式把工作流表示成一个树形结构,分解出工作流中所有的子系统,并从底层开始计算子系统的其可靠性,对分解得到的子系统应用自底向上逐层构建的方式,每一层都应用子系统的可靠性计算公式,最终在树形结构的顶端得到整个工作流的可靠性。
所述步骤2)中,用户从外部服务中选择最优的服务继续添加到后备服务列表的过程中,用户优先选择对工作流可靠性影响较高的web服务添加后备服务。对于每个服务的等价服务,按后备服务机制所安排的顺序进行最优的排序,使得用户每次都能够优先选取可靠性最高的等价服务加入此服务的后备服务列表中。
其中是web服务在子系统中的重要性,是web服务的可靠性,是一个比例常数,子系统的重要性是指工作流整体的可靠性相对于子系统可靠性的变化率,其值越大说明子系统对整体的影响越大,具有越高的重要性。重要性不仅与子系统自身的结构有关,还与子系统运行的次数有关,子系统重要性的计算方法是:
本发明的有益效果:
网络中存在许多能完成相同任务的等价服务,本发明利用网络中涌现的大量等价服务作为工作流中服务的后备服务,构建高可靠性的工作流。本发明将工作流子系统根据敏感度排序,优先为敏感度高的子系统添加后备服务、提高子系统可靠性。在此过程中,使用工作流描述语言编写完工作流脚本后,用户能根据反馈的工作流结构分析和可靠性计算结果,为工作流子系统添加后备服务,渐进地提高工作流可靠性。
附图说明
图1展示了发明的典型应用场景;
图2显示了基于后备服务的高可靠工作流开发模型;
图3显示了支撑工具的框架;
图4显示了支撑工具的使用界面一,
图5显示了支撑工具的使用界面一,
图6显示了支撑工具的使用界面一,
图7显示了支撑工具的获取工作流相关参数的模块AttributeBpel.PHP的PHP代码结构,
图8显示了支撑工具的工作流可靠性评估模块BpelNode.PHP的PHP代码结构,
图9显示了支撑工具的工作流结构展示模块脚本Show.js的JavaScript代码结构,
图10显示了支撑工具的BPEL工作流脚本生成模块的Java代码结构,
图11显示实施例中工作流的BPEL脚本中的BookTrainTicket服务调用代码,
图12显示使用本方法增加了在不可靠情况下对后备服务newns1BookTrainTicket的调用。
具体实施方式
本发明提供了一个基于后备服务的高可靠工作流开发方法,其中包括一个基于后备服务的高可靠工作流开发模型,一种工作流的描述机制和一个基于此方法的开发高可靠工作流的支撑工具。用户按此方法进行工作流开发能开发出相对更可靠的工作流。
在基于后备服务的高可靠工作流开发模型中(图2),工作流的描述机制将用户自定义的加入了后备服务的工作流以形式化的语言描述。通过分析工作流的描述,分解出工作流中包含的各个子系统,计算出其中每个web服务,包括加入了后备服务后的服务节点的可靠性以及工作流整体的可靠性。如果计算得到的工作流可靠性不满足用户的需求,用户可以从外部服务中选择最优的服务添加到后备服务列表中。为工作流中的服务加入后备服务后,再次评估服务节点和工作流整体的可靠性,如果还是不满足要求,则继续添加后备服务,渐进地提高工作流的可靠性,直至达到用户的要求。
工作流中涉及的过程,有可能只有一个单个具体的服务,也有可能是若干个服务共同协作的结果,但从工作流的角度看,一个外部服务节点就是一个原子单元,节点中具体服务的复杂性对工作流是透明的。在加入后备服务后,一个服务节点也有可能是一个服务和它的后备服务共同协作的结果。在这个认识的基础上,给出了工作流的形式化定义:
<TaskNode> ::= “?” | “Ti”(<BackupNode>)|“start” | “end”
<BackupNode>::= “?” | “Ti” > <BackupNode>
<Workflow> ::= “start”;<Branch>;”end”
<Branch> ::= <TaskNode> | <sequence> | <selection> | <parallel> | <loop>
<sequence> ::= <Branch>;<Branch>
<selection> ::= <Branch>,<Branch>
<parallel> ::= <Branch> || <Branch>
<loop> ::= repeat <Branch> until NOT condition
其中“?”表示这是一个空节点,“Ti”表示一个具体的服务,“;”表示分支之间是顺序执行,“,”表示分支之间选择其中一个执行,“||”表示分支之间并行执,括号“( )”中添加后备服务列表,后备服务列表中的“>”表示后备服务之间被执行的先后顺序,每个节点的可能情况之间用“|”分隔。
从工作流的形式化定义可以看出,工作流可以自顶向下被分解成五种不同类型的子系统:服务节点,顺序结构,选择结构,并行结构和循环结构,所有工作流都是由这五种结构组合而成的。 运用Petri网系统结构性能分析的方法,我们可以把Petri网对图形结构的性能分析方法应用于工作流结构的分析与可靠性的评估计算。使用自顶向下的方式最终能把工作流表示成一个树形结构,分解出工作流中所有的子系统,并从底层开始计算子系统的其可靠性,对分解得到的子系统应用自底向上逐层构建的方式,每一层都应用子系统的可靠性计算公式,最终在树形结构的顶端得到整个工作流的可靠性。
另外,工作流中的子系统根据敏感度进行了排序,用户可以优先选择对工作流可靠性影响更高的服务添加后备服务。对于每个服务的等价服务,按后备服务机制所安排的顺序进行最优的排序,使得用户每次都能够优先选取可靠性最高的等价服务加入此服务的后备服务列表中。
其中是服务的在系统中的重要性,是服务的可靠性,是一个比例常数。子系统的重要性是指工作流整体的可靠性相对于子系统可靠性的变化率,其值越大说明子系统对整体的影响越大,具有越高的重要性。重要性不仅与子系统自身的结构有关,还与子系统运行的次数有关,子系统重要性的计算方法是:
高可靠工作流开发支撑工具的实现能够帮助用户按照高可靠工作流开发模型快速、方便地开发高可靠的工作流,如图3。支撑工具提供了互联网页面的交互方式进行工作流开发,用户基于工作流描述机制编写完工作流脚本后,工具会自动分析工作流结构、计算工作流各个子系统以及整体的可靠性,以数据和流程图的方式反馈给用户,用户根据自身需求对工作流进行图形化的操作,比如增删后备服务,直到达到要求为止。如果用户需要,工具能够自动将这个工作流转换成BPEL工作流脚本,并部署到外部工作流执行引擎上,等待接受外部调用,如图4。
高可靠工作流开发支撑工具的主要内容包括:
1、以PHP语言编写的工具网站,这也是用户使用工具的入口。其中核心模块包括后端处理:工作流可靠性评估模块BpelNode.PHP和获取工作流相关参数的模块AttributeBpel.PHP等,以及前端展示工作流结构模块:用JavaScript语言编写的动态展示脚本Show.js。
2、以Java语言编写的BPEL工作流脚本生成服务,作为Web Service提供给工具网站调用。其中主要模块就是生成BPEL工作流脚本模块。工具核心模块代码示例如图7、8、9、10所示。
高可靠工作流开发支撑工具中的BPEL工作流脚本生成服务,利用了ODE引擎的扩展功能faultonfailure功能,即在失败情况下同样进行错误处理。在转换生成的可靠BPEL脚本中,需要添加如下声明语句:
<ext:failureHandling>
<ext:faultOnFailure>true</ext:faultOnFailure>
</ext:failureHandling>
在调用外部服务的invoke语句中,加入catchAll块用于错误处理,调用后备服务列表中的服务。如果一个服务的后备服务不止一个,那么需要按照后备服务的可靠性优先级递归地在invoke语句中加入catchAll块,最外层的catchAll块中调用的服务可靠性最高。
<bpel:invoke ... >
<bpel:catchAll>
</bpel:catchAll>
</bpel:invoke>
以下结合应用实例对本发明作进一步描述。
1、本发明的硬件环境
(1)一个支持PHP网站部署的服务器和一个Java网络应用的容器Tomcat,用于部署整个支撑工具。
(2)一个支持运行BPEL工作流脚本的引擎(Apache ODE引擎),两者以万维网络服务形式介入互联网。
2、应用场景
如图1,本发明的典型应用场景是用户按工作流描述机制编写工作流,工具分析工作流后把工作流可靠性等信息反馈给用户,用户根据反馈信息给工作流添加后备服务,渐进地提高工作流可靠性,直到满足要求为止。工具能够自动转换最终的工作流描述为BPEL可执行脚本并部署到外部执行引擎上。
3、支撑工具实施过程
1) 如图4中显示,点击“增加工作流”,开始按发明的工作流描述机制编写工作流,完成后保存工作流,工具以图形化的方式展示出工作流的流程图结构;
2) 点击“评估工作流”,工具开始解析工作流描述机制,对各个子系统的可靠性进行计算,并且给出每个子系统的可靠性和工作流整体的可靠性,如图5中显示;
3) 点击工作流的流程图中任意一个子系统节点,工具会给出这个服务对应的后备服务列表,从列表中选择要加入的后备服务;
4) 重复2)-3)步骤直到工作流可靠性满足需求为止,如图6中显示。
点击“部署”,工具自动将工作流描述机制转成BPEL可执行工作流语言,并部署到外部工作流执行引擎上,等待调用。
示例中,原工作流的BPEL脚本中的BookTrainTicket服务调用代码在图11中显示,而工具生成的高可靠的工作流BPEL脚本中增加了在不可靠情况下对后备服务newns1BookTrainTicket的调用,代码结构如图12显示。
Claims (5)
1.一种基于后备服务的高可靠工作流开发方法,其特征在于包括以下步骤:
1)首先,为提高可靠性,用户对既有工作流添加后备服务,工作流描述机制将加入了后备服务的工作流以形式化的语言进行描述;
2)分解出该添加了后备服务的工作流中包含的各个子系统,计算出子系统中每个web服务节点的可靠性以及工作流整体的可靠性,如果计算得到的工作流可靠性不满足用户的需求,用户从外部服务中选择最优的服务继续添加到后备服务列表中;
3)再次评估web服务节点和工作流整体的可靠性,如果还是不满足要求,则继续添加后备服务,渐进地提高工作流的可靠性,直至达到用户的要求。
2.根据权利要求1所述的基于后备服务的高可靠工作流开发方法,其特征在于,上述步骤2)中,分解工作流中包含的各个子系统及计算可靠性的过程是:将工作流自顶向下被分解成五种不同类型的子系统:服务节点,顺序结构,选择结构,并行结构和循环结构, 运用Petri网系统结构性能分析的方法,把Petri网对图形结构的性能分析方法应用于工作流结构的分析与可靠性的评估计算;使用自顶向下的方式把工作流表示成一个树形结构,分解出工作流中所有的子系统,并从底层开始计算子系统的其可靠性,对分解得到的子系统应用自底向上逐层构建的方式,每一层都应用子系统的可靠性计算公式,最终在树形结构的顶端得到整个工作流的可靠性。
4.根据权利要求2所述的基于后备服务的高可靠工作流开发方法,其特征在于,所述步骤2)中,用户从外部服务中选择最优的服务继续添加到后备服务列表的过程中,用户优先选择对工作流可靠性影响较高的web服务添加后备服务;对于每个服务的等价服务,按后备服务机制所安排的顺序进行最优的排序,使得用户每次都能够优先选取可靠性最高的等价服务加入此服务的后备服务列表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100132824A CN103092617A (zh) | 2013-01-15 | 2013-01-15 | 一种基于后备服务的高可靠工作流开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100132824A CN103092617A (zh) | 2013-01-15 | 2013-01-15 | 一种基于后备服务的高可靠工作流开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103092617A true CN103092617A (zh) | 2013-05-08 |
Family
ID=48205228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100132824A Pending CN103092617A (zh) | 2013-01-15 | 2013-01-15 | 一种基于后备服务的高可靠工作流开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103092617A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283934A (zh) * | 2013-07-12 | 2015-01-14 | 中国移动通信集团重庆有限公司 | 一种基于可靠性预测的web服务推送方法、装置及服务器 |
CN108292208A (zh) * | 2015-11-24 | 2018-07-17 | 微软技术许可有限责任公司 | 并行前端应用和工作流开发 |
CN108664314A (zh) * | 2017-03-29 | 2018-10-16 | 香港城市大学 | 大数据处理流程模块化管理方法及装置 |
CN111104214A (zh) * | 2019-12-26 | 2020-05-05 | 北京九章云极科技有限公司 | 一种工作流应用方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452389A (zh) * | 2008-12-18 | 2009-06-10 | 南京财经大学 | 基于调用业务节点与服务的软件工作流组合方法 |
-
2013
- 2013-01-15 CN CN2013100132824A patent/CN103092617A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452389A (zh) * | 2008-12-18 | 2009-06-10 | 南京财经大学 | 基于调用业务节点与服务的软件工作流组合方法 |
Non-Patent Citations (1)
Title |
---|
陈威等: "一个基于后备服务的高可靠工作流开发模型", 《计算机工程与应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283934A (zh) * | 2013-07-12 | 2015-01-14 | 中国移动通信集团重庆有限公司 | 一种基于可靠性预测的web服务推送方法、装置及服务器 |
CN104283934B (zh) * | 2013-07-12 | 2018-05-22 | 中国移动通信集团重庆有限公司 | 一种基于可靠性预测的web服务推送方法、装置及服务器 |
CN108292208A (zh) * | 2015-11-24 | 2018-07-17 | 微软技术许可有限责任公司 | 并行前端应用和工作流开发 |
CN108664314A (zh) * | 2017-03-29 | 2018-10-16 | 香港城市大学 | 大数据处理流程模块化管理方法及装置 |
CN108664314B (zh) * | 2017-03-29 | 2023-10-13 | 香港城市大学 | 大数据处理流程模块化管理方法及装置 |
CN111104214A (zh) * | 2019-12-26 | 2020-05-05 | 北京九章云极科技有限公司 | 一种工作流应用方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10565095B2 (en) | Hybrid testing automation engine | |
CN101356522B (zh) | 终端用户对工作流进行动态重新定位的计算机实现的系统 | |
US8490050B2 (en) | Automatic generation of user interfaces | |
US10782961B2 (en) | Analyzing components related to a software application in a software development environment | |
US20150293764A1 (en) | Method and system to compose and execute business rules | |
US11093242B2 (en) | Automatically mapping data while designing process flows | |
US20140067836A1 (en) | Visualizing reporting data using system models | |
CN102810057A (zh) | 一种记录日志的方法 | |
US20100121888A1 (en) | Automatic designation of footnotes to fact data | |
CN104731588B (zh) | 页面布局文件生成方法和页面布局文件生成装置 | |
CN110580189A (zh) | 生成前端页面的方法、装置、计算机设备以及存储介质 | |
KR101588592B1 (ko) | 객체관계 매핑 기반 하이브리드 앱 개발 시스템 및 그 방법 | |
CN109783065A (zh) | 产生对话式用户接口的方法及系统 | |
CN103092617A (zh) | 一种基于后备服务的高可靠工作流开发方法 | |
JP2022541986A (ja) | カスタマイズされた人工知能生産ラインを実行する装置及び方法、機器及び媒体 | |
Gesing et al. | Gathering requirements for advancing simulations in HPC infrastructures via science gateways | |
CN113296772A (zh) | 页面配置方法、装置、计算机设备及可读存储介质 | |
US10505873B2 (en) | Streamlining end-to-end flow of business-to-business integration processes | |
CN103186384A (zh) | 一种面向业务组件的软件设计分析系统及其使用方法 | |
CN112130849B (zh) | 代码自动生成方法及装置 | |
JP5644599B2 (ja) | オブジェクト指向モデル設計支援装置 | |
CN113506099A (zh) | 申报业务的配置系统、方法、计算机设备和存储介质 | |
CN113805877A (zh) | 基于idea插件的项目工程的构建方法及装置 | |
Woods et al. | The system context architectural viewpoint | |
US20210174302A1 (en) | Data provisioning system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130508 |