流程处理执行方法和设备的制作方法

文档序号:6463788阅读:156来源:国知局
专利名称:流程处理执行方法和设备的制作方法
技术领域
本发明涉及一种用于执行流程处理的方法和设备。
背景技术
将一系列流程的操作或者任务称为"工作流程"。类似地, 将顺次执行该工作流程的处理称为"流程处理"。已经利用计算 机和计算机网络使流程处理自动化以允许信息和操作平滑流动
以支持业务活动。
例如,通过将在公司特定部门或者成员之间流传的文档转 换为电子格式并通过计算机网络传播该信息,可以实现提高的
业务效率。随着在计算机和计算机网络以外Web服务技术的新 近出现,流程处理应用领域的范围越来越广。
对于流程处理,有必要预先定义用于指定要将该信息传送 到哪个成员进行处理的流程处理描述文档。在利用计算机或者 计算机网络实现自动化的流程处理中,将流程处理描述文档加 载至能够分析该流程描述文档的流程处理寺丸行i殳备以执行该流 程处理。
在上述流程处理中,BPEL4WS(Business Process Execution Language for Web Services , Web服务的业务处理执行语言)被广 泛用作编写流程处理描述文档的语言。
BPEL4WS是以XML ( extensible Markup Language,可扩展 标i己i吾言)编写的流禾呈处理描述"i吾言。由OASIS (Organization for the Advancement of Structured Information Standards, 结构 化信息标准促进组织)的OASIS Web服务业务处理执行语言TC 来管理BPEL4WS技术规范。BPEL4WS将WSDL (Web Service Description Language, Web服务描述语言)用作为识别Web服务的接口 。 WSDL是用于 编写Web服务接口的语言,并且万维网联盟(W3C)已经公开 了其技术规范。可以在http:〃www.w3.org/TR/wsdl查看该内容。在下面给出的说明中,假定使用计算机、计算机网络以及 Web服务技术使流程处理自动化。在执行使用流程处理描述文档的流程处理时,该流程处理 执行设备不能执行在该流程处理描述文档中没有编写的处理, 并且不能通过将其链接到该流程处理来临时执行不同的流程处 理。因为该原因,在执行在流程处理描述文档中没有编写的处 理、或者通过将不同流程处理链接到该流程处理来执行不同流 程处理时,出现了如下问题即使是临时性的,也不得不重写 流程处理描述文档。此外,在试图根据各种可能情况来编写流 程处理描述文档时,出现了另一个问题由于使用了许多条件 语句,所得到的流程处理描述文档将变得复杂。为了解决上述问题,存在一种用于动态切换流程处理的技 术。例如,在日本特开2004-361993中7>开了该技术。根据该技 术,通过将流程处理分割为用于定义语义处理流程的上位流程 处理和用于定义实现单个处理的方法的下位流程处理来预先定义流程处理。根据需要,上位流程处理从下位流程处理调用需 要流程。由此形成整个流程处理。然而,如在日本特开2004-361993中公开的传统方法需要为 动态切换而特定设计的流程处理描述文档。因为该原因,不是 为动态切换而特定设计的现有流程处理描述文档不能动态切换 流程处理。日本特开2006-302032中公开了另 一个例子。根据该公开技 术,如果在执行流程处理期间发生例外,并且在定义执行中的流程处理的流程处理描述文档中没有编写用于解决该例外的处 理,则执行该流程处理的动态切换。具体地,基于由运行中的 流程处理执行设备根据过去执行其它流程处理所获得的经验来 估计并执行的例外处理。
然而,根据如在日本特开2006-302032中公开的传统方法, 基于由流程处理执行设备根据过去执行流程处理获得的经验, 自动确定切换目的地流程处理。因此,不能按用户的意愿执行 流程处理。

发明内容
本发明的目的在于提高使用流程处理描述文档的简易性。
本发明的另 一 目的在于即使流程处理描述文档不能够改变 处理,仍可以根据用户的需要来改变流程处理描述文档。
根据本发明的一个方面,提供了 一种流程处理执行方法, 其执行、停止并再继续流程处理,所述流程处理执行方法包括 接收用于指定在第 一 流程处理描述文档中的位置的指令的步 骤;停止步骤,用于在执行根据所述第一流程处理描述文档的 流程处理期间,在处理到达所指定位置时,停止根据所述第一 流程处理描述文档的流程处理;以及再继续步骤,用于根据第 二流程处理描述文档,再继续已停止的流程处理。
根据本发明的另 一个方面,提供了 一种流程处理执行设备, 其具有执行部件,所述执行部件用于执行根据流程处理描述文
档的流程处理,所述流程处理执行设备包括接收部件,用于 接收指定在第一流程处理描述文档中的位置的指令,其中,所 述执行部件在执行根据所述第 一 流程处理描述文档的流程处理 期间,在处理到达所指定位置时,停止根据所述第一流程处理 描述文档的流程处理,并根据第二流程处理描述文档来再继续该已停止的流程处理。根据下面参考附图对典型实施例的说明,本发明的其它特 征将显而易见。


图1是示出根据本发明实施例的系统的结构的图。图2是示出使用BPEL4 WS的流程处理描述文档的例子的图。图3是示出根据本发明实施例1的系统的流程处理的图。 图4是示出从流程处理服务用户传送到流程处理执行模块的流程处理调用消息的图。图5是示出分支点(branch point)分析的结果的图。图6是示出切换目的地流程处理信息描述部分的图。图7是示出由流程处理执行模块执行的流程处理的动态切换的处理的流程图。图8是示出流程处理描述文档的例子的图。 图9是示出切换定义文档的例子的图。图IO是示出执行了从图8的流程处理802到图9的流程处理 9 0 5的动态切换后执行的处理的流程图。图11是示出将本发明的实施例应用于旅行预订系统的例子的图。图12是示出根据本发明实施例的系统的结构的图。图13是示出正常条件下进行的根据本发明实施例的系统的处理流程的流程图。图14是示出流程处理调用消息的例子的图。图15是示出由根据本发明实施例的系统进行的包括切换分支点的处理流程的流程图。图16是示出在执行了流程处理的动态切换后进行的处理的 流程图。
图17是示意性示出计算机设备的结构的图。
具体实施例方式
下面,将参考附图详细说明应用了本发明的优选实施例。 首先,将说明本发明的实施例l。
现在将说明使用BPEL4WS的流程处理描述文档。 BPEL4WS具有用于定义流程处理的元素,如变量、过程标识符 (process identifier)、 变量和过程标识符的包装(encapsulation)、 与Web服务的关系、事件发生时的行为、例外发生时的行为以 及正常条件下的4于为等。在BPEL4WS中,处理单位被定义为"活 动(activity)"。存在两种类型的活动处理活动和构造活动。
首先,由定义流程处理的元素来定义处理流程,然后将实 际进行的处理编写为处理活动。将如下定义为处理活动接收 外部消息、返回响应、执行Web服务、It据处理、排队、发出 关于发生例外的信号、发出关于发生异常的信号以及不做任何 处理的空处理。
同时,将顺次处理、并行处理、重复以及由外部输入进行 的判断定义为用于构造处理流程的构造活动。将处理活动编写 为构造活动的子元素。
图2是示出使用BPEL4WS的流程处理描述文档的例子的图。
图2的流程处理描述部分代表整个处理流程描述文档,其中 <process>元素用作才艮元素。作为<process>元素的属性的 targetNamespace属性是用于唯 一 定义流程处理描述文档的名称 空间。将该流程处理描述文档粗略划分为两个描述部分流程
8处理定义描述部分和执行处理描述部分。在流程处理定义描述部分,编写了定义各种流程处理的元素。这里,编写了与Web服务的关联和变量定义。在Web服务 关联描述部分,编写了该流程处理描述文档与由该流程处理执 行的处理之间的外部关系。作为描述方法,使用<partnerLinks〉 元素进行定义。在变量定义描述部分,使用〈variables〉元素来 定义该流程处理中使用的变量。利用构造和处理活动来编写执行处理描述部分。这里,作 为表示顺次处理的构造活动的〈sequence〉元素用于定义该处 理。将用于乂人外部源-接收消息的定义编写为〈receive〉元素。将 数据处理的定义编写为〈assign〉元素。将用于执行Web服务的定 义编写为〈invoke〉元素。将用于发送应答的定义编写为<reply> 元素。将々eceive〉、 <assign>、 <invoke>"及々eply〉元素描写为 〈sequence〉元素的子元素,并且对其进行定义4吏得从顶部开始 顺次扭^于这些元素。图l是示出根据本实施例的系统的结构的图。根据本实施例的系统由均连接至网络的流程处理执行设备 210、由流程处理服务用户使用的如PC等通信终端220以及流程 处理描述文档存储单元230配置成。在下面给出的说明中,将由 流程处理服务使用的如P C等通信终端22 0称为"流程处理服务 用户220"。换句话说,流程处理服务用户220实际上是如PC等 通信终端而不是人。流程处理执行设备210包括流程处理执行模块211、切换分 支点分析模块212以及切换处理执行模块213。流程处理执行设 备210由具有如图17所示的构造的计算机设备配置成。流程处理 执行模块211、切换分支点分析模块212以及切换处理执行模块213是由该计算机执行的程序模块。通过单个计算机设备或者通 过根据需要向多个计算机设备分配功能,可以实现流程处理执 行设备210。在配置有多个计算机设备的情况下,通过LAN(局 域网)等连接计算机设备,使得它们可以互相通信。在图17中,附图标记1901表示控制整个计算机设备1900的 CPU(中央处理单元)。附图标记1902表示存储不需要改变的程 序和参数的ROM (只读存储器)。附图标记1903表示临时存储 从外部设备等提供的程序和数据的RAM (随机存取存储器)。 附图标记1904表示如硬盘或者存储卡等固定安装在计算机设备 19 0 0中的外部存储设备。其它适合的外部存储设备的例子包括 可从计算机设备1900拆卸的软盘(FD)、如CD(致密盘)等光 盘、磁卡或者光卡、IC卡以及存储卡。附图标记1905表示通过 用户的操作输入数据的、如指示装置或者键盘等输入装置1909计算机设备1900中的数据的监视器1910的显示接口 。附图标记 1907表示用于连接到如因特网1911等网线的网络接口 。附图标 记1908表示可通信地连接单元1901至1907的系统总线。流程处理执行模块211、切换分支点分析模块212以及切换 处理执行模块213是由图17中示出的计算机设备1900的CPU 1901运行的程序。流程处理执行模块211、切换分支点分析模块 212以及切换处理执行模块213被存储在外部存储设备1904中, 并将它们加载到RAM 1903中,并在需要时由CPU 1901#1行这 些模块。流程处理执行模块211具有用于将流程处理描述文档加载 到如RAM 1903等存储器内并生成流程处理定义实体的功能、以 及用于顺次执行该流程处理定义实体的流程处理的功能。该流 程处理执行模块211还具有下面的功能以处置该流程处理的动态切换。具体地,流程处理执行模块211具有用于在流程处理的
自动执行期间在流程处理中的任意处理单位处暂停/再继续流 程处理的功能、以及在流程处理的执行期间重构流程处理定义
实体的功能。流程处理执行模块211还具有用于传送/接收如下 消息的功能该消息判断在流程处理的任意处理单位处是否切 换到外部处理。
切换分支点分析模块212具有用于在将流程处理描述文档 加载到如RAM 1903等的存储器内时,分析在开始执行流程处理 时所指定的分支点的位置、以及将分支点信息添加至流程处理 定义实体的功能。切换分支点分析模块212还具有用于将在包括 分支点信息的状态下已经加载到该存储器内的流程处理定义实 体传达至流程处理执行模块211的功能。
切换处理执行模块213具有用于将切换目的地流程处理加 载到如RAM 1903等存储器内、并基于切换目的地文档(后面将 说明)来生成流程处理定义实体的功能。切换作业执行模块213 还具有用于将在切换源流程处理中处置的数据映射到在切换目 的地流程处理中要处置的数据的功能、以及用于将切换目的地 流程处理的流程处理定义实体传达到流程处理执行模块211的 功能。
上述的流程处理服务用户220是使用由流程处理执行模块 211执行的流程处理提供的服务的用户的通信终端。服务用户的 作用是在流程处理到达切换分支点时判断是否切换该流程处 理。服务用户可以实现两个单独的作用4丸行该流程处理的作 用以及判断是否切换该流程处理的作用。
流程处理描述文档存储单元230具有用于存储流程处理描 述文档的功能。流程处理描述文档存储单元2 3 0位于流程处理执 行设备210的外部,并且可以直接或者通过网络连接到流程处理执行设备210 。流程处理描述文档存储单元2 3 0可以位于流程处 理执行设备210内。在这种情况下,流程处理描述文档存储单元 230对应于图17的外部存储设备1904。图3是示出根据本实施例的系统的处理流程的图。参考图3 说明根据本实施例的系统的处理流程。首先,流程处理服务用户220将已经添加了分支点信息的流 程处理调用消息(后面将说明)传送到流程处理^丸行设备210 (301)。然后,设置在流程处理执行设备210中的流程处理执行 模块211接收该消息,并将包括作为在301传送的消息的一部分 的分支点信息的执行请求传送到设置在流程处理执行设备210 中的切换分支点分析模块212 ( 3 02 )。后面将说明流程处理调用 消息的具体例子。切换分支点分析模块212读取出由在3 0 2中接收到的执行请 求所请求的流程处理描述文档。然后,基于在302中接收到的分 支点信息,切换分支点分析模块212将处于包括分支点信息的状 态下的最初不包括分支点信息的流程处理描述文档加载到如 RAM 1903等存储器内,以生成流程处理定义实体(303 )。在将流程处理描述文档加载到存储器内后,切换分支点分 析模块212将在303中加载至存储器内的要执行流程处理传达至 流程处理执行模块211 ( 304 )。此后,流程处理执行模块211继续执行该流程处理(305 ), 直到该处理到达在3 01中指定的切换分支点为止。在该处理到达该切换分支点时,流程处理执行模块211暂停 该流程处理(306 )。然后,流程处理执行模块211将提示流程处 理服务用户2 2 0判断是否执行流程切换处理的消息传送到流程 处理服务用户220 ( 307 )。如果该消息表示要切换该流程处理,则已经接收到该消息的流程处理服务用户22 0将切换该流程处理的指令以及切换定 义文档(后面将说明)传送到切换处理执行模块213 ( 308 )。在 该切换指令内、即在将切换源流程处理链接至切换目的地流程 处理的请求内编写该切换定义文档,或者在该请求内指定该切 换定义文档。后面将说明切换定义文档的具体例子。另一方面, 如果将不切换该处理流程,则该流程处理服务用户22 0仅发送不 切换该流程处理的指令。
已经接收到切换指令和切换定义文档的切换处理执行模块 213根据该切换指令将该流程处理从指定的流程处理描述文档 加载到如RAM 1903等存储器内(309 )。
然后,基于在308中接收到的切换定义文档,切换处理执行 模块213将在切换源流程处理中处置的数据映射到在切换目的 地中处置的数据(310)。这样完成了切换目的地流程处理的准 备,因此,切换处理执行模块213将切换目的地流程处理传达到 流程处理执行模块211 (311)。
通过将在暂停该切换源流程处理之前已经完成的切换源流 程处理的存储树(memory tree)链接到切换目的地流程处理的 存储树,已经在311中接收到切换目的地流程处理的流程处理执 行模块211重构该流程处理(312)。具体地,通过将该切换目的 地流程处理链接到切换源流程处理的切换分支点位置,进行该 流程处理的重构。然后,流程处理执行模块211再继续所暂停的 流程处理(313)。这样完成该流程处理的动态切换。
如果当在301传送流程处理调用消息时已经设置了切换目 的地文档,则可以在301中传送已经添加了切换定义文档和分支 点信息的流程处理调用消息。在这种情况下,在307中,对流程 处理服务用户220进行关于是否切换到切换目的地流程处理以 切换并继续该切换源流程处理的查询。根据来自流程处理服务用户220的指令,执行后续流程处理。在该处理到达切换分支点时,还可以在没有来自流程处理 服务用户220的指令的情况下切换到切换目的地流程处理。在这 种情况下,无需在307中对流程处理服务用户220进行询问。图4是示出在301中从流程处理服务用户220传送到流程处 理执行模块211的流程处理调用消息的图。流程处理调用消息采用了 SOAP ( Simple Object Access Protocol,简单对象访问协议)消息。SOAP消息是以XML编写的 文档,其实体构成信封(envelope)。作为包络的子元素,有标头 (header )和主体(body )。万维网联盟(W3C )已经公开了 SOAP 的技术规范,而且在http:〃www.w3.org/TR/SOAP可以查看其内 容。在流程处理调用消息中,在S O AP消息的标头中编写分支点 信息,并将实际调用流程处理的参数存储在该主体中。以XPath ( XML路径语言)编写标头的分支点信息。XPath 是用于在XML文档中指定给定地址的语言。因此,在以XML编 写的流程处理文档中可以指定任意地址。万维网联盟(W3C) 已经 开 了 XPath的少见范, 并且可以在http:〃www.w3.org/TR/xpath查看其内容。图5是示出分支点分析的结果的图。在该分支点分析方法 中,提取在SOAP消息的标头中编写的分支点信息,并将所提取 的信息应用到流程处理描述文档。以XPath "process/sequence/invoke[position()-2],,编写的分支点信息表示 XML文档的〈process〉元素的〈sequence〉元素中的第二〈invoke〉 元素的位置。因此,分支点的位置为图5所示的位置。图6是示出切换定义文档的例子的图。切换定义文档是具有 专有定义的构造并以XML编写的文档。在该切换定义文档中,才艮元素是〈switch〉元素,并且该<s witch〉元素具有两个子元素。
〈switch〉元素的第一子元素是〈flow〉元素。〈flow〉元素是 用于指定切换目的地流程处理描述文档的元素。在该例子中, 通过直接在〈flow〉元素内编写新的流程处理描述文档来指定切 换目的地流程处理描述文档。然而,代替直接在〈flow〉元素内 编写流程处理描述文档,利用如U RI等可以唯 一 确定流程处理 描述文档的方法,可以指定存储在流程处理描述文档存储单元 230中的流程处理描述文档。在这种情况下,切换处理执行模块 213基于URI等来获取流程处理描述文档。注意,URI是"统一资 源标识符"的缩写。
<switch>元素的第二子元素是<datadelivery>元素。 〈datadelivery〉元素是用于编写关于在切换源和切换目的地中 使用的变量的数据映射的信息的元素。这里编写的 <datadelivery>元素的量对应于要移动的变量的数量。 〈datadelivery〉元素具有用于切换源和切换目的地的流程处理 描述文档的targetNamespace作为属性。包含用于切换源和切换: 目的地的流程处理描述文档的targetNamespace作为属性,4吏得 可以指定在切换源和切换目的地的各流程处理描述文档中定义 变量。〈datadelivery〉元素具有两个子元素,即〈source〉元素和 〈target〉元素。〈source〉元素指定切换源的变量,并且〈target〉 元素指定切换目的地的变量。
通过读取出切换定义文档,切换处理执行模块213识别切换 目的地流程处理描述文档,从而使能在切换源流程处理与切换 目的地流程处理之间进行数据映射。
图7是示出由流程处理执行模块211进行的流程处理的动态 切换的处理的流程图。
首先,在S701,流程处理执行才莫块211执行流程处理中的第一处理。在S702,流程处理执行模块211在每次单个处理结 束时判断是否存在分支点。如果不存在分支点,则该处理进入 S703。在S703,流程处理执行模块211确定该流程处理是否结 束。如果判断为该流程处理结束,则流程处理执行模块211终止 该流程处理。如果判断为该流程处理没有结束,则流程处理执 行模块211返回S701,并执行下一处理。这样,流程处理执行 模块211在判断是否存在分支点时,逐一执行在流程处理描述部 分的执行处理描述部分中编写的处理。如果在S702,流程处理执行模块211判断为存在分支点, 则在S711,暂停该流程处理。在S712,流程处理执行模块211 将询问是否切换流程处理的消息传送到流程处理服务用户220。 然后,在S713,流程处理执行模块211基于对该消息的响应来 判断是否实际切换该流程处理。作为在S713判断的结果,如果 已经发出了切换该流程处理的指令,则在S714,流程处理执行 模块211重构该流程处理,并动态切换该流程处理。此后,在S715,流程处理执行模块211再继续在S711暂停 的流程处理。相反,如果作为在S713进行判断的结果没有发出 切换指令,则在S715,流程处理执行模块211再继续该流程处 理而不执行S714的处理。在S715再继续该流程处理后,该处理 返回S701,并且流程处理执行模块211执行下一处理。图8是示出流程处理描述文档的例子的图。附图标记8 01表 示以BPEL4WS编写的流程处理描述文档。附图标记802示出流 程处理描述文档8 01的处理作为流程图。图9是示出切换定义文档的例子的图。附图标记901表示使 用XML编写的切换定义文档及其专有定义。附图标记902表示 在切换定义文档中指定切换目的地流程处理的部分。直接以 BPEL4WS编写切换目的地流程处理902。附图标记905示出切换目的地流程处理描述文档902的处理作为流程图。附图标记903 和904表示数据映射信息。
图10是示出在执行了从图8的流程处理802到图9的流程处 理9 0 5的动态切换后进行的处理的流程图。
附图标记IOIO表示通过对流程图802设置分支点信息 "process/sequence/invoke[position()二2],,所获得的、添力口 了切换 分支点的流程图。在IOIO,流程处理执行模块211从"开始"开始 顺次执行处理。在该处理到达切换分支点1001时,流程处理执 行模块211将询问是否切换该流程处理的消息传送到流程处理 服务用户220。在接收到该消息时,流程处理服务用户220传送 由901指示的切换定义文档。然后,通过由附图标记1011指示的 切换处理执行模块来实现由905指示的切换目的地流程处理描 述文档。可选择地,流程处理执行纟莫块211可以从存储器逐一读 取出在流程处理描述部分的执行处理描述部分中编写的处理,
并判断是否每个读取出的处理均是由分支点信息指定的处理。 如果该读取出的处理不是由该分支点信息指定的处理,则流程 处理执行模块211执行该读取出的处理。
在实现了切换目的地流程处理描述文档后,使用在切换定 义文档901的〈datadelivery〉元素内编写的凄史据映射信息来进行 切换源与切换目的地之间的数据映射。具体地,使用数据映射 信息项903和904。
在903中编写的〈source〉元素指定1010使用的Variablell, 并且〈target〉元素指定1011要使用的Variable21。因此,将IOIO 中使用的Variablel 1的值复制到1011中要使用的Variable21的 值。类似地,基于关于〈source〉元素和〈target〉元素的信息904, 将1010中使用的Variablel2的值复制到1011中使用的Variable22 的值。然后,基于流程处理1010和1011,流程处理纟丸行设备210 重构流程处理IOOO。因此,在执行流程处理1010期间,动态切 换流程处理1011。
更具体地,现在以Receive、 Assignll 、 Invokell 、 Assignl2、 Assign21、 Invoke21、 Assign22、 Invoke22和Reply的顺序来处 理以Receive、 Assignl 1、 Invokell 、 Assignl2、 Invoke 12和Reply 的顺序处理的流程处理。
下面将说明旅行预订系统的例子。
在该例中,流程处理服务用户基于流程处理描述文档使流 程处理运行在流程处理执行设备上,从而执行该流程处理。
具体地,流程处理服务用户将包括进行旅行预订所需的参 数的流程处理开始消息传送到流程处理执行设备。然后,利用 航班预订服务,流程处理执行设备进行航班预订。接着,利用 旅馆预订服务,流程处理执行设备进行旅馆预订。最后,流程 处理执行设备将航班预订结果和旅馆预订结果传送到流程处理 服务用户。
该例子假定流程处理描述文档不包括调用出租车预订服务 的描述。
下面将参考图ll说明流程处理服务用户220期望在应用了 本实施例的》艮行预订系统的流程处理中进行出租车预订的情 况。
如果流程处理服务用户1210期望进行出租车预订,则在指 示流程处理执行设备1220执行流程处理描述文档1240的同时, 传送指示流程处理描述文档1240的"3.发送结果"的位置的切换 分支点指定信息。在接收到包括该切换分支点指定信息的开始 消息时,流程处理执行设备12 2 0在将流程处理描述文档12 40加 载到存储器内时,生成包括分支点信息的流程处理定义实体。此后,流程处理执行设备1220执行,艮据流程处理描述文档1240 的流程处理。首先,流程处理执行设备1220利用航班预订服务 1231进行4元班预订,接着利用旅馆预订服务1232进行旅馆预订。
因此,流程处理执行设备122 0将询问是否切换该流程处理的;肖 息发送到流程处理i良务用户1210。
流程处理服务用户1210传送进行切换的信息以及切换定义 文档,该切换定义文档包括关于流程处理描述文档1240中处置 的数据与流程处理描述文档1241中要处置的数据之间的数据映 射的信息。
在接收到该切换定义文档时,流程处理执行设备1220生成 用于流程处理描述文档1241的流程处理定义实体。然后,流程 处理执行设备122 0当执行在流程处理描述文档124 0中编写的流 程处理时所使用的数据与执行在流程处理描述文档12 41中编写 的流程处理所需的数据之间进行数据映射。
随后,流程处理执行设备1220将流程处理从在流程处理描 述文档124 0中编写的流程处理动态切换到在流程处理描述文档 1241中编写的流程处理,如1250所示。因此,利用出租车预订 服务1233可以进行出租车预订。最后,流程处理执行设备1220 将包括航班预订信息、旅馆预订信息以及出租车预订信息的旅 行预订结果发送到流程处理服务用户1210。
在上述实施例中,使用作为服务链接描述语言的BPEL4WS 作为用于编写流程处理描述文档的语言,但是也可以采用如 WSCI( Web Service Choreography Interface, Web刀艮务纟扁4非3妾口 ) 等其它服务链接描述语言。在这种情况下,选择使用XML作为 流程处理描述语言的用于We b服务的语言。
图12是示出应用了本实施例的数据输出系统的结构的图。如图12所示,根据本实施例的整个系统配置有流程处理服务用 户1300、多功能单色打印机1310、多功能彩色打印机1320以及 数据服务器1330。多功能单色打印机1310用作流程处理执行设备。
多功能单色打印机1310设置有流程处理执行模块1311、切 换分支点分析模块1312、切换处理执行模块1313、流程处理描 述文档存储单元1314以及单色输出执行单元1315。流程处理执 行模块1311、切换分支点分析模块1312、切换处理执行模块1313 以及单色输出执行元素1315是由多功能单色打印机1310的CPU 执行的程序模块。流程处理执行模块1311、切换分支点分析模 块1312以及切换处理执行模块1313具有与流程处理执行模块 211、切换分支点分析模块212以及切换处理执行模块213的功能 相同的功能。多功能彩色打印机1320设置有彩色输出执行单元 1321,并且数据服务器1330设置有布局数据存储元素1331。
现在,利用图12所示的系统将说明流程处理的动态切换的 例子。在正常情况下,图12所示的系统处于可以执行图13所示 流程处理的状态。图13所示的流程处理示出以BPEL4WS编写的 上述流程处理描述文档的处理作为流程图。在正常情况下,流 程处理执行模块1311根据图13的流程处理从"开始"开始顺次执 行处理。
首先,流程处理执行模块1311接收来自流程处理服务用户 1300的消息作为接收处理(S1401 )。然后,流程处理执行模块 1311将存储在接收到的消息中的数据存储在变量中(S1402 )。
随后,流程处理执行模块1311从数据服务器1330获取布局 数据(S1403),并将从数据服务器1330获取的数据存储在变量中 (S1404 )。
然后,流程处理执行模块1311基于存储在变量中的数据来创建页面布局(S1405 )。接着,流程处理执行模块1311将所生 成的页面输出到多功能单色打印机1310的屏幕(S1406 ),并利 用多功能单色打印才几1310来打印出该页面(S1407 )。最后,流 程处理执行模块1311将应答发送到流程处理服务用户1300作为 应答处理(S1408 )。
通常,在每次进行请求时,通过调用图13所示的流程处理 来实现服务。下面说明了进行用于利用多功能彩色打印机来输 出输出结果的临时请求的情况。
在根据本实施例的系统中,不需要为了临时改变而准备包
括利用多功能彩色打印机进行打印处理的新的流程处理描述文 档。也不需要改变图13所示的流程处理。下面将说明用于在根 据本实施例的系统中临时切换到彩色输出的方法。
在才艮据本实施例的系统中,首先,在流程处理服务用户1300
传送调用图13所示流程处理的流程处理调用消息的同时,传送 切换分支点信息。具体地,在该例中,有必要在利用多功能单 色打印机1310进行输出处理之前切换该流程处理。由于该原因, 传送图14所示的流程处理调用消息。基于在分支点信息描述部 分中编写的"process/sequence/invoke[position()=4],,, 以与上述 相同的方式来进行切换分支点分析,并指定图15所示的切换分 支点1600。注意,在图15中,以与图13的方式相同的方式,#1 行与图13中的附图标记相同的附图标记的处理步骤。
此后,由设置在多功能单色打印机1310中的流程处理执行 模块1311来顺次执行处理,直到该处理到达切换分支点为止。 在该处理到达切换分支点1600时,流程处理执行模块1311暂停 正执行的流程处理,并询问流程处理服务用户1300是否切换该 流程处理。
如果流程处理服务用户1300期望将该流程处理从单色输出临时切换到彩色输出,则流程处理服务用户1300将切换该流程
处理的指令和流程处理切换定义文档传送到切换处理执行模块
1313。在如图6所示配置的流程处理切换定义文档中,切换目的 地流程处理信息描迷部分指定如下流程处理描述文档在该流 程处理描述文档中,编写包括使用多功能彩色打印机进行输出 的步骤和返回响应的步骤的流程处理。然后,基于流程处理切 换定义文档的数据映射信息描述部分,在切换源流程处理文档 与切换目的地流程处理文档之间进行数据映射处理。
此后,切换处理执行模块1313将切换目的地流程处理传达 到流程处理执行模块1311 。通过将在暂停切换源流程处理之前 已经完成的存储树与切换目的地流程处理的存储树链接,已经 接收到该切换目的地流程处理的流程处理执行模块1311重构该 流程处理。然后,流程处理执行模块1311再继续所暂停的流程 处理。这样完成了该流程处理的动态切换。
图16是示出在执行流程处理的动态切换后进行的处理的流 程图。
由于动态切换该流程处理,因此流程处理执行模块1311接 收来自流程处理服务用户1300的消息作为接收处理(S1801 )。 由流程处理执行模块131 l执行的后续步骤,即从S 1802到S1805 的步骤与图13的步骤S1402到S1405相同。
流程处理执行模块1311将生成的页面输出到多功能单色打 印机1310的屏幕上(S1806 ),对该流程处理寺丸行动态切换处理 (S1807 ),并利用多功能彩色打印机1320来打印出所生成的页 面(S1808)。最后,流程处理执行模块1311将应答返回至流程 处理服务用户1300作为应答处理(S1809 )。如上所述,在正常 情况下仅能向多功能单色打印机进行输出的流程处理中,可以 将结果临时输出到多功能彩色打印机。在上述的实施例中,使用作为服务链接描述语言的
BPEL4WS作为用于编写流程处理描述文档的语言,但是也可以 4吏用^口WSCI ( Web Service Choreography Interface, Web月l务纟扁 排接口 )等其它服务链接描述语言。在这种情况下,选择使用 XML作为流程处理描述语言的用于Web服务的语言。
上述实施例使得可以切换到在流程处理描述文档中没有编 写的流程处理。因此,不需要像传统技术那样,在单个流程处 理描述文档内编写所有流程处理。因此,仅需要准备包括更多 相关处理的几个流程处理描述文档,因此,更容易再利用流程 处理的一部分。
在由于流程处理描述文档的编写者和用户不同而不能改变 流程描述的情况下,本发明也有效,例如,在链接并执行了多 个流程处理时。根据本发明,可以在任何时间之后在流程处理 中设置切换分支点,并且可以对任意流程处理指定切换目的地, 因此,用户可以改变该流程处理自身,而无需重写流程处理描 述文档,从而提高了流程处理的利用率。
应该注意,通过对系统或者设备提供记录了用于实现上述 实施例的功能的软件程序代码的记录介质以及加载并执行存储 在该记录介质中的程序代码的该系统的计算机等,也可以实现 本发明的目的。
在这种情况下,从该记录介质加载的程序代码本身实现上 述实施例的功能,而且本发明由程序代码本身和存储了该程序 代码的记录介质配置成。
可以用于提供程序代码的记录介质的例子包括软盘、硬盘、 光盘、磁光盘、CD-ROM、 CD-R、磁带、非易失性存储卡以及 ROM。
如下情况也包括在本发明的范围中运行在计算机上的操作系统(OS)等根据该由计算机加载的程序代码的指令来进行实际处理的部分或者全部,而且通过该处理可以实现上述实施 例的功能。此外,本发明还可以应用于如下情况将/人该记录介质加 载的程序代码写入设置在连接到该计算机的功能扩充单元等上 的存储器内,CPU等根据该程序代码的指令执行实际处理,并 且利用该处理实现上述实施例的功能。通过如因特网等的通信介质将该程序代码提供到计算机的 配置也包括在本发明的范围内。尽管已经参考典型实施例说明了本发明,但是应该理解, 本发明不限于所公开的典型实施例。所附权利要求书的范围符 合最宽的解释,以包含所有这类修改、等同结构和功能。
权利要求
1.一种流程处理执行方法,其执行、停止并再继续流程处理,所述流程处理执行方法包括接收用于指定在第一流程处理描述文档中的位置的指令的步骤;停止步骤,用于在执行根据所述第一流程处理描述文档的流程处理期间,在处理到达所指定位置时,停止根据所述第一流程处理描述文档的流程处理;以及再继续步骤,用于根据第二流程处理描述文档,再继续已停止的流程处理。
2. 根据权利要求l所述的流程处理执行方法,其特征在于, 所述停止步骤包括如下步骤在执行根据所述第 一 流程处理描 述文档的流程处理期间,在处理到达所指定位置时,接收所述 第二流程处理描述文档。
3. 根据权利要求l所述的流程处理执行方法,其特征在于, 所述停止步骤包括如下步骤在执行根据所述第 一 流程处理描 述文档的流程处理期间,在处理到达所指定位置时,选择是继 续根据所述第 一 流程处理描述文档的流程处理,还是切换到根 据所述第二流程处理描述文档的流程处理。
4. 根据权利要求l所述的流程处理执行方法,其特征在于, 所述再继续步骤包括如下步骤在根据所述第 一 流程处理描述 文档的流程处理中处置的数据与在根据所述第二流程处理描述 文档的流程处理中处置的数据之间进行映射。
5. —种流程处理执行设备,其具有执行部件,所述执行部 件用于执行根据流程处理描述文档的流程处理,所述流程处理 执行设备包括接收部件,用于接收指定在第一流程处理描述文档中的位 置的指令,其中,所述执行部件在执行根据所述第一流程处理描述文 档的流程处理期间,在处理到达所指定位置时,停止根据所述 第 一 流程处理描述文档的流程处理,并根据第二流程处理描述 文档来再继续该已停止的流程处理。
6. 根据权利要求5所述的流程处理执行设备,其特征在于, 在执行根据所述第一流程处理描述文档的流程处理期间,在处 理到达所指定位置时,所述接收部件接收所述第二流程处理描 述文档。
7. 根据权利要求5所述的流程处理执行设备,其特征在于, 在执行根据所述第一流程处理描述文档的流程处理期间,在处 理到达所指定位置时,所述接收部件接收是继续基于所述第一 流程处理描述文档的流程处理还是切换到基于所述第二流程处 理描述文档的流程处理的选择。
8. 根据权利要求5所述的流程处理执行设备,其特征在于, 所述执行部件在根据所述第 一 流程处理描述文档的流程处理中 处置的数据与在根据所述第二流程处理描述文档的流程处理中 处置的数据之间进行映射。
全文摘要
本发明涉及一种流程处理执行方法和设备。流程处理执行设备接收用于指定在第一流程处理描述文档中的位置的指令。在执行根据第一流程处理描述文档的流程处理期间,在处理到达所指定位置时,流程处理执行设备停止根据第一流程处理描述文档的流程处理,并根据第二流程处理描述文档来再继续已停止的流程处理。
文档编号G06Q10/00GK101320452SQ20081011080
公开日2008年12月10日 申请日期2008年6月10日 优先权日2007年6月7日
发明者月川刚德 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1