CN101964815A - 基于反向通知的服务流程执行省时方法 - Google Patents
基于反向通知的服务流程执行省时方法 Download PDFInfo
- Publication number
- CN101964815A CN101964815A CN2010102902948A CN201010290294A CN101964815A CN 101964815 A CN101964815 A CN 101964815A CN 2010102902948 A CN2010102902948 A CN 2010102902948A CN 201010290294 A CN201010290294 A CN 201010290294A CN 101964815 A CN101964815 A CN 101964815A
- Authority
- CN
- China
- Prior art keywords
- web service
- output
- time
- input
- service
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于反向通知的服务流程执行省时方法,其步骤为:1、在原有的计算机Web服务定义中,为Web服务的输出扩展定义一个时间变量;2、在Web服务流程描述文件中,增加标签模块,定义在后Web服务的输入与在前Web服务的输出之间的依赖关系;3、建立反向通知操作,引擎获得在前Web服务与在后Web服务的输入输出依赖关系,比较到达结束状态时间与Web服务总的输入等待时间的大小,若小于,则执行反向通知动作,通知在前Web服务放弃耗时的输出。本发明的方法与现有技术相比,能够通知在前Web服务放弃耗时的输出,从而缩短计算机Web服务流程执行的时间,提高Web服务所占用计算机资源的使用效率。
Description
技术领域
本发明涉及Web服务流程执行领域,尤其是一种基于反向通知的Web服务流程执行省时方法,实现在Web服务流程执行过程中,对Web服务间的输入输出阻塞时间进行定义规划,增加反向通知机制,实现Web服务流程执行时间的最大压缩,从总体上节约Web服务流程的执行时间,提高Web服务流程的执行效率。
背景技术
任何在计算机网络中使用标准XML消息进行通信,并与平台、语言无关的Web服务,都可以看作是Web服务。Web服务技术发展至今,已经发展到了一个非常成熟的阶段,有越来越多的组织和大型Web服务型企业释放出了海量的、稳定易用的Web服务。但是,单个的原子服务提供的功能往往十分有限,越来越难以满足一些复杂业务流程处理的要求。于是在Web服务发展的过程中,出现了Web服务组合的概念,以期能够充分的发挥Web服务重用的重要特性,灵活应对业务流程变更的目标。目前,按照Web服务组合的实现方式,Web服务的组合可以分为两大类:服务编制和服务编排;此外,按照Web服务组合的动态性程度,Web服务的组合又可以分为静态Web服务组合和动态Web服务组合;按照自动化程度,Web服务的组合则可分为手动Web服务组合、半自动Web服务组合和全自动Web服务组合方法;按照Web服务组合方法的技术或理论基础,Web服务的组合还可以分为基于工作流的服务组合和基于人工智能的服务组合。但是,这些Web服务组合方法在流程定义时,并没有充分考虑流程中Web服务执行过程中,单个或多个消息输出的时间阻塞,或无效消息的时间阻塞对Web服务流程执行时间的影响。现有技术中采用最多的方法是设置Web服务执行的超时时间变量,在Web服务执行超过一定时间后,重新执行该Web服务,或者使用替代Web服务进行执行。这就大大影响了计算机网络执行Web服务流程的时间效率,降低了Web服务执行过程中所占用资源的使用效率。
发明内容
本发明的目的在于:提供一种基于反向通知的服务流程执行省时方法,能够最大限度的缩短计算机网络等待输入的阻塞时间,提高Web服务流程的执行时间和所占用资源的使用效率。
为实现上述目的,本发明可采取下述技术方案:
本发明一种基于反向通知的服务流程执行省时方法,包括下列步骤:
步骤一:扩展定义Web服务的输出操作属性
在原有的计算机Web服务定义中,为Web服务的输出扩展定义一个时间变量,用以表示该输出的阻塞时间,该阻塞时间是由Web服务本身属性决定的输出阻塞时间;
步骤二:定义Web服务间输入输出依赖关系
在Web服务流程描述文件中,通过在定义文件中增加标签模块,每个标签包含一组输入输出对,定义在后Web服务的输入与在前Web服务的输出之间的依赖关系,用于Web服务流程在执行过程中,判断Web服务是否需要放弃对在前Web服务输入的等待;
步骤三:建立反向通知操作
Web服务引擎获得在前Web服务与在后Web服务的输入输出依赖关系,先执行在前Web服务,再执行在后Web服务,根据在后Web服务的内部逻辑状态,在存在状态分支的情况下,比较到达结束状态时间与Web服务总的输入等待时间的大小,若到达结束状态时间大于或等于Web服务总的输入等待时间,则不执行反向通知操作,若到达结束状态时间小于Web服务总的输入等待时间,则执行反向通知操作,通知在前Web服务放弃耗时的输出。
步骤一所述的扩展定义Web服务的输出操作属性为:在原有的Web服务描述文件WSDL标准中,为output属性扩展定义一个时间变量:blockTime,值类型为long;步骤二所述的定义Web服务间输入输出依赖关系为:采用Web服务组合流程描述标准BPEL进行扩展定义,增加一个名为dependents的bpel标签模块,每个dependent标签包含一组输入输出对,input标签表示输入,name属性表示输入的名称,belongto属性表示该输入属于哪个服务,output标签表示输出,name属性表示输出的名称,belongto属性表示该输出属于哪个服务,输入与输出间为多对多对应关系;步骤三所述的建立反向通知机制为:在前Web服务的部分输出作为在后Web服务的部分输入,定义在前Web服务的输出集合为OA={O1,O2,O3,……,On},在后Web服务的输入集合为IB={I1,I2,I3,……,In},在后Web服务等待所有输入的时间为Max(IB),在前Web服务中的执行时间至少为Max(OA)。
本发明所述的基于反向通知的服务流程执行省时方法,由于采用上述技术方案,在原有的计算机Web服务定义中,扩展定义了Web服务的输出操作属性,在服务流程描述文件中定义了服务间输入输出依赖关系,并建立了Web服务流程执行引擎执行反向通知的操作,与现有技术相比,在计算机Web服务中使用本发明的方法,能够通知在前Web服务放弃耗时的输出,从而缩短计算机Web服务流程执行的时间,提高Web服务所占用计算机资源的使用效率。
附图说明
图1是本发明实施例的在后Web服务的内部逻辑状态转换与输入的关系结构示意图。
具体实施方式
一种基于反向通知的服务流程执行省时方法,包括下列步骤:
步骤一,扩展定义Web服务的输出操作属性
原有的计算机Web服务描述文件WSDL标准中,Web服务的operation属性分为input和output两种操作。在本实施例中,为output属性扩展定义个一个时间变量:blockTime,表示该输出的阻塞时间,该阻塞时间是由Web服务本身属性决定的输出阻塞时间,并不包含网络延迟等客观网络条件因素。由于Web服务的执行往往是个长时的过程,因此对该时间变量的单位定位100毫秒(1个时间单位,下述文字中表示时间的变量,单位为1个时间单位)。
<operation name=″A″>
<input message=″aRequest″name=″aRequest″/>
<output message=″aResponse″name=″aResponse″blockTime=1000/>
</operation>
本实施例说明操作Web服务A的输出阻塞时间为1000个时间单位,即100秒。
步骤二:定义Web服务间输入输出依赖关系
Web服务组合技术发展至今,已经出现了多种方法和标准的描述规范,在本实施例中,采用目前最流行的Web服务组合流程描述标准BPEL(Business ProcessExecution Language),进行扩展定义。增加一个名为dependents的bpel标签定义,
<bpel:dependents>
<bpel:dependent>
<input name=″I1″belongto=″B″/>
<output name=″O1″belongto=″A″/>
</bpel:dependent>
</bpel:dependents>
本实施例定义了流程中在后Web服务B的输入I1与在前Web服务A的输出O1的依赖关系。流程中Web服务间的输入与输出关系依赖是多对多的关系。每个dependent标签包含一组输入输出对,input标签表示输入,name属性表示输入的名称,belongto属性表示该输入属于哪个Web服务,output标签表示输出,name属性表示输出的名称,belongto属性表示该输出属于哪个Web服务,输入与输出间为多对多对应关系;
步骤三:建立反向通知操作
Web服务A的部分输出作为Web服务B的部分输入。定义Web服务A的输出集合为OA={O1,O2,O3,……,On},Web服务B的输入集合为IB={I1,I2,I3,……,In},那么假定Web服务A的输出{O1,O2,O3,O4}分别一一对应Web服务B的输入{I1,I2,I3,I4}。在Web服务A的定义中,已经对输出集合{O1,O2,O3,O4}的输出阻塞时间进行了扩展定义。如下所示(只列出了对Web服务A中O1,O2,O3,O4的输出定义)
<output message=″a1″name=″O1″blockTime=20/>
......
<output message=″a2″name=″O2″blockTime=100/>
......
<output message=″a3″name=″O3″blockTime=60/>
......
<output message=″a4″name=″O4″blockTime=20/>
在Web服务流程定义过程中,已经对Web服务B的输入和Web服务A的输出做了依赖关系扩展定义。
<bpel:dependents>
<bpel:dependent>
<input name=″I1″belongto=″B″/>
<output name=″O1″belongto=″A″/>
</bpel:dependent>
<bpel:dependent>
<input name=″I2″belongto=″B″/>
<output name=″O2″belongto=″A″/>
</bpel:dependent>
<bpel:dependent>
<input name=″I3″belongto=″B″/>
<output name=″O3″belongto=″A″/>
</bpel:dependent>
<bpel:dependent>
<input name=″I4″belongto=″B″/>
<output name=″O4″belongto=″A″/>
</bpel:dependent>
</bpel:dependents>
通过定义可知,Web服务B中{I1,I2,I3,I4}的输入阻塞时间为T={20,100,60,20}。因此Web服务B等待所有输入的时间为Max(T)=100。Web服务A中{O1,O2,O3,O4}的执行时间至少为Max(T(O1),T(O2),T(O3),T(O4))=100。
本实施例中Web服务B的执行过程中,其内部的逻辑状态转换及转换过程中涉及的输入如图1表示。从开始状态,进过对输入I1进行处理,转换到状态1。从状态1到结束状态的转换可以通过两条路径,路径①:通过处理I4直接到达结束状态;路径②通过处理I2,到达状态2,再处理I3,到达结束状态。通过路径①到达Web服务结束状态,Web服务执行时间为Max(T(I1),T(I4))=20,通过路径①到达Web服务结束状态,Web服务执行时间为Max(T(I1),T(I2),T(I3),T(I4))=100。
流程执行引擎根据Web服务B在状态1到达结束状态的路径选择,决定是否执行反向通知Web服务A的动作。情况(1):Web服务B通过路径①到达结束状态。Web服务执行时间Max(T(I1),T(I4))=20<Web服务等待输入时间100,则执行反向通知动作,通知A放弃输出{O2,O3}。使得Web服务A对{O1,O2,O3,O4}的执行时间从100降低到Max(T(O1),T(O4))=20,将Web服务B的对输入的等待时间从100缩短到Max(T(I1),T(I4))=20,从而大幅缩短了Web服务组合流程执行Web服务A和Web服务B的时间。情况(2):Web服务B通过路径②到达结束状态。Web服务执行时间Max(T(I1),T(I2),T(I3),T(I4))=100>=Web服务等待输入时间100,时间上没有缩短,因此引擎无需执行反向通知的操作。
若Web服务流程中,存在大量Web服务的内部逻辑状态转换具有分支的情况,则本发明对流程执行时间具有良好的优化效果。从开始状态,进过对输入I1进行处理,转换到状态1。从状态1到结束状态的转换可以通过两条路径,路径①:通过处理I4直接到达结束状态;路径②通过处理I2,到达状态2,再处理I3,到达结束状态。通过路径①到达Web服务结束状态,Web服务执行时间为Max(T(I1),T(I4))=20,通过路径①到达Web服务结束状态,Web服务执行时间为Max(T(I1),T(I2),T(I3),T(I4))=100。
流程执行引擎根据Web服务B在状态1到达结束状态的路径选择,决定是否执行反向通知Web服务A的动作。情况(1):Web服务B通过路径①到达结束状态。Web服务执行时间Max(T(I1),T(I4))=20<Web服务等待输入时间100,则执行反向通知动作,通知A放弃输出{O2,O3}。使得Web服务A对{O1,O2,O3,O4}的执行时间从100降低到Max(T(O1),T(O4))=20,将Web服务B的对输入的等待时间从100缩短到Max(T(I1),T(I4))=20,从而大幅缩短了Web服务组合流程执行Web服务A和Web服务B的时间。情况(2):Web服务B通过路径②到达结束状态。Web服务执行时间Max(T(I1),T(I2),T(I3),T(I4))=100>=Web服务等待输入时间100,时间上没有缩短,因此引擎无需执行反向通知的操作。
若Web服务流程中,存在大量Web服务的内部逻辑状态转换具有分支的情况,则本发明对流程执行时间具有良好的优化效果。
Claims (2)
1.一种基于反向通知的服务流程执行省时方法,其特征在于包括下列步骤:
步骤一:扩展定义Web服务的输出操作属性
在原有的计算机Web服务定义中,为Web服务的输出扩展定义一个时间变量,用以表示该输出的阻塞时间,该阻塞时间是由Web服务本身属性决定的输出阻塞时间;
步骤二:定义Web服务间输入输出依赖关系
在Web服务流程描述文件中,通过在定义文件中增加标签模块,每个标签包含一组输入输出对,定义在后Web服务的输入与在前Web服务的输出之间的依赖关系,用于Web服务流程在执行过程中,判断Web服务是否需要放弃对在前Web服务输入的等待;
步骤三:建立反向通知操作
Web服务引擎获得在前Web服务与在后Web服务的输入输出依赖关系,先执行在前Web服务,再执行在后Web服务,根据在后Web服务的内部逻辑状态,在存在状态分支的情况下,比较到达结束状态时间与Web服务总的输入等待时间的大小,若到达结束状态时间大于或等于Web服务总的输入等待时间,则不执行反向通知操作,若到达结束状态时间小于Web服务总的输入等待时间,则执行反向通知操作,通知在前Web服务放弃耗时的输出。
2.根据权利要求1所述的基于反向通知的服务流程执行省时方法,其特征在于:步骤一所述的扩展定义Web服务的输出操作属性为:
在原有的Web服务描述文件WSDL标准中,为output属性扩展定义一个时间变量:blockTime,值类型为long;
步骤二所述的定义Web服务间输入输出依赖关系为:采用Web服务组合流程描述标准BPEL进行扩展定义,增加一个名为dependents的bpel标签模块,每个dependent标签包含一组输入输出对,input标签表示输入,name属性表示输入的名称,belongto属性表示该输入属于哪个服务,output标签表示输出,name属性表示输出的名称,belongto属性表示该输出属于哪个服务,输入与输出间为多对多对应关系;
步骤三所述的建立反向通知机制为:在前Web服务的部分输出作为在后Web服务的部分输入,定义在前Web服务的输出集合为OA={O1,O2,O3,……,On},在后Web服务的输入集合为IB={I1,I2,I3,……,In},在后Web服务等待所有输入的时间为Max(IB),在前Web服务中的执行时间至少为Max(OA)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010290294 CN101964815B (zh) | 2010-09-19 | 2010-09-19 | 基于反向通知的服务流程执行省时方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010290294 CN101964815B (zh) | 2010-09-19 | 2010-09-19 | 基于反向通知的服务流程执行省时方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101964815A true CN101964815A (zh) | 2011-02-02 |
CN101964815B CN101964815B (zh) | 2013-06-19 |
Family
ID=43517545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010290294 Active CN101964815B (zh) | 2010-09-19 | 2010-09-19 | 基于反向通知的服务流程执行省时方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101964815B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354643A (zh) * | 2008-08-26 | 2009-01-28 | 中国科学院软件研究所 | 一种基于有状态方面的bpel流程运行时监控方法 |
-
2010
- 2010-09-19 CN CN 201010290294 patent/CN101964815B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354643A (zh) * | 2008-08-26 | 2009-01-28 | 中国科学院软件研究所 | 一种基于有状态方面的bpel流程运行时监控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101964815B (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103368851B (zh) | 基于资源复用的Openflow流表存储优化方法 | |
CN103812949B (zh) | 一种面向实时云平台的任务调度与资源分配方法及系统 | |
CN104714838A (zh) | 一种任务调度方法及装置 | |
CN102609583B (zh) | 芯片寄存器信息管理方法 | |
CN103065221A (zh) | 基于bpel的多学科协同优化流程建模与调度的方法和系统 | |
CN102567297A (zh) | 数据转换装置和数据转换方法 | |
WO2021159929A1 (zh) | 拓扑图转换系统及其方法 | |
CN106354566A (zh) | 一种命令处理的方法以及服务器 | |
KR100946987B1 (ko) | 분산 병렬 처리 시스템의 다중 맵 태스크 중간 결과 정렬 및 결합 장치, 및 방법 | |
CN107870982A (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN202068449U (zh) | 用于多级数据交换的数据交换平台 | |
CN111221662B (zh) | 任务调度方法、系统及装置 | |
WO2021003843A1 (zh) | 工业园区综合能源系统的分层分布式协调控制时序方法 | |
CN101770461B (zh) | 数据处理方法及处理系统 | |
CN113326131B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN102591714B (zh) | 一种流程调用方法、系统及应用服务器 | |
CN102455932A (zh) | 一种任务实例串行执行方法、装置及系统 | |
CN104035819A (zh) | 科学工作流调度处理方法及装置 | |
CN114095537A (zh) | 一种物联网应用中基于Netty的海量数据接入方法及系统 | |
CN113726828B (zh) | 一种支持微服务的高并发的可信区块链系统及方法 | |
CN101964815B (zh) | 基于反向通知的服务流程执行省时方法 | |
CN105681425B (zh) | 基于分布式存储系统的多节点修复方法及其系统 | |
CN101751298A (zh) | 一种基于能量和时间约束的移动网格任务调度方法 | |
CN109491768A (zh) | 一种基于子事务流的分布式事务动态处理方法和系统 | |
CN103984544A (zh) | 一种避免任务同时执行的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20110202 Assignee: Tianjin Shenzhou General Data Co., Ltd. Assignor: Zhejiang University Contract record no.: 2014330000025 Denomination of invention: Service process execution time saving method based on reverse notification Granted publication date: 20130619 License type: Common License Record date: 20140303 |
|
LICC | Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model |