向导引擎中的向导的制作方法

文档序号:6479821阅读:286来源:国知局
专利名称:向导引擎中的向导的制作方法
技术领域
本发明涉及一种方法和向导引擎,通过实现以可选的顺序在不同向导之间进行导 航,以用户友好的方式允许用户完成web应用的执行。
背景技术
覆盖广泛领域、数量稳步增长的管理任务可以通过软件相关的应用(典型地称为 web应用)来执行。然而,可通过互联网以及任何一种传统的web浏览器进行访问的许多诸 如此类的web应用需要长时间的交互过程,这完成起来可能很耗时并且很复杂。用户不熟 悉其中所涉及的步骤的不经常执行的任务也可能使对用于执行一个或多个用户交互以执 行应用的简化的用户界面以及简化的机制的需求增加。为了简化此类操作,引入了用户界 面元素,通常称为向导。当执行包括一个或多个向导的应用时,向用户呈现一系列对话框, 通过该对话框引导用户经过一系列步骤,使得用户能够以特定顺序执行许多所需的任务。然而,可能发生在一个向导中配置的数据需要在另一个向导中使用的情况。在这 种情况下,通常可能发生的问题是当用户即将完成任务时,诸如通过某些web应用的配置 必须退出一个向导以继续,这是因为它包含了必须在另一个向导中进行配置的数据,而由 于不同的向导必须以特定的顺序来进行配置,所以这没有被正确地完成。下面参考图la-c 来对此类示例过程进行描述。将参考图Ia对此类场景的一个示例性示例进行说明,图Ia中,完成配置的操作者 将要将数据输入到一个包括一些数据域101-104的向导(向导A)的表100中。数据域104 是用于输入所创建的用户的邮箱的域。然而,在该情况下,还没有为该用户创建邮箱,为了 能够完成配置,操作者将必须首先退出向导A,并调用如图Ib所说明的另一向导(向导B) 的另一输入表105,其中包括了相关的表,用于通过为用户配置邮箱来继续配置过程。操作者通过将数据输入到输入表105中,从数据域106a开始,并完成向导B最后 的输入数据域106η,来继续配置过程。一旦完成配置,操作者通过按下“应用”按钮107,来 提交输入的数据。使用所创建的用户的已经存在的邮箱,操作者现在可以选择继续新用户 的配置,这将从将数据输入到与向导A相关联的表中开始。然而,由于输入到向导A的输入 表中的状态和全部数据在离开向导A时丢失了,操作者在返回该向导之后,将必须重新开 始输入与向导A相关的所有的数据设置。即使可以进行此类过程,这也不是非常用户友好的。除了耗时,由于用户必须重复 输入数据,这可能导致再次将必须输入的大量数据输入到向导A的数据域中。此外,必须将 同样的数据输入到两个或甚至更多个向导的不同数据域中还可能使错误输入数据的风险 增大。

发明内容
本发明的目标在于克服上述缺陷中的至少某些缺陷。这是通过弓I入使用户能够在 执行web应用时,容易地在向导之间进行导航,而无需了解与通过不同向导呈现给用户的相互关联的数据域之间的相互关系有关的任何特定知识来实现的。根据所述向导导航机制的一个方面,提供了一种用于管理由用户通过第一向导进 行交互所发起的web应用的方法。该方法适于处理涉及两个或更多个向导的web应用,即 为了执行应用的相关任务,用户必须在两个或更多个向导之间进行导航。所建议的方法包 括以下步骤a)在识别出访问在当前向导中缺失的、而能够从另一向导访问的数据的请求时, 中断所述当前激活的向导,b)调用其它向导,使所述用户能够在所调用的向导上继续执行web应用,c)在识别出重返被中断的向导的请求时,中断当前激活的向导,d)重返与被中断的向导相关联的存储数据,以及e)重返被中断的向导,从而使用户能够在被中断的向导上从其被中断的位置起重 返执行web应用。所述方法还使用户在执行web应用期间够将所述的调用另一向导按照所需的次 数进行重复。与重返被中断的向导相关联地,输入到激活的向导中的数据可以被临时存储在数 据结构中,或永久地存储在一个或多个数据库之中,从而使在不同向导中处理的相关数据 能够正确地进行更新。数据是应该存储在数据结构中还是数据库之中,通常对于用户来说,在各个输入 表上表现为仅仅一种可用选项。调用或重返向导的请求通常包括用于定制所请求的向导的外观的信息,例如,用 于在所请求的向导上呈现合适的选项。根据另一方面,还提供了适于执行所建议的方法的向导引擎。向导引擎通常适于基于动态网页在向导之间进行导航。指定如何在向导之间进行 导航的规则还可以按照预定义的HTML标签来配置。通过实施所建议的向导导航机制,与当前可用的可替换解决方案相比较,需要用 户访问两个或更多个向导的编辑网页将会得到相当大的简化。涉及的向导越多,用户从不 必关心应该以何种顺序执行不同的任务受益的就越多。当在不同向导中需要同样的信息时,所建议的机制还减少了输入错误的数据的风 险,这是因为同样的数据仅仅需要输入一次。


现在将通过示例实施例并参考附图对本发明进行更详细的描述,附图中图la-c示意了根据现有技术的、涉及两个向导的简化的配置示例。图加-c示意了根据本发明的一实施例的、涉及两个向导的简化的配置示例。图3示意性示意了根据一实施例的、用于执行涉及多个向导的web应用的一种方法。图4示意性示意了根据另一实施例的、用于执行涉及多个向导的web应用的一种 方法。图如是示意了当执行参考图3进行描述的方法时,在客户端和服务器之间的信令的信令图。图恥是示意了当执行参考图4进行描述的方法时,在客户端和服务器之间的信令 的信令图。图6是示意了根据一实施例的、用于执行涉及多个向导的web应用的向导引擎中 的方法的流程图。图7是示意了包括适于管理参考图6进行描述的方法的向导引擎在内的服务器的 方框图。
具体实施例方式基本上,本发明涉及一种方法,该方法允许用户在已经开始输入数据到第一向导 之后,暂停正在进行的web应用(诸如配置过程),以从第一向导中调用第二向导,并在从第 一向导首次中断的位置重返第一向导前,通过将数据输入到第二向导之中来执行应用,以 完成web应用的发起任务。该方法使对正在进行的向导的中断能够被重复任意次,而用户 无需冒任何修改的数据的风险,或者在返回被中断的向导以完成发起的web应用时,无需 考虑不同的向导分别以何种顺序被中断和调用。此外,所要求保护的发明还涉及适于执行 所建议的方法的向导引擎。典型地,通过在当前向导的输入表中显示一个按钮来触发另一向导,所述按钮允 许用户通过简单地点击相应的按钮,来启动包含另一向导的输入表的另一网页。该按钮的 位置通常紧邻用于呈现要在一个或多个其它向导中进行配置的数据的一个或多个数据域。如果重返参考图la-c所示意的先前所述的示例,图加-c示意了可替换的配置过 程,可以通过利用所建议的向导处理方法来执行该可替换过程。应理解的是,虽然该文档中接着的示例涉及配置过程,但是所建议的向导处理或 导航机制还可以应用于需要涉及与两个或更多个向导交互的用户交互的任何类型的web 应用。图加示意了执行参考图Ia所述的配置的可替换方式。在该场景中,也将新用户 添加到第一向导(向导A)的输入表200中。然而,必须为新用户配置邮箱的用户在调用新 向导之前不必要退出第一向导。相反,用户通过激活一个在向导A的输入表200中呈现的 新的“添加”按钮205来调用该新向导。作为对该步骤的响应,如图2b所示,向导B的输入 表206被调用,并被呈现给将要完成配置的操作者。一旦通过激活“应用”按钮208提交了 向导B,如图2c所示,重返向导A的输入表200,并将其显示给用户。然而,不必重新开始填写向导A所需的数据,向导A的外观已经被更新并定制为 包含对所调用的向导所做出的可能影响向导A的数据设置的任何修改,因此,操作者可以 选择确认已经在向导B中进行配置的输入数据,并通过简单地按下现在显示在输入表中的 “应用”按钮209,来完成和结束配置过程。指定哪个向导来调用哪个其它向导,以及在哪种情况下进行此类中断或触发向导 的逻辑,通常是直接在一个或者多个预定义的动态网页中指定的。这些网页可以是例如 Java服务器页(JSP)、活动服务器页(ASP)、超文本预处理器页(PHP)中的任一个,或者可以 在通用网关接口(CGI)上存储规范。更具体地,可以在一个或多个预定义的超文本标记语 言(HTML)标签(例如Java标准标签库(JSTL)标签)中定义规则。向导引擎可以提供预定义的指令或标签。如何指定这些规则通常是依赖于应用的,并且在典型的场景中,规则还 依赖于各个向导的不同数据域之间的相互关系。通过允许,以全部根据管理者以及关于各 个应用的需求的各自偏好的多种方式,来定制向导的不同输入表的相互关系以及外观,利 用所建议的导航机制在不同向导之间进行导航将变得非常用户友好以及不言自明。调用另一向导的需求可能有不同的原因,因此,当指定用于中断以及调用向导的 规则时,可以提供多个不同选项。如先前示例所示,通过激活方式(例如,紧邻向导的输入 表的各数据域实现“添加”按钮),可以在另一向导中配置所需的设置或选项。如果需要用 于查看附加、可选细节的选项,可以例如通过向向导的输入表添加“查看”按钮,来实现查看 功能,而例如通过分别引入“更改”或“编辑”按钮,在输入表中提供更改选项或管理设置的 功能。根据输入到不同向导的数据设置是否相互依赖或独立,在执行相关向导时,将可 以应用不同的过程。当用户与不同向导的相互独立的数据设置进行交互时,在重返中断的 向导之前,可以提交每个向导的各自的数据设置,而对于相互依赖的数据设置的场景,在提 交一个或多个所调用的向导的数据设置之前,可以重返每个相关向导,所有这些都根据预 先定义的逻辑。现在将参考图3对以上提及的第一种场景进行更详细的说明,图3示意了根据一 实施例,在执行web应用期间,不同的向导如何可以进行交互。如第一步骤3 :1所示,将要执行web应用(例如,执行配置)的用户起初选择进入 第一向导(向导A)300的输入表。当已将数据输入到一些数据域之中时,用户遇到需要来 自另一向导(向导B)301的数据的数据域。不必须退出向导A 300以能够调用和完成向导 B 301,相反,用户将能够发起中断向导A 300,此后,通过填充向导B 301的输入表,他将能 够继续配置过程,这一功能是通过激活预定义的按钮,从向导A 300中激活的。如上所述,在调用另一上下文中的向导时,所有关于属于不同向导的状态和数据 的信息通常会丢失。然而,本方法保持该信息,并使用户能够返回先前暂停的向导,以及一 旦在所调用的向导中设置了相应的数据设置,并且通过简单地激活另一按钮来重返中断的 向导,恢复先前的状态和数据。根据所述机制,如在调用向导B 301(另一步骤3:3所示)之前,将被中断的向导 的向导特定的数据(包括输入向导A 300的当前状态和数据设置)如另一步骤3:2所示存 储在向导A 300专有的web会话存储器303的临时数据结构302之中。调用向导B 301的 请求可以包括用于定制向导B 301的外观所用的信息,从而使根据当前环境所有在配置过 程中可用的选项更加用户友好以及不言自明。通常,该信息依赖于由用户输入至向导A 300 的某些数据设置。一旦调用了向导B 301,用户就可以开始与向导B301的输入表进行交互, 例如,相应地查看选项和/或添加数据,确保在终止向导B 301时,能够从向导A 300被中 断的位置重返向导A 300。如果例如另一向导的选项或数据设置在向导A 300的输入表中 丢失,那么用户可以选择激活合适的按钮,例如紧邻当前向导的各自的数据域的“添加”按 钮,从而调用其它向导,该向导在被调用时,适于引导用户例如配置丢失的选项或设置。作 为激活添加按钮的响应,向导引擎将存储与所选择的选项相关联的向导特定的数据。如果 还需要允许用户在另一向导中移除数据的选项,可以以相应的方式配置“移除”按钮。当将数据输入到向导B 301或通过向导B 301查看数据时,用户可能会发现他需要无法在当前向导的输入表中配置的更多数据,然而可以在另一向导(向导C) 304中,根据 作为一个或多个预定义的按钮呈现给用户的一个或多个选项进行配置。为了能够继续配 置,相应地用户因此可以选择中断向导B 301,并通过简单地按下在向导B的用户表中可视 显示的另一预定义的按钮,来调用向导C。作为对该中断的响应,将向导B 301的向导特定 的数据(即向导B 301的状态及输入至向导B 301的数据)如另一步骤3:4所示存储在向 导B 301的另一数据结构305中。在下一步骤3:5中,接着通过还可以包括用于定制向导 C 304的外观的信息在内的请求,调用向导C 304。在完成了向导C 304中必要的配置步骤之后,通过一次重返一个先前的向导,用 户将能够完成配置过程。由于向导B 301依赖于输入至向导C304中的数据,因此用户将不 能够在该阶段应用输入的数据。相反,用户激活一个按钮,使得过程能够从其先前被中断的 位置(向导B 301)继续配置过程。作为对重返向导B 301的请求的响应,将插入到向导C 304的输入表中的数据设置如步骤3 6所示存储在向导C的数据结构306之中,此后,如另 一步骤3:7所示,重返向导B 301。在步骤3:7中,可以将信息转发至向导B 301,以根据在 向导C 304配置的任何相关数据设置来定制向导B 301。重返向导B 301包括如步骤3:8所示的从各自的数据结构305重新调用向导B 301的向导特定的数据的步骤。此时,重新调用的向导(即向导B 301)被定制并显示给用 户。一旦向导B的输入表呈现给用户并被接受,除非发起另一向导的另一调用,那么下一步 骤是重返向导A 300以能够终止最初在向导A 300发起的配置过程。该请求由下一步骤3 9所示。由于在向导B中没有改变,那么在该阶段,该请求将不会包括任何定制信息。重返向导A 300包括如另一步骤3 :10所示的重新调用向导A的向导特定的数据, 该数据先前在步骤3 :2被存储在数据结构302中。用户现在通过填充输入表中的任何剩余 的数据域,可以继续向导A 300中的配置过程。如果用户同意配置结果,那么通常通过激活 “应用”按钮,他可以提交向导A。当提交向导A时,如步骤3:11所示,向导A的数据设备被 存储到数据库307之中,或者可选地,存储到多个数据库之中。如果保存成功,如接着的步 骤3 :12以及3 13所示,输入向导B和向导C的目前未提交的数据设置将从相应的数据结 构305、306之中被重新调用,并存储在数据库307之中。每次中断向导时存储向导特定的数据是通过将当前向导状态和数据放入到存储 在web会话存储器307的任何数据结构中的数组列表的数据或对象结构中来完成的。之后 通过利用Java中的镜像模式(reflection pattern)来建立所调用的向导。如上所述,即每 次向导被中断并调用另一向导时,对每个新的向导上下文,启动单独的数据结构302、305、 306。如果调用另一向导,那么更新当前的数据结构,并将其存储到上述的数组列表中。每 次用户中断向导并调用另一向导以继续正在进行的web应用时,如果用户选择了不在该阶 段提交数据,将输入到所调用的向导中的数据存储到数据结构中。向导还可以是完全独立的。现在将参考图4对根据另一实施例的方法进行描述, 该实施例针对涉及独立向导的这样的可替换场景。与上述场景类似,根据该第二实施例已经定位配置地点的用户在第一步骤4 :1中 起初选择进入第一向导,向导A 400。要将数据输入到向导A中,用户可能认识到某些配置 步骤无法从向导A完成,但是可以在从其希望在该阶段完成的另一向导(向导B)访问。虽 然对完成当前向导A 400的数据设置不是必须的,即配置向导B 401与向导A是独立的,然而用户通过激活对于该目的专用的按钮调用向导B 401,因此,如步骤4 2所示,向导A的 向导特定的数据被存储到数据结构402之中。在下一步骤4:3中,调用向导B,通常并不转 发任何定制数据。用户通过将数据输入到向导B401的输入表中继续。一旦用户已经完成 向导B 401所需的设置,为了配置某些同样独立于先前向导的数据设置的附加数据,在继 续先前向导处的配置过程之前,他可以选择调用另一向导,向导C 403。从而用户发起另一 请求,中断向导B 401,在如下一步骤4 :5所示的调用向导C 403之前,如步骤4 :4所示,将 向导B的向导特定的数据存储在数据结构404之中。一旦已经完成向导B 403的配置,用户选择终止该向导,并重返先前的向导,向导 B 401。然而,由于两个向导是独立的,用户可以在离开向导C 403之前,例如,通过激活“应 用”按钮,首先提交输入到向导C 403中的设置,因此,如步骤4 6所示,用户发起过程来存 储输入的数据,其中,如图所示,数据被存储到数据库405之中,或可替换地,存储到多个数 据库之中。一旦用户已将输入到向导C 403之中的数据设置提交,那么如步骤4 7所示,向 导B被重新调用,以及如下一步骤4:8所示,向导B 401的向导特定的数据被重新调用。此 时,已完成并提交向导B 401,结果是如下一步骤4:9所示,输入到向导B 401的输入表之 中的数据也同样被存储在数据库405之中。在下一阶段,对向导A400同样重复所述过程, 其中,在另一步骤4:10中调用向导A,并且在步骤4:11中存储向导A 400的向导特定的数 据。现在用户可以完成向导A 400的输入表,在接着的步骤4:12之中,在提交并将输入到 向导A 400的输入表之中的数据设置存储在数据库405中,从而终止最初在步骤4 1中开 始的所述配置过程。虽然,以上所示的两个示例包括三个不同向导,通过为该目的预配置的按钮的用 户激活,不同向导可以彼此互相调用,然而应当理解的是,方法可以包括任意数目的向导。 还应当理解的是,虽然在所描述的两个实施例中,通过在离开一个向导以进行接着的向导 时,一次提交向导并存储所插入的数据来终止向导,或者通过直到重返最初的向导,才提交 相应的向导,即通过在中断和离开向导时,将输入至向导中的数据设置存储数据结构之中, 并在终止最初的web应用时提交所有中断的向导来退出向导,然而,应当理解的是,在执行 web应用期间,还可以将这两种存储数据的方式组合,均根据为web应用以及应用中所涉及 的各向导所指定的规则来进行。为了使web应用尽可能用户友好以及不言自明,这些规则 可以例如依赖于输入到向导的各输入表之中的数据类型,或依赖于任何其它预定义的应用 特定的条件。如上所述,为了能够定制所调用的或中断的向导的外观,基于输入到中断的向导 之中的数据,所建议的方法还允许将输入到中断的向导以及所调用的向导之中的数据分别 从中断的向导传递到所调用的向导之中或者反之亦然。向导引擎使中断的向导的状态以及数据保持临时存储在数据结构存储器之中,并 允许用户执行另一个所调用的向导。在执行调用的向导期间,用户还可以选择中断该向导, 并调用又一向导,在重返中断的向导之前,可以在又一向导中查看和/或输入附加的数据。还可以基于客户端/服务器模型描述本发明。现在将参考图fe,根据第一实施例, 并参考图恥,根据第二实施例,对简化的、示例信令图进行描述,信令图按照在客户端和服 务器之间的信令步骤示意了所建议的向导过程。
在图fe中,客户端500 (通常是web浏览器,例如互联网浏览器或火狐)请求服务 器501 (通常是应用服务器,例如基于Java的JSP伺服小程序)执行由用户选择的web应 用的若干独立的用户任务。该web应用通常可以包括允许配置或输入至一个向导的输入表 之中的数据被由用户调用的一个或多个其它向导所使用。将要完成web应用的浏览器用户如第一步骤5:1所示,首先请求特定引导,即向 导。作为响应,如接着的步骤5:2所示,服务器501激活第一向导,向导A。用户可以以传 统的方式(未示出)填充一些数据域,直到他遇到所需的选项无法从当前向导中执行的域。 幸运地,向导包括可替换项,允许用户添加通过另一向导提供的附加可替换项。用户通常通 过激活“添加”按钮,产生在下一步骤5 :3中发送的请求,来选择该可替换项。请求可以包 括有关输入至向导A中的数据的信息,将被服务器用来定制向导B的外观。定制通常包括 显示合适的按钮来为用户提供合适的可替换项,以在执行特定的web应用时在不同的向导 之间进行导航。作为对从另一向导添加数据的请求的响应,如步骤5:4所示,服务器501将稍后用 于重返向导A所用的向导特定的数据(即当前的状态和数据)存储在数据结构之中,在另 一步骤5 5之中,服务器501向客户端500提供扩展页面(即向导B),可以基于从向导A 向客户端500提供的数据来定制该扩展页面。现在用户可以完成根据标准过程(未示出) 显示给用户的向导B的输入表。如果没有调用附加向导,即用户要求的所有选项在当前和 /或先前的向导中都可用,那么在该阶段用户通常选择终止向导B。在该情况下,输入到向 导B的输入表的数据与先前输入到向导A的输入表的数据独立,因此,如下一步骤5 :6a所 示,通过从向导激活“提交”或“应用,,按钮,提交输入的数据。如接着的步骤5 :7a所示,服务器501通过将输入的数据存储到一个或多个数据库 (为示出)中,来对该请求予以响应。在接着的步骤5 :8a中,先前在步骤5:4存储的向导 A的状态和数据被重新调用,在另一步骤5 :9a中,服务器501再次向客户端500提供向导 A的输入表。然而,由于输入向导B的内容的缘故,这次用户的外观可能会不一样。一旦用 户已经输入了向导A的输入表所需的数据设置,如下一步骤5 :10a所示,通过对向导A激活 “提交”或“应用”按钮,他将能够执行和提交向导A。提交向导A,其中,在下一步骤5 :11a 中,输入到向导A中的数据被存储在一个或多个数据库中,以及在最后的步骤5 :12a中,服 务器501向客户端500提供响应页面。然而,如果对于向导A选择的设置,输入到向导B的数据是强制的,那么可以使用 一种可替换信令方案。现在参考图恥对可替换信令图进行说明。根据图恥,在图fe的步骤5 5接收到扩展页面时,用户选择不提交输入的数据。 这不是通过执行图fe中的步骤5 :6a,而是如步骤5 :6b所示,通过激活一个激活方式来实 现的,该激活方式通常是显示在向导的输入表上为该目的预先配置的按钮,例如,“继续”按 钮。在另一步骤5 :7b中,将输入到向导B的输入表中的数据存储到向导B的数据结构之 中,以及在步骤5 :8b中,重新调用向导A的状态和数据。在步骤5 :9b中,向客户端500返 回向导A的输入表,一旦用户已经将所需的数据设置输入到向导A中,如步骤5 :10b所示, 通常通过激活“应用”按钮,他将能够执行和提交向导A。作为对该步骤的响应,如步骤5 1 Ib所示,服务器501提交和执行向导A,从而将向导A的数据存储在至少一个数据库之中。 如果提交成功,如另一步骤5 12b所示,服务器501继续提交和执行向导B,以及也将向导B的数据存储在至少一个数据库之中。如步骤5 :13b所示,服务器501在响应页面中向客户 端500提供完成的web应用的结果。可以使向导引擎适于管理web应用,包括根据上述的任何实施例中断正在进行的 向导以及在不同向导之间进行导航。通过在应用服务器中实施此类向导引擎,使用所建议 的导航机制可以提供在应用服务器上运行的任何web应用。在图6中,流程图示意了此类应用服务器的向导引擎如何操作,以允许用户完成 依赖于至少一个必须通过不同向导来执行的用户交互的web应用。在第一步骤600中,向导引擎认识到用户输入的从当前显示的向导调用另一向导 的请求。在下一步骤601中,向导引擎通过中断当前向导予以响应。中断导致与当前向导相 关联的数据如下一步骤602所示被存储在当前向导的数据结构之中。在另一步骤603中, 向导引擎调用请求调用的向导,在下一步骤604中,例如通过填充一个或多个数据域,和/ 或通过查看调用的向导的输入表上的数据,用户开始执行所请求的向导。如另一步骤605所示,如果当前向导需要该另一向导中存在的数据,那么用户可 以发起调用另一向导。将会通过一个或多个通常紧邻当前向导的各数据域的按钮,以可视 的方式向用户呈现调用另一向导的任何可能的方式。如果用户还调用又一向导,那么向导引擎适于重复从步骤601中开始的上述的过 程。然而,如果从当前向导没有调用更多向导,那么如步骤606所示,中断执行当前向导,并 且在接着的步骤607中存储输入至当前向导输入表中的数据。如上所示,如果两个向导各 自的数据域间存在依赖性,那么将输入的数据临时存储在数据结构之中,或者如果它们相 互独立,永久地存储在至少一个数据库之中,通常用户只能使用这些可替换项中的一个。如果在另一步骤608中,确定当前向导是为当前任务调用的第一向导,例如,没有 从用户当前激活的向导调用后续向导,那么对用户激活了适于该目的的按钮予以响应,向 导引擎提交输入到当前向导中的数据,以及如下一步骤610所示,向导引擎接着终止在步 骤600中最初由用户发起的任务。在终止应用之前,将临时存储在数据结构之中的任何数 据存储到一个或多个数据库之中。然而,如果当前激活的向导是从另一向导调用的,在另一步骤609a中,重返先前 临时存储在与该另一先前中断的向导相关联的数据结构之中的数据。如另一步骤609b所 示,基于重返的数据,重返中断的向导。可选地,根据输入至所调用的向导的任何数据,向导 引擎适于定制中断的向导。在接着的步骤609c中,用户将能够从之前被中断的位置继续执行中断的向导。然 而,重返的向导将以在任何所调用的向导中所做出的可能影响重返的向导的任何修改被更 新。根据数据设置是否在先前的向导中应用,各数据设置通常将导致所调用的向导与初始 被中断时相比,具有不同的外观。在执行重返的向导时,用户可以选择调用另一向导,如果该选项在当前的向导的 输入表中可用以及如果用户需求的话。如图6的流程图所示,可以重复调用向导。当通过将 输入的数据存储在至少一个数据库中或临时数据结构之中来终止向导时,将调用和终止最 近被中断的向导。重复该过程直至向导引擎重返由向导引擎最初调用的向导。在该阶段, 通常通过提交输入至第一向导中的数据,以及输入至一个或多个被调用的向导中的任何未 被提交的数据,由向导引擎来终止应用。
向导引擎在无状态的web环境中操作,并且通过每次向导被中断并调用另一向导 时,存储向导当前的状态和数据,向导引擎将获得web应用当前工作流的有状态行为。可以将向导引擎描述为应用服务器的通用实体,包括适于根据上述的任一实施例 来处理多个向导之间的转换的逻辑。现在将参考图7对根据一示例实施例的向导引擎进行 进一步详述。应当理解的是,以下给出的示例中呈现的向导引擎仅仅表示一种可能的实施建 议,意味着对适合用于实施所建议的向导导航机制的一般方法的一种可能组合,并且因此 在不超出所要求保护的发明的一般原理的情况下,可以以多种可替换方式来实施向导引擎。位于服务器501中的向导引擎700包括处理装置701,该装置适于处理多个web应 用,以对这里由客户端500所表示的用户的交互予以响应。虽然没有在图中明确示出,但是 以传统的方式执行此类交互。某些web应用可以被适配为使用户能够根据以上所述在两个 或更多个向导70 -!!之间进行导航。向导引擎还包括输入装置703,适于识别与向导之间 的导航相关联的请求,例如,请求调用正在进行的向导、请求重返中断的向导以及请求将输 入到向导中的数据存储到一个或多个数据库中或数据结构中。如上所述,通过用户执行应 用来触发这些请求。导航装置704适于中断正在进行的向导,存储与中断的向导相关联的 向导特定的数据,以及对输入装置703识别出此类调用请求予以相应,调用相关的向导。导 航装置704还适于中断调用的向导,恢复存储的数据,以及对输入装置703识别出此类重返 请求予以响应,恢复各个中断的向导。对输入装置703识别出的存储向导的输入表的内容 的请求予以响应,导航装置704还适于将各自的数据存储在数据库705之中,或存储在与各 个向导相关联的数据结构706之中。导航装置704还包括根据通常作为JSP页面707提供 的预先配置的web应用特定的规则,用于中断请求以及执行相关步骤的逻辑。因此,通过实现所建议的向导引擎,用户不必必须退出当前的向导以完成正在进 行的任务。相反,能够在发现数据缺失时,以“错误”的顺序启动配置,以暂停正在进行的向 导,以及离开正在进行的任务以完成缺失数据设置。一旦完成缺失数据设置,可以返回最初 正在进行的任务并完成所发起的配置任务。所建议的向导过程中的向导还使用户能够以多 个不同顺序执行此类配置任务,即在多个不同向导之间重复移动,并能成功地返回先前的 向导,以相应地完成任务。所建议的过程实现的优势主要是其实用性。用户可以实现期望的目标,而无需提 前充分了解如何操作或以何种顺序执行此类过程。用户可以在过程中的任何位置开始,并 且向导引擎将保证所有的配置最终都以正确的顺序执行。此类特征不仅能够为用户节省很 多时间,而且因为即使过程是以到目前为止被认为是错误的顺序来执行的,也能够因所发 起的任务产生成功的自我感觉,因此很可能提高用户的满意度。缩写
ASP活动服务器页面
CGI通用网关接口
HTML超文本标记语言
JSPJava服务器页面
JSTLJava标准标记库
PHP 超文本预处理器页面向导需要填充以及提交以设置某些数据的域的输入表或一系列表
权利要求
1.一种管理由用户经由第一向导进行交互所发起的web应用的方法,所述web应用涉 及至少两个向导,其中,所述方法包括以下步骤a)在识别出(600,605)用于访问在当前向导中缺失的数据的请求时,中断(601)当前 激活的向导,以及存储(60 与所述向导相关联的数据,所述数据能够从与所述当前激活 的向导不同的其它向导访问,b)调用(603)所述其它向导,使所述用户能够在所调用的向导上继续执行(604)所述 web应用,c)在识别出(605)用于重返被中断的向导的请求时,中断(606)当前激活的向导,d)重返(609a)与所述被中断的向导相关联的存储数据,以及e)重返0508b)所述被中断的向导,使用户能够在所述被中断的向导上从所述被中断 的向导被中断的位置起重返执行(609c)所述web应用。
2.根据权利要求1所述的方法,其中,步骤b)的执行阶段包括在用户激活调用又一向导这样的选项的情况下,通过重复步骤a)和b),调用又一向导。
3.根据权利要求1或2所述的方法,其中,步骤c)还包括 存储(607)输入至当前向导的数据。
4.根据权利要求3所述的方法,其中,存储数据的步骤包括在用户选择提交所述数据的情况下,将对于所述向导的所述数据存储在至少一个数据 库中,或者在用户选择不提交所述数据的情况下,将所述数据存储在与所述向导相关联的数据结 构中。
5.根据前述权利要求中任一项所述的方法,其中,步骤c)还包括在用户激活终止请求并且当前激活的向导是第一向导的情况下,终止所述web应用。
6.根据权利要求5所述的方法,其中,步骤c)还包括在终止所述web应用之前,将先前未提交的数据存储在所述一个或多个数据库中。
7.根据前述权利要求中任一项所述的方法其中,步骤e)的执行阶段还包括在用户激活重返先前向导的请求并且所重返的向导不是第一向导的情况下,重复步骤 c)至 e)。
8.根据前述权利要求中任一项所述的方法,其中,与向导相关联的所述数据包括当 前状态、以及输入至所述向导的数据。
9.根据前述权利要求中任一项所述的方法,其中,访问缺失数据的请求和/或重返向 导的所述请求包括用于定制所请求的向导的外观的信息。
10.根据前述权利要求中任一项所述的方法,其中,通过与相应活动相关联的激活方式 来激活任一所述请求,所述激活方式被显示在当前激活的向导上。
11.根据权利要求10所述的方法,其中,所述激活方式被配置为激活以下活动中任一项在与当前激活的向导不同的向导上添加数据; 在与当前激活的向导不同的向导上查看数据;在与当前激活的向导不同的向导上改变数据;在与当前激活的向导不同的向导上编辑数据;从与当前激活的向导不同的向导中移除数据。
12.一种用于管理由用户发起的web应用的向导引擎(700),所述web应用涉及至少两 个向导(702a-702n),所述向导引擎包括输入装置(703),用于识别从当前执行的向导调用所请求的向导的请求;重返被中断 的向导的请求;以及存储与当前激活的向导相关联的数据的请求,导航装置(704),用于中断正在进行的向导,存储与被中断的向导相关联的数据,以及 响应于所述输入装置识别出调用请求来调用另一向导;中断所调用的向导,存储与所调用 的向导相关联的数据,重返与被中断的向导相关联的存储数据,以及从所述被中断的向导 被中断的位置起重返所述被中断的向导,所述导航装置还适于响应于所述输入装置识别出 存储请求来存储数据。
13.根据权利要求12所述的向导引擎,所述导航装置还适于在所述输入装置识别出 从所述另一向导访问数据的请求的情况下,从当前激活的向导调用又一向导。
14.根据权利要求12或13的向导引擎,其中,所述导航装置还适于在所述输入装置 识别出提交所述数据的请求的情况下,将输入至向导的数据存储在数据结构中,或者在所 述输入装置识别出不提交所述数据的请求的情况下,将输入至向导的数据存储在至少一个 数据库中。
15.根据权利要求12至14中任一项所述的向导引擎,其中,所述导航装置还适于在 输入装置识别出终止请求的情况下以及在当前激活的向导是第一激活向导的情况下,终止 所述web应用。
16.根据权利要求15所述的向导引擎,其中所述导航装置还适于在终止所述web应 用之前,将先前未提交的数据存储在至少一个数据库中。
17.根据权利要求12至16中任一项所述的向导引擎,其中,所述导航装置还适于在 输入装置识别出重返先前向导的请求的情况下以及在当前激活的向导不是第一激活向导 的情况下,重复重返向导。
18.根据权利要求12至17中任一项所述的向导引擎,其中,所述导航装置还适于基 于相应请求的数据,定制所调用的和/或重返的向导的外观。
19.根据权利要求12至18中任一项所述的向导引擎,其中,所述导航装置还适于基 于在动态网页中存储的以及从动态网页中获得的至少一条指令,在至少两个向导之间进行 导航。
20.根据权利要求19所述的向导引擎,其中,所述动态网页是以下任何一种Java服务器页面(JSP),活动服务器页面(ASP),超文本预处理器页面(PHP),或通用网关接口(CGI)。
21.根据权利要求19或20所述的向导引擎,其中,所述至少一条规则是由至少一个预 定义的HTMP标签定义的。
全文摘要
公开了一种用于管理由用户发起的web应用的方法,该方法能够在执行所述web应用时,在两个或更多个向导之间进行导航。预定义的指令确保用户在两个或更多个向导之间进行导航时,能够以不同的顺序执行多个步骤而不会丢失已在先前的步骤中执行的数据。还公开了适于执行所建议的方法的向导引擎。
文档编号G06F9/44GK102089743SQ200880129758
公开日2011年6月8日 申请日期2008年9月15日 优先权日2008年6月13日
发明者因吉拉·克兰茨, 简·朋图森, 罗宾·戈多尔 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1