一种基于信任管理的面向Web服务的工作流编辑方法

文档序号:6586615阅读:166来源:国知局
专利名称:一种基于信任管理的面向Web服务的工作流编辑方法
技术领域
本发明涉及一种针对于在线调用Web服务的日程安排的工作流编辑方法,特别结 合了日程安排的特殊应用和引擎中信任管理平台的支撑技术,实现了一个易于操作,容易 理解的工作流编辑方法及其模型。
背景技术
传统意义上的工作流,主要解决的是使在多个参与者之间按照某种预定义的规则 传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的 实现,结合到应用当中,主要完成提供日常办公和关键业务流程智能化管理,并且能根据公 司的特殊实际要求轻松方便地随时定制各种流程,并可实现不同角色不同的跟踪、查询、统 计、打印等强大功能。 但是,随着Web服务的蓬勃发展,把工作流和Web服务结合起来的应用越来越多。
这种工作流不是为了加强企业内部管理而设置的业务流程,而是让用户可以有序的调用互
联网上的Web服务,满足自身的需求,比较典型的例子即是日程安排工作流。 和Web服务结合之后,工作流编辑需要关注两方面的内容,一是如何通过搭建好
的工作流模型调用服务,这个问题已经基本解决,就是在编辑器中设置不同的节点代表不
同种类的虚服务,引擎执行的时候再绑定同名的实服务并调用之。随之而来的问题是何时
绑定,何时真正调用,通用的做法是由当前节点的前驱节点来触发绑定和调用,但是有时候
用户希望服务调用发生在合适的时间,比如希望11点中执行订房间服务,能够保证定到好
的房源,另一需要关注的问题,就是在众多的候选服务中,如何选取可靠的服务。对这两个
问题,目前还没有好的解决方法。

发明内容
本发明所要解决的技术问题是针对现有的面向Web服务的工作流编辑方式比较 繁琐的不足,设计出的一套逻辑完整,易于操作,容易理解的编辑方法及其后台支撑模型。 同时解决了通常面向Web服务工作流中,绑定服务由相邻前驱节点直接触发的不足,并提 高调用满意服务的成功率。 本发明所述的一种面向Web服务的工作流编辑方法,设计出基本的工作流模型和 与之对应的数据模型,该工作流模型包括设置模型基本组件、设置工作流驱动模式、设置循 环节点结构和工作流服务节点的配置,其中 1)模型基本组件包括服务组件、控制组件,端口组件、边组件和设置时间组件;
a.服务组件,其代表虚服务,工作流引擎会在执行到此服务组件的时候,绑定和调 用实服务; b.控制组件,其分为循环组件和选择组件,分别表达循环和分支的语义概念,
c.端口组件,其依附于服务组件和控制组件,分为入口 ,正常出口和异常出口 ,分 别代表控制流的流入和流出;
d.边组件,表示确切的数据和控制流向,其连接于任意两个出入口之间的有向边, 代表了数据的流向; e.时间组件,其绑定在服务组件之上,并由用户设置服务组件的绑定服务时间;
2)设置工作流驱动模式时,在每个服务节点增加时间触发方式,用以调用服务时 间,实现事件与时间双重驱动模式; 3)在循环节点结构中增加更换服务属性,选中情况下每次进入循环节点子工作流 就更换服务提供方,未选中则一直选择排名第一个的服务提供方。循环条件的设置是以子 工作流中最后一个节点的输出作为循环条件的变量来源,最后一个节点的完整输出作为循 环节点的输出; 4)在工作流服务节点配置的过程中,采用数据流与控制流相分离的配置方式。
在步骤3)中在循环节点中还增加了可更换服务提供方个数的设置,让用户选择 调用替代服务的次数。 在上述步骤4)数据流与控制流相分离的配置方式是,在虚服务节点配置的过程
中,增加输入参数值的设置方式来实现的,具体是在配置的过程增加一个约束,使服务的配 置过程必须是从开始节点沿着边的方向依次配置的,每个虚服务的配置,只能选择Web服 务当中的一个方法,这样,配置好的虚服务,就是一个设置好输入参数的一个Web服务的方 法调用,如此下去,每个当前配置服务节点都可选择之前所有节点的输出作为输入来源,达 到了数据流的分离功能。 本发明设计了用户自定义服务执行时间功能,被设置过时间的服务,在前驱节点 结束之后,对比当前时间与设置的时间,如果设置时间已过,立刻执行服务调用,否则等到 设置时间执行服务调用。此功能解决了通常面向Web服务工作流中,绑定服务由相邻前驱 节点直接触发的不足。此外,加入了定时触发的双重触发机制,再者加入了可信评估的方 法,进而设计了与之紧密结合的特殊循环节点,以提高调用满意服务的成功率。


图1显示了本发明的工作流模型的类关系图。 图2-1, 2-2, 2-3, 2-4显示了工作流模型中常见的几种结构。 图3-1, 3-2, 3-3显示了几种常见的工作流场景。 图4显示了在实现的工作流编辑器上搭建的简单实例。
具体实施例方式
本发明可以通过谷歌的工具包gwt (Google web toolkit)迅速实现B/S模式,这 一点使得开发网页模式的编辑器就像开发本地客户端应用程序一样方便。编辑方法部分最 主要的技术,即编辑方法背后数据模型的设计,要得到一个逻辑表达能力强,使用方便,易 于理解的编辑方法,必须有好的后台数据结构作为支撑,本发明的工作流模型定义如下
如图l,显示了本发明的工作流模型的类关系图,其中 1. Workflow表示一个工作流,它包括该工作流中使用的服务组件,有关流程控制 的组件,以及关于每个服务相关的配置。 2. ServiceTask代表完成某种功能的服务组件,是工作流中的主要组成部分,ServiceTask按其完成的功能分为不同的类别ServiceName,比如有发短信的、发邮件的、 订票、订房间等不同种类的服务。每类服务都有统一的wsdl描述ServiceDescription,即 包含相同的Operation,每个Operation具有相同的输入输出参数等。用户在构建工作流 时,要对工作流中的每个ServiceTask的输入进行详细的配置ServiceConf ig。另外,每 个用户所能使用的ServiceTask是与其账号相关的,用户在自己账号下添加自己关注的服 务,并设置相应的服务需求ServiceRequirement。 ServiceTask中可以有时间约束,即用来 约束该ServiceTask启动的时间hasTimer。 3. Loop为控制组件,每个Loop中包含一个子工作流,该控制组件使得其中的子工 作流循环运行直到Loop的条件表达式WhileCondition满足为止。Loop不仅起到控制其中 的子工作流是否继续进行循环运行,还起到传递数据流的作用,Loop之前调用的服务输出 可以传递到Loop子工作流中,也可以传递到后面的ServiceTask中。 4. Choice为控制组件,用来控制工作流进行分支的,Choice中包含多个 IfCondition,分别表示满足不同分支的条件表达式。IfCondition中一般包含Choice前面 服务的输出变量,根据这些变量或者其中的某几个域的值来判断分支条件。同其他控制组 件一样,Choice也具有传递数据的作用。 5. Edge,工作流中各种服务组件和控制组件通过Edge连接起来,即可以用来表示 控制流,也可以表示数据的流向。 6.Port,Port分为输入端口和输出端口,输入端口只有一类,输出端口又分为一般
的输出、条件输出和错误端口。条件输出中包含条件表达式IfCondition。 有了这些模型的定义,就可以在依附于不同的服务组件或者控制组件的Port之
间设置Edge,以来表示整个工作流的运行过程。并配置好相应的服务组件和控制组件,那么
工作流就搭建完毕了。 设置工作流驱动模式时,需要进一步工作流中仅仅依靠前驱节点运行完毕触发下 一个节点的事件触发方式。在这里,引入了一种新的触发方式——时间触发。用户可以针 对每个服务节点设置调用服务时间,设置过调用时间的服务节点,是按下列方式进行服务 调用的。如果工作流运行到当前虚服务节点,系统当前时间早于用户设置时间,那么服务调 用延迟,知道设置时间开始调用服务;如果系统当前时间晚于用户设置时间,则立刻开始服 务调用。 为了数据模型的统一性,这里设计了一个新的元素,叫做TimerNoder,它是依附于 服务节点的,即相当于绑定在服务组件之上的一个组件。 在循环节点结构中需要一种特殊的循环节点。传统意义上的循环节点,只需给它 设置循环条件,直到循环条件不满足,即退出循环。但是在面向的Web服务的特殊应用领 域,调用web服务的过程中,经常会得不到满意的结果,这就要求有一个信任保障机制,给 用户提供一些最可能让其满意的服务提供商列表,即候选服务集。本发明给循环节点加一 个更换服务属性,选中情况下每次进入循环节点子工作流就更换服务提供方,未选中则一 直选择排名第一个的服务提供方。模型中的循环节点实现了两种循环控制功能,并且可设 置,每次进入循环节点的子工作流,是否更换服务提供方。两个循环功能中,一个是指定次 数的do……until……循环,就是可以设置循环调用服务的最大次数,在指定次数内如果 调用结果满足循环条件,退出循环,否则重复指定次数的服务调用过程;另一个是do……until……循环,就是一直重复服务调用,直到满足循环条件为止,这种循环是为了确保给 用户提供满意的结果,但是如果一直满足不了循环条件,就会产生超时错误进而使得工作 流运行失败。 循环条件的设置也是当前特殊循环节点的一个特色。这里以子工作流中最后一个 节点的输出作为循环条件的变量来源,最后一个节点的完整输出作为循环节点的输出。有 了这套机制,就可以在子工作流中按候选服务的排序由高到低,不停的更换候选服务集中 的服务,直到子工作流的终止节点在循环条件中的变量满足循环条件,表示调用成功,或者 直到候选服务集中无新的服务提供方为止,表示服务调用失败。这样,我们就可以加大调用 服务成功的概率。候选服务集合的大小经常变动,用户有时主观上不信任排名较低的服务, 为了满足这个需求,循环节点中还增加了可更换服务提供方个数的设置,让用户选择调用 替代服务的次数。 在工作流服务节点配置的过程中,控制流与数据流的分离,是通过增加虚服务节 点服务配置的过程中,输入参数值的配置方式来实现的。要实现工作流的搭建,虚服务中首 先需要存储同名实服务的方法信息,而方法信息中,又包括方法名,输入参数信息和输出参 数信息,服务配置的过程,就相当于给输入参数指定值,输出参数的值只有在后台引擎真正 完成服务调用之后,才会得到。这里,服务参数的值有两个来源,一是用户直接输入具体值, 二是指定前驱节点的某个方法的输出参数值作为"变量"来源,之所以叫"变量",是因为在 真正调用服务之前,输出参数是没有值的,配置项里面只能存储输出参数对象的路径信息, 直到前驱服务真正调用结束,再去相应的位置获取具体的值。 要完成这种配置方式,必须有一个约束,服务的配置过程必须是从开始节点沿着 边的方向依次配置的,每个虚服务的配置,只能选择Web服务当中的一个方法,这样,配置 好的虚服务,就是一个设置好输入参数的一个Web服务的方法调用。如此下去,每个当前配 置服务节点都可选择之前的输出作为输入来源,达到了数据流的分离功能。
以下结合一具体事例对本发明做进一步说明。
1、运行环境 (1)运行Windows系统的PC机,它们作为程序运行的服务器。 (2)在PC机器上安装Eclipse 3. 2或更高版本,Tomcat 5. O或更高版本,
JBoss4. 2或更高版本,JDK1. 5或更高版本。 (3)将编写好的前台编辑器代码发布到JBoss之上 (4)通过浏览器来访问提供工作流编辑器的服务器,得到编辑界面系统结构如图 4所示。
2、场景 图3-1, 3-2, 3-3显示了本编辑方法可实现的三个典型应用场景。 如图3-1所示,用户需要定制一张从2009年11月8日从南京去武汉的火车票,
那么他需要创建虚服务BookingTrainTickets,并且设置虚服务的属性值,起始地设置为南
京,终点设置为武汉,时间设置为2009年11月8日,订票服务就算定制完毕,然后他要查
看2009年11月8日的天气,因此创建WeatherForecastService,在BookingTrainTickets
的出口禾口 WeatherForecastService的入口连边,并配置WeatherForecastService ;接
下来他要把订票结果以短消息的方式发送到自己手机上,又创建虚服务SMS,然后把WeatherForecastService的出口和SMS的入口设置连线,接着设置短消息服务的内容, 一个简单的订票然后发短信的工作流就完成了。这里有一个内容需要注意,发短信方法 的 一 部分是用户手动输入的,而短信内容项是BookingTrainTickets的输出参数中的 isFullBookSucceed的值,数据流跨越了节点WeatherForecastService,即实现了与工作 流的分离。 如图3-2所示,用户先要买2009年ll月11日从南京去武汉的火车票,火车12号 到武汉,用户想在火车票预定成功的情况下,定当天的酒店住宿。众所周知,酒店的空房信 息是时刻都在变化的,并且在早晨10点到12点之间,退房的人比较多。这种情况下,用户 不希望火车票定完直接定房间,而希望订房间的行为发生在12日的早上10点,此时,将时 间节点绑定在订房间服务节点上,并设置开始绑定服务时间为2009年11月11日上午10 点即可。 如图3-3所示,用户想在11月6日坐飞机从南京去北京,因此他需要选择 BookingAirTicketsService,但是11月6日是周末,飞机票可能比较难定,并且很有可能 订不到满意的位置,比如商务舱的票。这时用户可以选择先创建一个循环节点,再在循环 节点的子工作流中创建一个BookingAirTicketsService,配置好订票服务的输入参数信 息,结束子工作流的配置。重新回到循环节点,这时,把循环变量设置为"TicketKind == business class",并选定更换服务提供方选项,那么,在工作流引擎运行过程中,就会在候 选服务集合中,按服务提供方的排名依次更换服务提供方,直到定到商务舱为止。
3、技术描述 (1)逻辑严密,易于理解的工作流模型。图2-l,2-2,2-3,2-4分别代表了工作流中 的顺序结构,选择结构,分支结构,循环结构,这四种结构的组合,就可以搭建出任何语义的
工作流。 (2)Java对象序列化 前台模型远程传送到后台处理程序时,直接将工作流模型序列化为java对象,存 储在数据库中,引擎需要使用数据的时候,再反序列化工作流对象。
权利要求
一种基于信任管理的面向Web服务的工作流编辑方法,其特征在于设计出基本的工作流模型和与之对应的数据模型,该工作流模型包括设置模型基本组件、设置工作流驱动模式、设置循环节点结构和工作流服务节点的配置,其中1)模型基本组件包括服务组件、控制组件,端口组件、边组件和设置时间组件;a.服务组件,其代表虚服务,工作流引擎会在执行到此服务组件的时候,绑定和调用实服务;b.控制组件,其分为循环组件和选择组件,分别表达循环和分支的语义概念,c.端口组件,其依附于服务组件和控制组件,分为入口,正常出口和异常出口,分别代表控制流的流入和流出;d.边组件,表示确切的数据和控制流向,其连接于任意两个出入口之间的有向边,代表了数据的流向;e.时间组件,其绑定在服务组件之上,并由用户设置服务组件的绑定服务时间;2)设置工作流驱动模式时,在每个服务节点增加时间触发方式,用以确定调用服务时间,实现事件与时间双重驱动模式;3)在循环节点结构中增加更换服务属性,选中情况下每次进入循环节点子工作流就更换服务提供方,未选中则一直选择排名第一个的服务提供方。循环条件的设置是以子工作流中最后一个节点的输出作为循环条件的变量来源,最后一个节点的完整输出作为循环节点的输出;4)在工作流服务节点配置的过程中,采用数据流与控制流相分离的配置方式。
2. 根据权利要求1所述的基于信任管理的面向Web服务的工作流编辑方法,其特征在于步骤3)中在循环节点中增加了可更换服务提供方个数的设置,让用户选择调用替代服务的次数。
3. 根据权利要求1或2所述的基于信任管理的面向Web服务的工作流编辑方法,其特征在于步骤4)数据流与控制流相分离的配置方式是,在虚服务节点配置的过程中,增加输入参数值的设置方式来实现的,具体是在配置的过程增加一个约束,使服务的配置过程必须是从开始节点沿着边的方向依次配置的,每个虚服务的配置,只能选择Web服务当中的一个方法,这样,配置好的虚服务,就是一个设置好输入参数的一个Web服务的方法调用,如此下去,每个当前配置服务节点都可选择之前所有节点的输出作为输入来源,达到了数据流的分离功能。
全文摘要
本发明公开了一种基于信任管理的面向Web服务的工作流编辑方法,首先定义了一套描述能力强,易于操作,容易理解的工作流编辑模型,并在模型的基础上,实现了B/S模式的编辑器。其次针对工作流唯一由前驱节点触发的方式的不足,提出了事件触发与时间触发的双重触发机制,保证了在多变的web服务的网络环境下,适时的去调用服务,在一定程度上提高了调用结果的质量。最后,针对服务经常有可能调用失败的特点,结合信任管理,设计了一套独特的循环控制节点,可以让用户以循环节点中子工作流的终止节点的输出作为循环条件变量,在循环条件满足的情况下不停的调用候选服务集中的新服务,保证调用服务的成功率。
文档编号G06Q10/00GK101710405SQ200910263398
公开日2010年5月19日 申请日期2009年12月18日 优先权日2009年12月18日
发明者吕建, 徐锋, 陶先平 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1