进程编辑设备和方法以及进程管理设备和方法

文档序号:6620590阅读:137来源:国知局
专利名称:进程编辑设备和方法以及进程管理设备和方法
技术领域
本发明涉及一种进程编辑设备和方法、一种进程管理设备和方法、以及存储有使得计算机执行上述方法的程序的记录介质。
背景技术
近年来,工作流系统已经众所周知,当多人通过网络工作时,该工作流系统管理并使得文档或信息自动地从一个人流动到另一个人,以促进他们的工作。例如,这样的工作流系统已经在下面文献中公开IPSJ(InformationProcessing Society of Japan)杂志第39卷第11期第1160-1165页(1998)中的Haruo Hayami所著的“Expanding Workflow Management System1”、IPSJ杂志第39卷第12期第1258-1263页(1998)中的Haruo Hayami,ToshiakiSakaguchi,以及Ryoichi Shibuya所著的“Expanding Workflow ManagementSystem2”、以及IPSJ杂志第40卷第5期第507-513页(1999)中的HaruoHayami,Ryoichi Shibuya,Takao Suzuki,Junichi Ikoma,Yosuke Terashita,Naoki Ueno,Satoshi Kaneko,以及Kiyoshi Hayashi所著的“ExpandingWorkflow Management System3”。
但是,传统的动作流系统存在的问题就是不可能去编辑正在被执行的进程。

发明内容
因此,本发明的一般目的就是提供一种其中能够消除上述缺点的进程编辑设备和方法以及进程管理设备和方法。
本发明的一个更具体的目的就是提供一种能够编辑正在执行中的进程的进程编辑设备和方法以及进程管理设备和方法,以及存储有使得计算机执行这样的方法的程序的记录介质。
本发明的上述目的是由包括编辑部分的进程编辑设备来实现,其中所述编辑部分被配置来编辑正在执行中的进程。
本发明的上述目的也是由包括进程执行控制部分的进程管理设备来实现,该进程执行管理部分被配置来控制进程执行,其中该进程执行控制部分响应于请求而更新正在执行中的进程。
本发明的上述目的也是由存储有使得计算机执行进程编辑方法的程序的计算机可读记录介质来实现,所述进程编辑方法包括用于编辑正在执行中的进程的步骤。
本发明的上述目的也是由存储有使得计算机执行进程管理方法的程序的计算机可读记录介质来实现,所述进程管理方法包括用于响应于请求而更新正在执行中的进程的步骤。
本发明的上述目的也是由包括编辑正在执行中的进程的步骤的进程编辑方法来实现。
本发明的上述目的也是由包括响应于请求而更新正在执行中的进程的步骤的进程管理方法来实现。
根据本发明,编辑正在执行中的进程是可能的。


本发明的其它目的、特征以及优点将会随着下面参照附图的详细说明而变得更加清晰,其中图1为说明根据本发明的第一实施例的服务器的硬件结构的方框图;图2为说明根据本发明的第一实施例的客户端的硬件结构的方框图;图3为用于说明本说明书中所使用的术语的示意图;图4为说明根据本发明的第一实施例的软件结构的示意图;图5为说明根据本发明的第一实施例的挂起活动的时序图;图6为说明根据本发明的第一实施例的预先执行活动的时序图;图7为说明根据本发明的第一实施例的增加活动的时序图;图8为说明根据本发明的第一实施例的增加活动的更具体实例的图;图9为说明根据本发明的第一实施例的活动状态转换模型的图;图10为说明根据本发明的第一实施例的转换条件转换模型的图;图11为说明根据本发明的第一实施例的活动和转换的状态转换的图;图12说明了包括在根据本发明的第一实施例的进程实例数据库中的表;图13为说明根据本发明的第一实施例的重新使用进程实例流的时序图;
图14为说明根据本发明的第一实施例的进程的图;图15为说明根据本发明的第一实施例的挂起活动的一个例子的图;图16为说明根据本发明的第一实施例的在挂起活动的情况下活动以及转换的状态转换的图;图17为说明根据本发明的第一实施例的预先执行活动的一个例子的图;图18为说明根据本发明的第一实施例的增加活动的一个例子的图;图19为说明根据本发明的第一实施例的进程执行编辑工具中的GUI的图;图20为说明根据本发明的第一实施例的进程定义工具中的GUI的图;图21为说明根据本发明的第二实施例的在预先执行活动的情况下活动以及转换的状态转换的图;图22为说明根据本发明的第二实施例的在显示多个任务作为不同流的情况下视窗屏幕的图;图23为说明根据本发明的第二实施例的视窗屏幕的图,其中显示出多个流,该视窗屏幕被应用于固定流;图24为说明根据本发明的第三实施例的软件结构的示意图;图25为说明根据本发明的第三实施例的授权操作一个进程对象的例子的表;图26说明了根据本发明的第三实施例的进程对象ACL数据库的表;图27为说明根据本发明的第三实施例的挂起包括检查操作授权的活动的时序图;图28为说明根据本发明的第三实施例的预先执行包括检查操作授权的活动的时序图;以及图29为说明根据本发明的第三实施例的增加包括检查操作授权的活动的时序图。
具体实施例方式
下面参照附图给出对于本发明的实施例的说明。
首先,参照图1给出对于根据本发明的第一实施例的服务器1的硬件结构的说明。图1是说明服务器1的硬件结构的方框图。
图1中所示服务器1的硬件结构包括输入单元11、显示单元12、驱动单元13、记录介质14、ROM(只读存储器)15、RAM(随机存取存储器)16、CPU(中央处理单元)17、接口单元18、以及HDD(硬盘驱动器)19,它们通过总线互连。
输入单元11包括由服务器1的用户操作的键盘和鼠标。输入单元11被用于向服务器1输入各种操作信号。显示单元12包括由服务器1的用户使用的显示器,并显示各种信息项。接口单元18将服务器1与网络等相连。
例如,下面所述的进程定义管理部分22、进程定义数据库23、工作流引擎25、以及进程实例数据库26(图4),它们都是对应于软件的程序,并由记录介质14例如CD-ROM提供给服务器1,或通过网络被下载给服务器1。记录介质14被设置在驱动单元13中,以便通过驱动单元13将程序从记录介质14安装在HDD 19中。
ROM 15存储数据。RAM 16存储当服务器1启动时从HDD 19中读出的程序。CPU 17根据存储在RAM 16中的程序执行处理。
接着,参照图2给出对于根据本发明的第一实施例的客户端3的硬件结构的说明。图2为说明客户端3的硬件结构的方框图。
如图2中所示的客户端3的硬件结构包括输入单元31、显示单元32、驱动单元33、记录介质34、ROM 35、RAM 36、CPU 37、接口单元38、以及HDD 39,它们通过总线互连。
输入单元31包括由客户端3的用户操作的键盘和鼠标。输入单元31被用于向客户端3输入各种操作信号。显示单元32包括由客户端3的用户使用的显示器,并显示各种信息项。接口单元38将客户端3与网络相连。
例如,下面所述的进程定义工具21、进程执行编辑工具27、以及工作流应用程序24(图4),它们都是对应于软件的程序,并由记录介质34例如CD-ROM提供给客户端3,或通过网络被下载给客户端3。记录介质34被设置在驱动单元33中,以便通过驱动单元33将程序从记录介质34安装在HDD 39中。
ROM 35存储数据。RAM 36存储当客户端3启动时从HDD 39中读出的程序。CPU 37根据存储在RAM 36中的程序执行处理。
接着,参照图3给出对于在本说明书中所使用的术语的说明。图3为说明在本说明书中使用的术语的示意图。
在本说明书中,进程是指用于实现任务的处理流。活动是指构成进程的每个作业。活动具有状态,例如“被激活”、“完成”、以及“等待”。例如,下述由软件构成的工作流系统通过这些状态的转换来表示进程的进度。转换定义了活动的执行顺序。该转换还具有条件(状态),并且工作流系统确定活动的状态转换条件,以根据条件进行连接。
流是由活动和转换表示的处理的流程图。进程定义为进程模板,并定义了执行之前的进程流。进程实例流为执行中(正在被执行)的进程流。
进程实例为具体化的进程定义,并且包括任务的实际内容。上述的进程实例流为进程实例的流定义。通常,进程实例流等于它的基础进程定义(baseprocess definition)。
但是,如下所述,进程实例流以及进程定义被视作不同的实体,并在这个工作流系统中是单独可操作的。因此,在这个工作流系统中,防止进程实例流中的变化被反映在它的基础进程定义中,并且也防止进程定义中的变化被反映在已经被转换成实例的进程中。
接着,参照图4给出对于根据本发明的第一实施例的被安装在服务器1和客户端3中的软件结构的说明。图4为说明根据本发明的第一实施例的软件结构的示意图。
如图4中所示的软件结构包括进程定义工具21、进程定义管理部分22、进程定义数据库23、工作流应用程序24、工作流引擎25、进程实例数据库26、以及进程执行编辑工具27。
进程定义工具21定义进程。进程定义工具21输入进程定义并通过进程定义管理部分22从进程定义数据库23中获得进程定义。而且,进程定义工具21通过工作流引擎25从进程实例数据库26中提取进程实例流。接着,进程定义工具21,例如,编辑所提取的进程实例流,并通过进程定义管理部分22将编辑后的进程实例流输入到进程定义数据库23中,作为进程定义。
进程定义管理部分22管理存储在进程定义数据库23中的进程定义。根据来自进程定义工具21的请求,进程定义管理部分22从进程定义数据库23中获得相应的进程定义,或将相应的进程定义输入到进程定义数据库23中。
进程定义数据库23存储进程定义。
工作流应用程序24执行活动。通过工作流引擎25,工作流应用程序24获得存储在进程实例数据库26中的相应的进程实例的进程信息以及进程状态,并改变进程状态。进一步,工作流应用程序24通过工作流引擎25从进程定义数据库23中获得进程定义,并根据获得的进程定义将进程转换成实例。工作流应用程序24将由进程转换的实例存储在进程实例数据库26中。
工作流引擎25响应于来自工作流应用程序24的请求而从进程定义数据库23中获得相应的进程定义,并根据获得的进程定义将进程转换成实例,以便将由进程转换的实例存储在进程实例数据库26中。进一步,根据来自工作流应用程序24的请求,工作流引擎25从进程实例数据库26中获得相应的进程实例的进程信息和进程状态,并改变存储在进程实例数据库26中的相应的进程实例的进程状态。
进一步,工作流引擎25响应于来自进程执行编辑工具27或进程定义工具21的请求而从进程实例数据库26中提取进程实例流。工作流引擎25还响应于来自进程执行编辑工具27的请求来更新存储在进程实例数据库26中的进程实例流。更新进程实例流包括挂起活动、预先执行活动以及增加活动,这部分将在下面描述。
进程实例数据库26存储进程实例。
进程执行编辑工具27编辑进程实例流。进程执行编辑工具27通过工作流引擎25从进程实例数据库26中获得进程实例流,并编辑所获得的进程实例流。进程执行编辑工具27通过工作流引擎25将编辑后的进程实例流存储在进程实例数据库26中,从而更新进程实例流。
如上所述,进程定义工具21、进程执行编辑工具27、以及工作流应用程序24被安装在客户端3中,并且进程定义管理部分22,进程定义数据库23,工作流引擎25以及进程实例数据库26被安装在服务器1中。进一步,进程定义工具21、进程执行编辑工具27、工作流应用程序24、进程定义管理部分22、进程定义数据库23、工作流引擎25以及进程实例数据库26可以被安装来作为Web服务程序。在这种结构中,根据基于XML(可扩展标记语言)或HTTP(超文本传输协议)的SOAP(简单对象访问协议)在客户端3和服务器1之间进行通信。
下面参照图5给出对于作为编辑进程执行编辑工具27中的进程实例流的例子的挂起活动的说明。图5为说明挂起活动的时序图。
首先,在步骤S1中,进程执行编辑工具27向工作流引擎25发出用来获得关于进程的活动列表的请求。在步骤S2中,接收来自进程执行编辑工具27的请求,工作流引擎25从进程实例数据库26中获得关于进程的活动列表。
在步骤S3中,工作流引擎25将用于报告获得关于进程的活动列表的响应发送给进程执行编辑工具27,该响应包括关于进程的活动列表。
在步骤S4中,接收关于进程的活动列表,进程执行编辑工具27生成包括关于进程的活动列表的屏幕并将该屏幕显示给用户。接着,进程执行编辑工具27向工作流引擎25发出用来给出指令以便挂起由用户等指定的活动的请求。用户是指,例如,工作流参与者。对于下面同样有效。
在步骤S5中,接收来自进程执行编辑工具27的请求,工作流引擎25将存储在进程实例数据库26中的指定活动的状态(状况)改为“挂起”。
在步骤S6中,工作流引擎25执行进程驱动操作,以更新进程的相应活动的状态。
通过执行如图5中所述的处理,关于正在执行中的进程的活动能够被挂起。
接着,参照图6给出对于作为编辑进程执行编辑工具27中的进程实例流的另一个例子的预先执行活动的说明。图6为说明预先执行活动的时序图。
首先,在步骤S10中,进程执行编辑工具27向工作流引擎25发出用来获得关于进程的活动列表的请求。在步骤S11中,接收来自进程执行编辑工具27的请求,工作流引擎25从进程实例数据库26中获得关于进程的活动列表。
在步骤S12中,工作流引擎25将用于报告获得关于进程的活动列表的响应发送给进程执行编辑工具27,该响应包括关于进程的活动列表。
在步骤S13中,接收关于进程的活动列表,进程执行编辑工具27生成包括关于进程的活动列表的屏幕并将该屏幕显示给用户。接着,进程执行编辑工具27向工作流引擎25发出用来给出指令以便激活(启动)由用户等指定的活动的请求。
在步骤S14中,接收来自进程执行编辑工具27的请求,工作流引擎25将存储在进程实例数据库26中的指定活动的状态(状况)改为“被激活”。
另一方面,在步骤S15中,工作流应用程序24向工作流引擎25发出用来获得其状态为“被激活”的活动列表的请求。
在步骤S16中,接收来自工作流应用程序24的请求,工作流引擎25从进程实例数据库26中获得“被激活”的活动列表。
在步骤S17中,工作流引擎25将用于报告获得“被激活”的活动列表的响应发送给工作流应用程序24,该响应包括“被激活”的活动列表。
在步骤S18中,工作流应用程序24生成包括“被激活”活动列表的屏幕,并将该屏幕显示给用户。当用户,例如,从“被激活”的活动列表中选择一个活动并执行该活动时,工作流应用程序24向工作流引擎25发出用来给出指令以便将其执行已经由用户完成的活动的状态改为“完成”的请求。
在步骤S19中,接收来自工作流应用程序24的请求,工作流引擎25将存储在进程实例数据库26中的指定活动的状态改为“完成”。
进一步,在步骤S20中,工作流引擎25执行进程驱动操作,以更新相应进程活动的状态。
通过执行如图6中所示的处理,关于正在执行中的进程的活动可以先于其它活动被执行。
接下来,参照图7给出对于作为编辑进程执行编辑工具27中的进程实例流的另一个例子的增加活动的说明。图7为说明增加活动的时序图。
首先,在步骤S30中,进程执行编辑工具27向工作流引擎25发出用来获得关于进程的活动列表的请求。在步骤S31中,接收来自进程执行编辑工具27的请求,工作流引擎25从进程实例数据库26中获得关于进程的活动列表。
在步骤S32中,工作流引擎25将用于报告获得关于进程的活动列表的响应发送给进程执行编辑工具27,该响应包括关于进程的活动列表。
在步骤S33中,进程执行编辑工具27向工作流引擎25发出用来生成活动实例的请求。
在步骤S34中,接收来自进程执行编辑工具27的请求,工作流引擎25生成活动实例。
在步骤S35中,工作流引擎25将,例如,用于报告生成活动实例的响应发送给进程执行编辑工具27,该响应包括生成的活动实例(活动)。
在步骤S36中,进程执行编辑工具27生成包括关于进程的活动列表和/或生成的活动的屏幕,并将屏幕显示给用户。接着,进程执行编辑工具27向工作流引擎25发出用来给出指令以增加由用户指定的活动的请求,该请求包括由用户指定的将要被增加的活动及其位置。
在步骤S37中,接收来自进程执行编辑工具27的请求,工作流引擎25复制与增加位置的活动相连的转换,并用将要被增加的新活动的标识符来替换增加位置的活动的标识符。在该点上,设置新活动的状态以及已复制转换的条件(状态),适当地从增加位置的活动状态以及原始转换的条件开始改变。
通过执行如图7中所示的处理,活动能够被加入到正在执行中的进程中。
接着,参照图8给出对于增加活动的更具体例子进行的说明。图8为说明增加活动的更具体实例的图。
参看图8,首先,(a)示出了其中“活动”D被加入到“活动”B的位置,作为将要被并行处理或执行的活动的情况。为了将“活动”D加入到“活动”B的位置,作为没有进行任何处理的虚拟活动的“活动”E被加入到“活动”A和“活动”B之间,以便于使分离成“活动”B和“活动”D(的线程),并且虚拟活动F被加入到“活动”B和“活动”C之间,以便于连接“活动”B和“活动”D(的线程)。
在如图8的(a)中所示的增加活动的情况中,例如,关于新近被增加的活动的信息被加入到包括在进程实例数据库26中的活动表(图12)中,并且由增加“活动”D引起的新转换被加入到包括在进程实例数据库26中的转换表(图12)中。例如,在转换表中,其开始点和结束点分别为“活动”A和“活动”B的转换将其结束点改为“活动”E,并且其开始点和结束点分别为“活动”B和“活动”C的转换将其结束点改为“活动”F。
接着,在图8中,(b)示出了其中将要被并行处理的“活动”E被加入到“活动”C的位置的情况。包括(b)的已增加“活动”E的该图表等同于图(b’)或图表(b”),因此在下面的图中被示作(b’)或(b”)。
在图8中,(c)也示出了其中将要被并行处理的“活动”E被加入到“活动”C的位置的情况。但是,与(b)相比,(c)不仅包括“与-分离”和“与-连接”,而且还包括如图(e)所示的“异或-分离”和“异或-连接”。
在图8的(a)至(c)中,示出了增加新活动到现存活动的位置上作为将要被并行处理的活动的情况。作为选择,可以增加活动,以便于如(d)所示被串行地处理,在该(d)中,新“活动”D被加入到“活动”A和“活动”B之间。
下面参照图9给出对于活动状态转换模型的说明。图9为说明活动状态转换模型的图。
在图9中,“未被激活”(NOT ACTIVATED)表示活动保持没有被执行,“等待”(WAITING)表示活动等待被处理,“激活”(ACTIVATED)表示活动被激活(正在被处理),“完成”(COMPLETED)表示活动已经完成,并且“挂起”(SUSPENDED)表示活动被挂起。
参看图9,当转换条件满足用于激活(启动)活动的条件时,活动的状态作出从“未被激活”到“等待”的转换。这里,满足激活活动的条件意味着如果“与连接”先于活动,则对于活动的所有转换条件(状态)会变成ON,并且如果“异或连接”先于活动,则对于活动的至少一个转换的条件会变成ON。
当通过工作流引擎25从工作流应用程序24给出用来激活(启动)活动的指令时,活动的状态从“等待”转换到“被激活”。当通过工作流引擎25从工作流应用程序24中给出用来完成活动的指令时,活动的状态从“被激活”转换到“完成”。
当通过工作流引擎25从进程执行编辑工具27或工作流应用程序24给出用来将活动的状态改变为“挂起”的指令时,活动的状态从“未被激活”、“等待”、或“被激活”转换为“挂起”。
活动的状态被包括在如下面的图12中所示的进程实例数据库26的活动表中。
下面,参照图10给出对于转换条件(状态)转换模型的说明。图10为说明转换条件转换模型的图。
参看图10,当位于开始点的活动(开始点活动)的状态改变为“完成”或“挂起”,并且满足转换的触发条件时,转换的条件(状态)从OFF转换到ON。更详细地,如果“与-分离”在活动之后,则当活动的状态改变为“完成”或“挂起”时,来自活动的所有转换条件都转换为ON。另一方面,如果“异或-分离”在活动之后,则检查来自活动的转换的触发条件,并且当满足转换的触发条件时,转换的条件转换为ON。
进一步,当位于结束点的活动状态从“等待”变为“被激活”时,转换的条件从ON转换到OFF。
当位于结束点的活动状态变为“挂起”时,转换的条件不进行转换。
转换条件被包括在如下面的图12中所示的进程实例数据库26的转换表中。
接着,参照图11给出对于活动和转换的状态转换的说明。图11为说明活动和转换的状态转换的图。
进一步,参照图12给出对于包括在进程实例数据库26中的表的说明。图12说明了包括在进程实例数据库26中的活动和转换表。
参看图12,该活动表包括Id、进程ID、名称、分离类型、连接类型、以及状态,来作为各项。
在Id中,存储有用于标识活动的标识符。在进程ID中,存储有用于标识进程的标识符。在名称中,存储有活动名称。在分离类型中,存储“与”或者“异或”作为分离类型。在连接类型中,存储“与”或者“异或”作为连接类型。在状态中,存储有“未被激活”、“等待”、“被激活”、“完成”、或“挂起”作为活动状态。
参看图12,该转换表包括Id、进程ID、来自活动ID、至活动ID、触发条件、以及条件,来作为各项。
在Id中,存储有用于标识活动的标识符。在进程ID中,存储有用于标识进程的标识符。在来自活动ID中,存储有用于标识开始点活动的标识符。在至活动ID中,存储有用于标识结束点活动的标识符。在触发条件中,存储有转换的触发条件。在条件中,存储有ON或OFF作为转换条件(状态)。
接着,参照图13给出对于重新使用进程定义工具21中的进程实例流的说明。图13为说明重新使用进程实例流的时序图。
首先,在图13的步骤S40中,进程定义工具21向工作流引擎25发出用于获得进程实例流的请求。
在步骤S41中,接收来自进程定义工具21的请求,工作流引擎25从进程实例数据库26中获得进程实例流。
在步骤S42中,工作流引擎25向进程定义工具21发出用于报告获得进程实例流的响应,该响应包括所获得的进程实例流。
在步骤S43中,接收进程实例流,进程定义工具21生成包括进程实例流的屏幕,并将该屏幕显示给用户。接着,进程定义工具21根据来自用户的请求编辑进程实例流。
在步骤S44中,根据来自用户等的请求,进程定义工具21生成用来进入作为进程定义的已编辑进程实例流的进入请求,并将该进入请求发送给进程定义管理部分22,该进入请求包括已编辑的进程实例流。
在步骤S45中,接收来自进程定义工具21的进入请求,进程定义管理部分22将包括在进入请求中的进程实例流输入到进程定义数据库23中,作为进程定义。
通过执行如图13所示的处理,进程实例流可以被重新用作进程定义。
接下来,参照图14给出对进程的说明。图14为说明作为进程的一个例子的开发进程的图。该开发进程包括需求分析、说明分析、设计、编码与测试、以及输出,作为子流。进一步,存在有活动,例如会议,诸如分析会议、复查会议、以及验证会议、文档(需求说明,软件说明,结构说明,详细说明,以及手册)准备、编码、单元测试、集成测试、以及打包。
在图14中,黑圆圈表示“与-连接”或“与-分离”,并且其它分支表示“异或-连接”或者“异或-分离”。
接着,参照图15给出对于挂起活动的一个例子的说明。图15为说明挂起活动的一个例子的图。
参看图15,在当前位置,活动“单元测试”已经完成,并且活动“代码复查”正在等待被执行(被处理)。
例如,如果用户为了尽快执行活动“集成测试”而决定延迟活动“代码复查”,并通过执行预定的操作而将活动“代码复查”的状态改为“挂起”,活动“代码复查”与活动“单元测试结果报告会议”之间的转换变成ON。
接着,活动“单元测试结果报告会议”的激活条件被满足,使得活动“单元测试结果报告会议”的状态改为“等待”,并且活动“单元测试结果报告会议”变得可执行。
该被挂起的活动可以在此后的任何时刻都变成可执行的。进一步,通过将活动“代码复查”的完成包括在如图15中所示的进程的结束条件中,可以防止活动“代码复查”在没有正被处理的情况下就结束。
接着,参照图16给出对于在挂起活动的情况下的活动和转移的状态转移的说明。图16为说明在挂起活动的情况下的活动以及转换的状态转换的图。
图16示出了“活动”D在步骤8中被挂起的情况。如图16所示,挂起一个活动(例如,“活动”D)没有使得向着已挂起活动的转换(例如,“转换”c)的条件(状态)发生变化。
接着,参照图17给出对于预先执行活动的一个例子的说明。图17为说明预先执行活动的一个例子的图。
参看图17,在当前位置处,活动“单元测试”已经被完成,并且活动“代码复查”正在等待被执行(被处理)。
例如,在该点上,用户为了尽快执行活动“集成测试”而选择活动“集成测试”,并通过执行预定的操作而将活动“集成测试”的状态改为“被激活”。
当在完成活动“集成测试”之后完成活动“代码复查”和活动“单元测试结果报告会议”时,由于活动“集成测试”的执行已经完成,因此可以防止活动“集成测试”的状态变成“等待”。
当完成执行活动“集成测试”时,活动“代码修复核准会议”的状态变成“等待”,而与其它活动是否完成无关。
通过将完成活动“代码复查”和活动“单元测试结果报告会议”包括在如图17所示的进程的结束条件中,可以防止活动“代码复查”以及活动“单元测试结果报告会议”在没有被处理的情况下就结束。
接着,参照图18给出对于增加活动的一个例子的说明。图18为说明增加活动的一个例子的图。
参看图18,在当前位置,活动“单元测试结果报告会议”已经完成,并且活动“集成测试”正在等待被执行(被处理)。
例如,在该点上,如果用户指定活动“集成测试”并增加“载入测试”作为将要被并行处理的活动,则工作流引擎25复制活动“集成测试”的转换,并将其结束点从活动“集成测试”改为活动“载入测试”。
在该点上,从活动“单元测试结果报告会议”至活动“载入测试”的转换条件(状态)变成ON。
接着,参照图19给出对于安装在客户端3中的进程执行编辑工具27中的GUI的说明。图19为说明在进程执行编辑工具27中的GUI的图。
例如,如图19所示,用户将鼠标光标定位在正在执行中的进程流的活动之中的“软件说明准备”,并点击右键。
接着,打开如图19所示的菜单,并且当用户选择“增加活动”时,右上角的窗格改为应用程序列表。
当用户从应用程序列表中选择一个应用程序时,右下角窗格的活动设置项的内容会发生变化。在图19的情况下,用户选择“文档准备”作为应用程序。
用户在右下角窗格里设置参数,并按下OK按钮来增加活动。接着,增加的活动以及关于该活动的转换被反映在“流查看”屏幕上的进程流中并被显示。
接下来,参照图20给出对于安装在客户端3的进程定义工具21中的GUI的说明。图20为说明进程定义工具21的GUI的图。
例如,当用户从菜单栏的“输入”菜单中选择“进程示例流”时,右侧窗格改为进程实例列表。
当用户从进程实例列表中选择一个进程示例流,并按下OK按钮时,进程实例流被显示在左侧的窗格中,并且进程实例列表被关闭。
当用户在编辑进程实例流之后从菜单栏中选择“增加”时,编辑后的进程实例流或进程实例被输入作为进程定义。
接下来,给出对于根据本发明的第二实施例的预先执行活动和挂起活动的说明。图21为说明根据本发明第二实施例的在预先执行活动的情况下的活动以及转换的状态转换的图。
图21示出了在步骤4中预先取得并开始执行“活动”D,以及在步骤5中完成执行的情况。如图21所示,预先执行活动(例如,“活动”D)并没有改变向着活动的转换(例如,“转换”c)的条件(状态)。没有预先执行活动(活动D)的完成会改变向着下一个活动(例如,“活动”E)的转换(例如,“转换”e)的条件。
参看图21,当在一个步骤中向着一个活动(例如,“活动”D)的转换(例如,“转换”c)的条件变成ON时,则在下一步骤中,源于活动(“活动”D)的转换(例如,“转换”e)的条件变成ON,并且向着活动(“活动”D)的转换(例如,“转换”c)的条件变成OFF。
作为一个实际问题,会频繁出现实现实际工作的方式不同于已定义的流的情况。因此,通过如上所述允许(很容易地使能)预先执行和挂起活动,执行中的进程流可以不同于它的进程定义,使得可以根据实际工作情况来处理工作流。也可以将执行各个任务的工作流视为不同的进程定义。但是,在该工作流中,从负责工作管理的位置的角度来看,各个任务的情况应该被作为不同的流来管理。因此,当有许多工作时,就很难理解所有的工作情况。
另一方面,根据允许(很容易地使能)预先执行和挂起活动的本发明的工作流,可以用相同的流来管理所有任务的情况。因此,工作管理员能够查看实际上在不同于固定流(相同流)的流中进行的任务。这就使得工作管理员能够从全面的角度理解各个任务的情况。也允许(很容易地使能)增加活动,而不会在原始流(进程定义)中发生显著变化。因此,工作情况管理中的优点并没有被削弱。
为了通过固定流来判断所有实际上在不同流中进行的任务,最好不要删除活动。进一步,在从一个流中删除任务的情况下,如果流的分支很复杂,则有时无法保持该分支条件,使得很难保持流的一致性。因此,根据本发明,通过导入挂起活动的概念(和系统)来保持流一致性,使得能够通过固定流来判断所有的任务。
下面参照图22给出对于显示多个任务作为不同流的情况的说明。图22为说明在显示多个任务作为不同流的情况下视窗屏幕的图。术语“任务”是指单一进程实例,术语“任务列表”是指任务的列表。该“任务”可以被视作工作。
在如图22所示的视窗屏幕上,用户很难正确地理解每个进程的情况(或每个任务的情况),除非用户紧密地查看每个任务的整个流。尤其是,在复杂流的情况下,理解一个进程情况会变得更困难。
例如,在如图22所示的视窗屏幕上,用黑体和斜体来表示正在执行中的活动,并用下划线表示已完成的活动。进一步,在该工作流中,基本上,进行如流所定义的处理,使得每个活动的状态在正在执行中的活动之前都是“完成”。
接下来,参照图23给出对于显示多任务并将该任务应用于固定流的情况的说明。图23为说明根据被用于固定流的本发明的第二实施例的视窗屏幕的图,其中显示出多个流。
在图23所示的视窗屏幕中,基本上,用户只能查看正在执行中的活动。通过例外地查看事先被挂起或执行的活动,用户能够很容易地正确理解每个进程情况。
由工作流应用程序24生成如图23所示的视窗屏幕并将其提交给用户。工作流应用程序24从工作流引擎25中获得任务列表,并生成如图23中所示的视窗屏幕。
下面说明的情况为根据本发明的第三实施例,在工作流系统中定义和管理对于关于正在执行中的进程的对象(进程对象)的每个操作的授权(操作授权、存取权、或存储控制),并检查每个操作请求的授权。
首先,参照图24给出对于根据本发明的第三实施例的安装在服务器1和客户端3中的软件结构的说明。图24为说明根据本发明的第三实施例的软件结构的示意图。
如图24所示的软件结构包括进程定义工具21、进程定义管理部分22、进程定义数据库23、工作流应用程序24、工作流引擎25、进程实例数据库26、进程执行编辑工具27、以及进程对象ACL(存取控制列表)数据库28。进程对象ACL数据库28是对应于软件的程序,并通过记录介质14例如CD-ROM被提供给服务器1或通过网络下载给服务器1。
工作流引擎25执行如第一实施例中所述的处理。另外,例如,响应于来自进程执行编辑工具27的用来更新进程实例流的请求,工作流引擎25将存取权(存取权)提交给在进程对象ACL数据库28中存储和/或管理的相应进程对象等,并确定(或检查)请求用户(或组)是否具有有效的存取权。
进程对象ACL数据库28存储和/或管理对于进程对象的存取权。
图25为说明授权操作一个进程对象(进程对象操作授权)的例子的表。如图25所示,例如,存在进程,活动,以及应用程序作为进程对象。这里,应用程序就是,例如工作流应用程序。
存在参考,增加活动,挂起活动,以及执行预先活动作为操作进程的授权(进程操作授权)。存在执行,参考,增加活动(并行),增加活动(在前),增加活动(在后),挂起活动,以及预先执行活动作为操作活动的授权(活动操作授权)。进一步,存在参考和执行作为操作应用程序的授权(应用程序操作授权)。
进程操作授权参考是指授权参考关于正在进程的相应进程(正在执行中的进程)的信息。进程操作授权增加活动授权向相应正在执行中的进程加入活动。进程操作授权挂起活动授权挂起相应正在执行进程的活动。进程操作授权预先执行活动授权预先执行应正在执行进程的活动。
活动操作授权执行授权仅当活动状态为被激活时执行相应的活动。活动操作授权参考是用来参考关于相应活动的信息的授权。活动操作授权增加活动(并行)授权增加一个将要与相应的活动并行执行的活动,并授权改变与相应增加的活动相连的转换的连接和分离条件以及触发条件。
活动操作授权增加活动(在前)授权增加一个将要被执行的活动使得增加的活动先于相应的活动,并授权改变与增加的活动相连的转换的触发条件。活动操作授权增加活动(在后)授权增加一个将要被执行的活动使得增加的活动跟在相应的活动之后,并授权改变与增加的活动相连的转换的触发条件。
活动操作授权挂起活动授权将相应活动的状态改为被挂起。活动操作授权预先执行活动授权将相应活动的状态改为被激活。
应用程序操作授权参考授权当增加一个活动时指定一个将要被执行的应用程序。应用程序操作授权执行授权使用相应的应用程序。没有被授权执行(使用)应用程序的用户(或组)不能被指定作为使用应用程序的活动的执行者。
图26说明了进程对象ACL数据库28的表。
参看图26,进程对象ACL数据库28的表包括SID,对象ID,用户/组ID,以及存取控制作为项。
SID中存储有唯一的ID。对象ID中存储有进程对象的ID。用户/组ID中存储有标识用户的用户ID或标识组的组ID。图25中所示的授权符号(即标识操作授权,存取权或存取控制的信息)被存储在存取控制中。
下面参照图27给出对于根据第三实施例挂起包括检查操作授权的活动的说明。图27为说明根据本发明第三实施例的挂起包括检查操作授权的活动的时序图。
参看图27,首先,在步骤S50中,进程执行编辑工具27向工作流引擎25发出一个请求,以获得一列关于进程的活动。
在步骤S51中,接收来自进程执行编辑工具27的请求,工作流引擎25从进程实例数据库26中获得关于进程的活动列表。
在步骤S52中,工作流引擎25向进程执行编辑工具27发出报告获得关于进程的活动列表的响应,该响应包括关于进程的活动列表。
在步骤S53中,接收关于进程的活动列表,进程执行编辑工具27生成包括关于进程的活动列表的屏幕并将其显示给用户。接着,进程执行编辑工具27向工作流引擎25发出一个请求,以给出一个指令来挂起由用户等指定的活动。
在步骤S54中,接收来自进程执行编辑工具27的请求,工作流引擎25查阅,例如存储在如图26中所示的进程对象ACL数据库28中的表,并确定(检查)用户或用户所属的组是否具有挂起被指定活动的操作权。
在步骤S55中,如果工作引擎25确定用户或用户所属的组具有挂起被指定活动的操作权,则工作流引擎25将存储在进程实例数据库26中的被指定活动的状态改为被挂起。
在步骤S56中,工作流引擎25进行进程驱动操作,以更新进程的相应活动的状态。
通过执行如图27所示的处理,可以只允许被授权的用户来挂起关于正在执行中的进程的活动。
接着,参照图28给出对于根据第三实施例预先执行包括检查操作授权的活动的说明。图28为说明根据本发明第三实施例的预先执行包括检查操作授权的活动的时序图。
参看图28,首先,在步骤S60中,进程执行编辑工具27向工作流引擎25发出一个请求,以获得一列关于进程的活动。
在步骤S61中,接收来自进程执行编辑工具27的请求,工作流引擎25从进程实例数据库26中获得关于进程的活动列表。
在步骤S62中,工作流引擎25将报告获得关于进程的活动列表的响应发送给进程执行编辑工具27,该响应包括关于进程的活动列表。
在步骤S63中,接收关于进程的活动列表,进程执行编辑工具27生成包括关于进程的活动列表的屏幕并将该屏幕显示给用户。接着,进程执行编辑工具27向工作流引擎25发出一个请求,以给出一个指令来激活(开始)由用户等指定的活动。
在步骤S64中,接收来自进程执行编辑工具27的请求,工作流引擎25查阅,例如存储在如图26中所示的进程对象ACL数据库28中的表,并确定(检查)用户或用户所属的组是否具有预先执行被指定活动的操作权。
在步骤S65中,如果工作引擎25确定用户或用户所属的组具有预先执行被指定活动的操作权,则工作流引擎25将存储在进程实例数据库26中的被指定活动的状态改为被激活。
另一方面,在步骤S66中,工作流应用程序24向工作流引擎25发出一个请求,以获得一列其状态为被激活的活动。
在步骤S67中,接收来自工作流应用程序24的请求,工作流引擎25从进程实例数据库26中获得被激活的活动列表。
在步骤S68中,工作流引擎25将报告获得被激活的活动列表的响应发送给工作流应用程序24,该响应包括被激活的活动列表。
在步骤S69中,工作流应用程序24生成包括被激活活动列表的屏幕,并将该屏幕显示给用户。当用户,例如,从被激活的活动列表中选择一个活动并执行该活动时,工作流应用程序24向工作流引擎25发出一个请求,以给出一个指令来将其执行已经由用户完成的活动的状态改为完成。
在步骤S70中,接收来自工作流应用程序24的请求,工作流引擎25将存储在进程实例数据库26中被指定活动的状态改为完成。
进一步,在步骤S71中,工作流引擎25执行进程驱动操作,以更新相应进程活动的状态。
通过执行如图28中所示的处理,可以只允许被授权的用户来预先执行关于正在执行进程的活动。
接着,参照图29给出根据本发明第三实施例增加包括检查操作授权的活动的说明。图29为说明根据本发明第三实施例增加包括检查操作授权的活动的时序图。
参看图29,首先,在步骤S80中,进程执行编辑工具27向工作流引擎25发出一个请求,以获得一列关于进程的活动。
在步骤S81中,接收来自进程执行编辑工具27的请求,工作流引擎25从进程实例数据库26中获得关于进程的活动列表。
在步骤S82中,工作流引擎25将报告获得关于进程的活动列表的响应发送给进程执行编辑工具27,该响应包括关于进程的活动列表。
在步骤S83中,进程执行编辑工具27向工作流引擎25发出一个请求,以生成一个活动实例。
在步骤S84中,接收来自进程执行编辑工具27的请求,工作流引擎25生成活动实例。
在步骤S85中,工作流引擎25将,例如,报告生成活动实例的响应发送给进程执行编辑工具27,该响应包括生成的活动实例(活动)。
在步骤S86中,进程执行编辑工具27生成包括关于进程的活动列表和/或生成的活动的屏幕,并将屏幕显示给用户。接着,进程执行编辑工具27向工作流引擎25发出一个请求,以给出一个指令来增加由用户指定的活动,该请求包括将要被增加的活动以及由用户指定的位置。进程执行编辑工具27将要被加入到流中活动实例位置的活动的位置通知给工作引擎25。
在步骤S87中,接收来自进程执行编辑工具27的请求,工作流引擎25查阅,例如存储在如图26中所示的进程对象ACL数据库28中的表,并确定(检查)用户或用户所属的组是否具有将被指定的活动加入到指定位置的操作权。
在步骤S88中,如果工作流引擎25确定用户或用户所属的组具有将被指定的活动加入到指定位置的操作权,则工作流引擎25复制与增加位置的活动相连的转换,并用将要被增加的新活动的标识符来替换增加位置的活动的标识符。在该点上,设置新活动的状态以及被复制转换的条件(状态),适当的从增加位置活动的状态以及原始转换的条件开始改变。
通过执行如图29所示的处理,可以只允许授权用户向正在被执行的进程中加入活动。
如上所述,根据本发明,可以编辑(和/或更新)正在执行中的进程。
本发明并不限于具体公开的实施例,并且在不脱离本发明的范围内可以进行变化和修改。
权利要求
1.一种进程编辑设备(3),其特征在于编辑部分(27),被配置来编辑正在执行中的进程。
2.根据权利要求1所述的进程编辑设备,其特征在于正在执行中的进程包括多个作业;以及编辑正在执行中的进程为下列作业之一向正在执行中的进程加入作业、预先执行正在执行中的进程的作业中的一个、以及挂起正在执行中的进程的作业中的一个。
3.根据权利要求1所述的进程编辑设备,其特征在于所述编辑部分从用于执行进程管理的进程管理设备中获得正在执行中的进程。
4.根据权利要求1所述的进程编辑设备,其特征在于正在执行中的进程包括构成进程的多个作业,该多个作业中的每个作业都包括表示其进展的状态信息。
5.根据权利要求1所述的进程编辑设备,其特征在于所述编辑部分向用于执行进程管理的进程管理设备发出用来更新正在执行中的进程的请求。
6.根据权利要求1所述的进程编辑设备,其特征在于所述编辑部分向用于执行进程管理的进程管理设备发出用来进入作为进程模板的已编辑的正在执行中的进程的请求。
7.根据权利要求6所述的进程编辑设备,其特征还在于进入屏幕显示部分,被配置来显示关于进入已编辑进程的屏幕。
8.根据权利要求1所述的进程编辑设备,其特征还在于编辑屏幕显示部分,被配置来显示关于编辑正在执行中的进程的屏幕。
9.根据权利要求1所述的进程编辑设备,其特征在于作为进程模板的进程定义以及正在执行中的进程是不同实体,并且是单独可操作的。
10.一种进程管理设备(1),其特征在于进程执行控制部分(25),被配置来控制进程执行,其中所述进程执行控制部分(25)响应于请求而更新正在执行中的进程。
11.根据权利要求10所述的进程管理设备,其特征在于正在执行中的进程包括多个作业;以及更新正在执行中的进程为下列作业之一向正在执行中的进程加入作业、预先执行正在执行中的进程的作业中的一个、以及挂起正在执行中的进程的作业中的一个。
12.根据权利要求10所述的进程管理设备,其特征在于在响应于请求而更新正在执行中的进程时,所述进程执行控制部分根据授权数据来确定所述请求的请求人是否有权更新正在执行中的进程。
13.根据权利要求12所述的进程管理设备,其特征在于正在执行中的进程包括多个作业;以及所述授权为授权执行下列作业之一向正在执行中的进程加入作业、预先执行正在执行中的进程的作业中的一个、以及挂起正在执行中的进程的作业中的一个。
14.根据权利要求12所述的进程管理设备,其特征还在于授权数据存储部分,被配置来存储授权数据。
15.根据权利要求10所述的进程管理设备,其特征在于所述进程执行控制部分响应于请求而从用于存储正在执行中的进程的正在执行进程存储部分中提取出正在执行中的进程。
16.根据权利要求15所述的进程管理设备,其特征在于所述进程执行控制部分将从正在执行进程存储部分中提取出的正在执行中的进程发送给用于编辑正在执行中的进程的进程编辑设备。
17.根据权利要求16所述的进程管理设备,其特征还在于进程模板管理部分,被配置来管理进程模板,其中所述进程模板管理部分响应于请求而进入作为进程模板的已编辑的正在执行中的进程。
18.根据权利要求15所述的进程管理设备,其特征在于所述正在执行进程存储部分。
19.根据权利要求10所述的进程管理设备,其特征在于正在执行中的进程包括多个作业,该多个作业中的每个作业都包括表示其进展的状态信息。
20.根据权利要求10所述的进程管理设备,其特征在于作为进程模板的进程定义以及正在执行中的进程是不同实体,并且是可单独操作的。
21.一种存储有程序的计算机可读记录介质,所述程序使得计算机执行进程编辑方法,该进程编辑方法其特征在于包括步骤(a)编辑正在执行中的进程。
22.根据权利要求21所述的计算机可读记录介质,其特征在于正在执行中的进程包括多个作业;以及编辑正在执行中的进程为下列作业之一向正在执行中的进程加入作业、预先执行正在执行中的进程的作业中的一个、以及挂起正在执行中的进程的作业中的一个。
23.根据权利要求21所述的计算机可读记录介质,其特征在于所述进程编辑方法还包括步骤(b)从用于执行进程管理的进程管理设备中获得正在执行中的进程。
24.根据权利要求21所述的计算机可读记录介质,其特征在于正在执行中的进程包括构成进程的多个作业,该多个作业中的每个作业都包括表示其进展的状态信息。
25.根据权利要求21所述的计算机可读记录介质,其特征在于所述进程编辑方法还包括步骤(b)向进行进程管理的进程管理设备发出用来更新正在执行中的进程的请求。
26.根据权利要求21所述的计算机可读记录介质,其特征在于所述进程编辑方法还包括步骤(b)向用于执行进程管理的进程管理设备发出用来进入作为进程模板的已编辑的正在执行中的进程的请求。
27.根据权利要求26所述的计算机可读记录介质,其特征在于所述进程编辑方法还包括步骤(c)显示关于进入已编辑进程的屏幕。
28.根据权利要求21所述的计算机可读记录介质,其特征在于所述进程编辑方法还包括步骤(b)显示关于编辑正在执行中的进程的屏幕。
29.一种存储有程序的计算机可读记录介质,所述程序使得计算机执行进程管理方法,该进程管理方法其特征在于包括步骤(a)响应于请求而更新正在执行中的进程。
30.根据权利要求29所述的计算机可读记录介质,其特征在于正在执行中的进程包括多个作业;以及更新正在执行中的进程为下列作业之一向正在执行中的进程加入作业、预先执行正在执行中的进程的作业中的一个、以及挂起正在执行中的进程的作业中的一个。
31.根据权利要求29所述的计算机可读记录介质,其特征在于所述进程管理方法还包括步骤(b)在响应于请求而更新正在执行中的进程时,根据授权数据来确定所述请求的请求人是否有权更新正在执行中的进程。
32.根据权利要求31所述的计算机可读记录介质,其特征在于正在执行中的进程包括多个作业;以及所述授权为授权执行下列作业之一向正在执行中的进程加入作业、预先执行正在执行中的进程的作业中的一个、以及挂起正在执行中的进程的作业中的一个。
33.根据权利要求29所述的计算机可读记录介质,其特征在于所述进程管理方法还包括步骤(b)响应于请求而从用于存储正在执行中的进程的正在执行进程存储部分中提取正在执行中的进程。
34.根据权利要求33所述的计算机可读记录介质,其特征在于所述进程管理方法还包括步骤(c)将从正在执行进程存储部分中提取出的正在执行中的进程发送给用于编辑正在执行中的进程的进程编辑设备。
35.根据权利要求34所述的计算机可读记录介质,其特征在于所述进程管理方法还包括步骤(d)响应于请求而进入作为进程模板的已编辑的正在执行中的进程。
36.根据权利要求29所述的计算机可读记录介质,其特征在于正在执行中的进程包括多个作业,该多个作业中的每个作业都包括表示其进展的状态信息。
37.一种进程编辑方法,其特征在于步骤编辑正在执行中的进程。
38.一种进程管理方法,其特征在于步骤响应于请求而更新正在执行中的进程。
全文摘要
本发明公开了一种进程编辑设备,该进程编辑设备包括用于编辑正在执行中的进程的编辑部分。
文档编号G06Q10/06GK1680959SQ20051007416
公开日2005年10月12日 申请日期2005年2月8日 优先权日2004年2月12日
发明者松井善郎 申请人:株式会社理光
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1