动作流分段管理的制作方法

文档序号:12176398阅读:254来源:国知局
动作流分段管理的制作方法与工艺

web应用是在web浏览器中执行的软件应用。web应用可以包括一个或者多个功能,诸如图形用户界面工具、过程和web应用的其他方面。web应用可以具有动作流。每个动作流可以是一系列步骤,其中每个步骤可以依赖于前序步骤的执行。

附图说明

图1、2和3示出了根据本技术的一个或多个实施方式的示意图。

图4和5示出了根据本技术的一个或多个实施方式的流程图。

图6示出了根据本技术一个或多个实施方式的实施例。

图7示出了根据本技术一个或多个实施方式的计算机系统。

具体实施方式

现在将参考附图详细描述本技术的具体实施方式。为了一致性各图中用相同的参考标号来标注相同的元素。

在下面对本技术实施方式的详细描述中,给出了很多具体细节以提供对本技术的更全面理解。然而,本领域普通技术人员很容易理解,本技术可以在没有这些具体细节的情况下得到实现。在其他的实例中,没有描述一些众所周知的特点以避免不必要地使本说明书复杂化。

在整个申请中,普通的序号(例如第一、第二、第三等)可以用作元素(即,申请中的任意名词)的形容词。普通序号的使用并不暗示或者建立这些元素的任何特定次序,也不将任何元素限定为仅为一个元素,除非通过使用词语“在……之前”、“在……之后”、“单个”以及其他此类用词明确地披露。相反,使用普通序号是为了将这些元素区分开。例如,第一元素区别于第二元素,并且第一元素可以包括多于一个的元素,并可以在元素的排序中继后于(或先于)第二元素。

实施方式针对于动作流分段管理。特别地,本技术一个或多个实施方式使得动作流的部分能够在其他动作流中被再次使用。每个动作流可以包括用于执行用户级动作的一组步骤。动作流分段是一组步骤的子集,其可以在运行时结合进其他动作流中。当执行父动作流时,父动作流可以包括动作流分段表达。动作流分段表达的执行识别目标动作流分段。由此,执行按照在将执行返回给父动作流之前执行目标动作流分段来进行。

图1示出了根据本技术一个或多个实施方式的系统的示意图。具体而言,图1示出了用于开发和执行实现过程分段管理的web应用的环境100的示意图。如图1所示,环境100包括后端服务102、运行时框架104、构件库106,以及应用模型108。下面描述每个前述构件。

在本技术的一个和多个实施方式中,后端服务102是不对开发者显示并且使得web应用设计110的开发更容易的服务。后端服务102可以包括应用服务112和平台服务114。在本技术的一个或多个实施方式中,应用服务112允许基于用户界面的web应用能够被构建在web应用的类模型的顶层之上。

在本技术的一个或多个实施方式中,平台服务114是管理用于多个不同平台的应用的服务。多个不同平台可以具有各种不同的操作系统、设备和/或显示设备型号。

在本技术的一个或多个实施方式中,运行时框架104提供用于web应用可执行文件158的运行时环境。具体而言,运行时框架104管理正在执行的web应用可执行文件158的数据和事件。在图2和下文描述了运行时框架104。

在本技术的一个或多个实施方式中,构件库106是开发者可以添加到web应用设计110中的应用构件的库。换言之,开发者可以从构件库106中选择构件以向web应用设计110中添加功能(functionality)。构件库106可以包括用户界面构件和处理构件。

在本技术的一个或多个实施方式中,用户界面构件是显示给终端用户的构件。换言之,用户界面构件的实例是显示于显示设备上的。在本技术的一个或多个实施方式中,用户界面构件可以包括但不限于按钮116(例如,单选按钮(radio button)、普通按钮)、菜单118(例如下拉菜单、复选框)、图表120、布局122、输入(例如,字段)124以及组合框130。构件库中的用户界 面构件可以分别与一组选项相结合。选项组定义了用户界面构件的执行。亦即,选项组定义了构件的特定实例如何执行。与用户界面构件相关联的选项可以包括格式化、显示的任意文本、当选择用户界面构件时将被执行的任何动作,其他选项和/或以上内容的任意组合。动作可以是:在页面上执行操作、切换到特定静态页面、评估表达以确定用于切换的页面,和/或执行另一个操作。

在本技术的一个或多个实施方式中,表达可以指定一个或多个数据源以及对来自一个或多个数据源的数据执行的操作。数据源是不存在于表达内的数据的位置。例如,数据源可以是应用页面的另一部分或数据库。例如,应用页面的另一部分可以是文本字段、下拉菜单选项或者其他选项。来自数据源的数据用于评估表达中的操作。例如,操作可以包括基于所获得数据的条件语句。借助另一个实施例,操作可以是执行页面的另一字段中指定的终端用户提交的动作。

在本技术的一个或多个实施方式中,处理构件是对终端用户隐藏的构件(即,不对终端用户显示)。例如,处理构件可以包括事件126、结果列表128、格式器132、函数134、动作136和库138。下面讨论每个处理构件。

根据本技术的一个或多个实施方式,格式器132是使得能够以特定格式安排数据的指令。格式器可以是对数字、日期时间值、其他值或它们的组合的应用。根据本技术的一个或多个实施方式,函数134是可以重复使用的一段代码,其取一组输入并返回一个输出。函数的例子包括合并字符串(concat)、子字符串、最小、最大和其他函数。

根据本技术的一个或多个实施方式,动作136是一段可以重复使用的可执行功能,其可以被从任意特定构件中抽取出来,以便动作可以在多个页面和/或上下文菜单之间有用地共享。示例动作包括更新、删除、创建、登录、注销、下载和其他动作。

根据本技术的一个或多个实施方式,库138是构成实用性的一组文件以及基础设施代码。示例库包括应用启动代码、动作管理器、类型管理器、实用性(utility)和日志记录器。处理构件还可以分别与一组定义处理构件如何被使用的选项相关联。

根据本技术的一个或多个实施方式,应用模型108是用于任意web应用 的类模型。应用模型包括页面140、分段142、数据动作和数据源144、会话变量146、应用控制148、上下文菜单150、动作流152和选表154。下面描述应用模型的这些构件中的每一个构件。

应用模型108中的页面140是web页面的模板。换言之,应用模型108中的页面是用于可显示给终端用户的完整单个文档的模板。分段142代表行为的至少一个部分。换言之,行为是终端用户可以使用web应用执行的动作的已定义的序列。分段是动作的已定义的序列的一部分。数据动作和数据源144定义了数据的存储结构和存储位置以及对数据执行的动作。

分段142可以包括过程分段。过程分段是过程的一部分。换言之,过程分段可以具有多于一个的定义的输入控制点和多于一个的已定义的输出控制点。环境100包括允许开发者使用构建器156将用于分段142的模板从应用模型108拖拽到web应用设计110中,和将参数插入到模板中以创建过程分段定义的功能。换言之,根据本技术的一个或多个实施方式,过程分段定义是使用模板和基于语言的表达而非编程语言来定义过程分段的源代码。下文以及图3描述了过程分段的更多细节。

会话变量146是存储用于终端用户和web应用可执行文件158之间的特定会话的变量。例如,会话变量146可以包括连接变量和关于终端用户的信息,诸如用户的证书(例如用户标识符),终端用户的角色以及其他信息。

根据本技术的一个或多个实施方式,应用控制148定义了web应用的全局外观和感觉。例如,应用控制148可以包括各种条幅、菜单项、字体、颜色和其他所显示的和围绕单个页面的特征。借助另一个实施例,应用控制148可以包括页面140所基于的模板。

上下文菜单150是依赖于从中选择菜单的上下文的菜单实例。例如,上下文可以是所选择的特定用户界面构件、所显示的页面或者另一上下文。上下文菜单呈现专用于特定上下文的选项。选择上下文菜单的方式并不依赖于上下文。具体而言,终端用户可以以相同的方式选择上下文菜单并且具有基于上下文而呈现的不同菜单选项。

动作流152是被执行的多组步骤,换言之,每个动作流定义了完成一项任务的一组步骤。例如,动作流可以是向企业的数据库中输入一个新的人员,向 企业的数据库中存入一个文档,复制文档,替换用户忘记的密码或者执行其他任务。

每个动作流都有开始和完成。开始定义了动作流的第一个步骤。完成定义了动作流的结束。如上所述,开发环境100提供了用于构建web应用设计110的组成机制。由此,动作流的步骤组不在单个计算机指令的级别上诸如以编程语言来定义,而是在企业逻辑级别(business logic level)上定义。动作流可以具有或者不具有用户交互。特别地,动作流可以是完全自动化的。借助于一个实施例,动作流可以包括完全由服务器执行的一组步骤。在其它实施方式中,动作流可以是使用web应用来引导用户的一组步骤。例如,动作流可以对应于引导用户了解如何执行web应用功能的向导。在这种场景中,两个或更多动作流可以对应于web应用中的区分web页面。作为替代或作为补充,动作流的一些步骤可以是与用户交互而另一组步骤可以由服务器执行。

动作流的步骤组可以被排序。具体地说,步骤组中可以存在一个或多个路径,其中每个路径是步骤的一个定义序列。具体路径可以依赖于用户输入和/或所收集的数据。

根据本技术的一个或多个实施方式,动作流分段是动作流的一部分。换言之,动作流是完成具有开始和完成的任务的步骤集,而动作流分段是执行任务的一部分且并不具有开始和完成的步骤子集。此外,动作流不能结合到其他动作流中,而动作流分段可以被结合到其他动作流中。此外,动作流分段可以具有多于一个的初始输入控制步骤,由此执行可以传递给这多于一个的初始输入控制步骤中的任何一个。类似地,动作流分段可以具有多于一个的输出控制步骤,由此执行可以使用这多于一个的输出控制步骤中的任何一个返回到父动作流。

在本技术的一个或多个实施方式中,选表154是显示的项目的列表,从中可以选择一组项目。换言之,可以从选表中选择多于一个的显示项目。

web应用设计110是开发者所创建的web应用的特定设计。具体而言,web应用设计110包括应用模型108和构件库106的构件的实例,可以在运行时框架104上执行并使用后端服务102。

根据本技术的一个或多个实施方式,web应用设计110连接到构建器 156。构建器156为开发者提供用户界面以创建web应用设计110。在某些实施方式中,开发者不需要知晓编程语言或者其他开发知识来构建web应用设计。相反,构建器156提供一个界面,开发者借助该界面可以主要是将构件拖拽和放下到web应用设计110中,并将参数输入到字段中以创建web应用设计110。由此,在某些实施方式中,开发者可以是企业分析员而未受过任何在应用开发中使用编程语言的训练。

构建器156的用户界面可以包括编辑器功能和子系统。根据本技术的一个或多个实施方式,编辑器功能可以包括用于修改web应用设计的各个方面或视图的编辑器,和/或辅助web应用设计开发的构建器用户界面。例如,编辑器可以包括企业目标、文档、案例、搜索、报告、页面、角色、应用、工具和过程编辑器。构建器用户界面可以包括新的生成向导、添加顶层菜单、添加工具栏按钮、上下文菜单、生成属性页面和模型编辑器。

过程编辑器包括产生过程定义的功能。过程定义是企业过程的定义,其可以对应于真实世界企业组织的工作流程。换言之,过程定义是基于企业规则或政策精心策划出来并产生特定结果的一组行为或任务。在本技术的一个或多个实施方式中,过程定义中的任务可以由用户或系统通过对企业数据采取某些动作来执行。任务的执行可以是顺序的和/或并行的。在一个或多个实施方式中,过程定义是基于表达的语言形式,并且包括用于执行过程的逻辑。在本技术的一个或多个实施方式中,过程的指令的顺序在过程被执行之前都是未知的。

构建器156还包括从web应用设计110中创建web应用可执行文件158的功能。换言之,根据本技术的一个或多个实施方式,构建器从使用拖拽和放下框架创建的web应用设计中构造用于web应用可执行文件的指令。构建器156可以包括执行生成管理、验证web应用、生成代码以及包装和部署web应用的构件和功能。构建器156还可以包括执行源控制和项目/库管理的构件功能。

转图2,图2示出了根据本技术的一个或多个实施方式的运行时环境200的示意图。如图2所示,运行时环境200包括数据库202、正在执行的父动作流204、动作流引擎206和分段子系统208。下面描述这些构件中的每个构件。

在本技术的一个或多个实施方式中,数据库202是用于存储数据的任意类 型的存储单元和/或设备(例如,文件系统、数据库、表的集合或者任何其他存储机制)。此外,数据库202可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可以是或不是相同的类型或者是或不是位于相同的物理地点。在本技术的一个或多个实施方式中,数据库202包括存储包括默认动作流分段210在内的多个动作流分段(例如,动作流分段X 212、动作流分段Y 214、默认动作流分段210)的功能。每个动作流分段与该动作流分段的唯一标识符相关。唯一标识符可以是动作流分段的任意字母数字的、二进制的或者其他形式的符号标识符。

默认动作流分段210是当没有其它动作流分段应用时使用的动作流分段。在一个或多个实施方式中,默认动作流分段可以被定义为诸如在动作流分段表达218(下面将讨论)中的父动作流的参数。在一个或多个实施方式中,默认动作流分段可以独立于父动作流,或者可以是父动作流的一部分。在一些实施方式中,默认动作流分段是空的。换言之,默认动作流不包括任何步骤,而只是继续执行父动作流。

继续图2,正在执行的父动作流204是包括动作流分段的动作流。换言之,正在执行的父动作流204引用(reference)动作流分段。正在执行的父动作流204包括动作流步骤216和动作流分段表达218。动作流步骤是动作流的步骤,如上面结合图1讨论的那样。

例如,内联(inline)源可以是显示在动作流的一个或多个页面上的图形用户界面工具,在动作流分段中定义的数据项目和任意其他数据源。

动作流分段表达218是用于从动作流分段的组(例如,动作流分段X 212、动作流分段Y 214)中选择一个动作流分段的表达。特别地,动作流分段表达218是关于来自一个或多个数据源的数据的函数,其将数据映射到动作流分段的标识符。动作流分段表达218可以包括对一个或多个数据源的引用并描述要对来自该一个或多个数据源的数据执行的一个或多个操作。数据源可以是内联源(例如,在动作流的一个或多个页面上显示的用户界面工具、动作流分段内定义的数据项目和任何其他数据源),过程或web应用上下文信息(例如,描述环境信息的参数值,诸如会话标识符、用户的用户标识符、正被执行的当前指令的标识符、浏览器信息、各种变量的值以及任何其他描述执行环境和web 应用执行的状态信息),一个或多个数据库,或者上述的组合。动作流分段表达的输出是动作流分段的标识符。

在本技术的一个或多个实施方式中,动作流分段表达可以包括循环表达,由此动作流分段的执行重复直至条件被满足。条件可以例如是基于表达的结果、来自动作流分段的动作流的输出数据、统计值或者另一条件,或者上述的组合。

继续图2,动作流引擎206可操作地连接到正在执行的父动作流204。该连接可以是直接的或间接的。此外,动作流引擎206可以位于执行具有正在执行的父动作流204的浏览器的本地计算机设备上。动作流引擎206可以是硬件、软件、固件或者它们的组合,包括管理正在执行的父动作流204的执行的功能。特别地,动作流引擎206包括维护上下文信息、确定执行用以执行动作流中每一步骤的指令以及确定动作流中下一步骤的功能。

动作流引擎206和正在执行的父动作流204还可操作地连接到分段子系统。分段子系统208可以是硬件、软件、固件或者它们的组合,包括管理基于动作流分段表达218的对动作流分段的选择和执行的功能。特别地,动作流引擎可以包括分段发现器220,其包括基于动作流分段表达218选择动作流分段的功能。

图3示出了根据本技术的一个或多个实施方式的当选择特定动作流分段时的系统的示意图。如图3所示,父动作流302和动作流分段304都具有多个步骤(例如,父动作流步骤306)、动作流分段步骤308。父动作流302包括至少一个父输出控制点310和父输入控制点312。父输出控制点是在性能将处理转交给动作流分段304之后的步骤。父动作流可以包括多个输出控制点,每一个对应于多个独立的步骤。

父输入控制点312对应于处理将从动作流分段304返回的步骤。换言之,当动作流分段的执行完成时,执行将返回给任意父输入控制点。更特别地,父动作流中动作流分段表达的相同实例可以导致控制被返回给不同的父输入控制点。

尽管图3中没有示出,但是动作流分段包括分段输入控制点和分段输出控制点。分段输入控制点是可以从父动作流302开始处理的初始步骤。分段输出 控制点对应于一个步骤,其可以是在控制转交给父动作流之前执行的最后一个步骤。

在本技术的一个或多个实施方式中,映射可以存在于父输出控制点和分段输入控制点之间。类似地,映射可以存在于分段输出控制点和父输入控制点之间。映射例如可以基于控制点的相同唯一部分或者全部标识符,或者可以是基于将输出控制点的标识符映射到输入控制点的表。也可以使用其他映射,这并不背离本技术的范围。在本技术的一个或多个实施方式中,数据结构、输入管理器、其他构件或者它们的组合可以维护和/或执行映射。此外,父输出控制点的数量可以与分段输入控制点的数量不同,并且分段输出控制点的数量可以与父输入控制点的数量不同。

尽管图1-3示出了构件的配置,但也可以使用其他的配置,这并不背离本技术的范围。例如,各种构件可以组合起来创建一个单独的构件。作为另一实施例,单个构件所实现的功能可以由两个或更多个构件来实现。

图4和图5示出了根据本技术的一个或多个实施方式的流程图。尽管按序呈现和描述了这些流程图中的各个步骤,但是本领域的普通技术人员将能够理解,一些或者所有这些步骤可以以不同的次序来执行,可以被组合或被省略,并且一些或者所有这些步骤可以被并行地执行。此外,步骤可以主动或被动地执行。例如,根据本技术的一个或多个实施方式,一些步骤可以使用轮询来实现,或者可以是中断驱动的。借助一个实施例,根据本技术的一个或多个实施方式,确定步骤可能不要求处理器处理指令,除非接收到中断从而意味着条件存在。作为另一个实施例,根据本技术的一个或多个实施方式,确定步骤可以通过执行测试来执行,例如检查数据值以测试该值是否与所测条件一致。

图4示出了根据本技术的一个或多个实施方式的用于生成web应用设计的流程图。在步骤401中,根据本技术的一个或多个实施方式,接收到一个或多个动作流分段定义。特别地,图1所示的开发环境便利化了基于表达的web应用开发。由此,使用开发环境所提供的开发者工具,用户可以将构件拖拽和放入到web应用设计中以定义web应用设计的各种构件。这些构件中的一些构件可以具有已定义的模板和逻辑。在这样的场景中,一旦被拖拽到web应用设计中,用户就可以提交该部件的各种参数的值。例如,用户可以提交唯一 的标识符,任何的引用或者任何其他的信息。

对于动作流和动作流分段,动作流或者动作流分段的一些步骤具有已定义的步骤组并且可以被表示为一个盒子。由此,用户可以只需将该步骤拖拽到web应用设计中,添加一个线性连接器(line connector)来将前序步骤链接到该拖拽步骤之前,以及一个线性连接器来将即将执行的步骤链接到该拖拽步骤之后。用户接着可以定义用于该步骤的一个或多个web页面,或者选择web页面用于该步骤。

在开发者环境中,构建器可以维护web应用设计的内部版本,诸如以描述web应用设计的可扩展标记语言(XML)格式。

由此,接收动作流分段定义可以包括通过开发者环境的图形用户界面接收开发者输入,以及在web应用设计被开发的过程中生成web应用设计的内部版本。在本技术的一个或多个实施方式中,开发者可以生成多个动作流分段定义。此外,根据本技术的一个或多个实施方式,可以从其他动作流或者动作流分段复制一个或多个动作流分段定义。例如,开发者可以使用开发者环境的图形用户界面选择动作流的一部分或动作流分段并将该选择复制给新的定义。开发者可以对所复制的动作流分段定义进行任何进一步的修改。

在步骤403中,根据本技术的一个或多个实施方式,接收一个或多个父动作流定义。接收该一个或多个父动作流定义可以以与上面参考步骤401所讨论的方式相同或者相似的方式来执行。特别地,开发者可以通过如上所述的开发者环境的图形用户界面来提供定义,并且构建器可生成内部版本。作为生成父动作流定义的一部分,开发者可以包括动作流分段表达。换言之,开发者可以在父动作流定义中包括占位符用于动作流分段,并可以使用基于表达的语言来指定动作流分段表达。指定动作流分段表达可以包括定义用于选择动作流分段的一个或多个操作和数据源。开发者还可以定义默认动作流分段定义。步骤401和403可以被执行多次以创建更多的父动作流定义和动作流分段定义。此外,可以执行更多的步骤来创建和接收web应用设计。

在步骤405中,根据本技术的一个或多个实施方式,从web应用设计中生成web应用。在本技术的一个或多个实施方式中,生成web应用包括将web应用的内部版本翻译成计算机编程语言指令组。该生成可以基于用于web 应用设计的每个部分的代码的已定义模板。该模板可以根据web应用设计来安排并且被填充以web应用设计中的参数。

如图4所示,一个或多个实施方式可以允许通过使用web应用构件的拖拽和放下以及基于表达的参数插入的图形用户界面开发环境来重复使用动作流的部分。一旦建立了web应用,就可以执行该web应用。

图5示出了用于执行web应用的动作流的流程图。图5例如可以使用上文参考图2讨论的构件来执行。在步骤501中,开始web应用的执行。例如,用户可以登录到企业系统中,并且web应用可以载入到用户的web浏览器中。

在步骤503中,根据本技术的一个或多个实施方式处理动作流。特别地,控制转交给父动作流,其开始处理父动作流的步骤。处理父动作流可以包括解读该步骤,识别用于执行该步骤的一个或多个web页面,以及引导用户通过执行该web页面中的操作。换言之,一个或多个web页面可以被显示,其接收输入和/或提供信息给用户。特定的web页面可以被映射到步骤。类似的,一个或多个服务器指令可以被映射到每个步骤。

在步骤505中,根据本技术的一个或多个实施方式获得用于动作流分段的表达。换言之,在执行过程中,获得动作流分段表达作为要处理的下一步骤。

在步骤507中,根据本技术的一个或多个实施方式识别动作流分段表达中引用的数据源。在本技术的一个或多个实施方式中,该表达可以引用内联数据源和/或外部数据源。

在步骤509中,根据动作流分段表达从该一个或多个数据源获得数据。例如,可以通过访问内联数据源、标识用户数据的数据库、动作流上下文变量的值、页面内字段的值、其他数据源或者它们的组合来获得数据。

在步骤511中,根据本技术的一个或多个实施方式使用所获得数据执行表达以获得结果。执行该表达可以包括执行该表达中的一个或多个操作。例如,该操作可以包括将来自数据源的数据与一个值相比较,并且当数据符合时选择动作流分段。作为执行表达的结果,获得一个结果。根据本技术的一个或多个实施方式,该结果可以是现有动作流分段的唯一标识符,默认动作流分段的唯一标识符或者一个错误的标识符。

在步骤513中,根据本技术的一个或多个实施方式,决定该结果是否为有 效动作流分段标识符。换言之,决定该结果是否引用有效的动作流分段。

如果结果是有效的动作流分段标识符,则流程进行至步骤515。在步骤515中,根据本技术的一个或多个实施方式获得所标识的动作流分段作为获得分段。换言之,从数据库中获得对应于动作流分段标识符的动作流分段。

如果结果不是有效的动作流分段标识符,则流程进行至步骤517。在步骤517中,获得默认动作流分段作为获得的动作流分段。默认动作流分段可以被定义在父动作流内,其中默认动作流分段是该父动作流中被设置为默认的下一步骤。作为替代,默认动作流分段可以从数据库中获得。

不管是获得了所标识的动作流分段还是获得了默认动作流分段,流程均进行至步骤519。在步骤519中,动作流分段开始执行。根据本技术的一个或多个实施方式,执行可以通过识别与当前父输出控制点相匹配的分段输入控制点来进行。如果匹配基于具有父输出控制点的唯一全部或部分标识符,则选择具有全部或部分该标识符的分段输入控制点。如果匹配基于映射,则访问数据结构以识别映射到该父输出控制点的分段输入控制点。如果匹配基于表达和参数,则可以以与执行动作流分段表达相同或类似的方式来执行表达以获得唯一标识符。

在本技术的一个或多个实施方式中,根据本技术的一个或多个实施方式使用父动作流上下文来执行动作流分段。换言之,进行动作流分段步骤。在执行动作流分段的过程中可以采用不同的路径。此外,可以处理动作流分段,如同动作流分段曾是父动作流的一部分那样。在本技术的一个或多个实施方式中,如果动作流分段表达包括循环表达,则动作流分段的执行重复直至满足条件。换言之,在每次动作流分段执行处,决定是否满足条件。如果条件不满足,则可以重复动作流分段的执行,如果条件满足,则流程可以进行至步骤521。

在步骤521,处理在与分段输出控制点相匹配的父动作流输入控制点处返回到父动作流。换言之,执行返回给父动作流。由于在动作流分段的处理过程中可以采用不同的控制路径,执行返回的位置在动作流分段的处理完成之前可能是未知的。

图6示出了根据本技术的一个或多个实施方式的实施例。在图6所示实施例中,示出了两个动作流(即,存入文件动作流602、保存文件动作流604) 和一个动作流分段606。动作流(即,存入文件动作流602、保存文件动作流604)分别具有定义好的开始(即,开始608、开始610)和完成(例如,完成612、完成614)。

存入文件父动作流602是用于引导用户了解存入一个或多个文件的向导的动作流。特别地,存入文件父动作流包括:用于显示页面以选择要存入的文件的步骤616;用于添加要与文件一起存储在数据库中的属性的步骤618;用于执行动作流分段表达的步骤620;用于确定另一未处理文件是否在所选文件的集合中的步骤622;以及用于令服务器执行存入的步骤624。用于显示页面以选择要存入的文件的步骤616和用于添加要与文件一起存储在数据库中的属性的步骤618可以对应于步骤中没有明确定义的单独不同的页面或页面集合。例如,页面可以由步骤诸如借由标识符来引用。用于执行动作流分段表达的步骤620可以针对分段引擎来定义以在客户端上或者由服务器来执行。用于确定另一未处理文件是否在所选文件的集合中的步骤622和用于令服务器执行存入的步骤624可以是使客户端和/或服务器进行处理。

保存文件父动作流604是用于引导用户将之前选择的文件保存到企业数据库的向导的动作流。特别地,保存文件父动作流包括:用于添加要与文件一起存储在数据库中的属性的步骤626;用于执行动作流分段表达的步骤620;以及用于保存文件的步骤。用于添加要与文件一起存储在数据库中的属性的步骤626可以对应于没有在步骤中明确定义的一个或多个页面。例如,页面可以由步骤诸如借由标识符来引用。用于执行动作流分段表达的步骤620可以针对分段引擎来定义以在客户端上或者由服务器来执行。用于令服务器执行保存的步骤630可以是使客户端和/或服务器进行处理。

如实施例中所示,存入文件父动作流602和保存文件父动作流604都可以具有动作流分段表达。在实施例中,考虑如下场景:对于用户具有适当证书的任意图像文件,web应用设计者想要给予用户在将图像文件存储在企业数据库中时诸如为了发布目的将图像转换为不同尺寸和文件格式的选项。

并非在存入文件父动作流602和保存文件父动作流604的两个步骤中都单独包括图像转化步骤,而是这两个动作流各自具有一个用于执行动作流分段表达以检查图像文件和用户证书的步骤。特别地,执行表达确定当前文件是否为 图像文件,访问上下文信息以获得用户身份,访问服务器以获得用户身份的证书,并且如果用户有授权且文件是图像文件,则将处理导向转换图像动作流分段606。如果用户未经授权或者文件不是图像文件,则表达默认为继续父处理。

转换图像动作流分段606具有输入控制点632。从该输入控制点开始,转换图像动作流分段606具有用于显示页面以呈现执行图像转换的选项的步骤634,用于确定是否选择图像转换的步骤636,用于当未选择图像转换时的输出控制点638,用于显示页面以呈现和接收可选的转换的步骤640,用于执行选择的图像转换的步骤642,用于确定是否选择了另一转换的步骤644,其将执行返回给前一步骤642或者当执行完成646时给输出控制点。由此,转换图像动作流分段606可以在运行时结合到任一将图像文件存储到企业数据库中的父动作流。如实施例中所示,一个或多个实施方式提供了比程序指令更高的重复使用级别。此外,一个或多个实施方式通过允许在多个动作流中使用动作流分段,而允许重复使用web应用设计的全部部分。

本技术的实施方式可以在计算机系统上实现。可以使用移动、台式、服务器、嵌入或者其他类型的硬件的任意组合。例如,如图7所示,计算机系统700可以包括一个或多个计算机处理器702,相关联的存储器704(例如,随机存取存储器(RAM)、缓存存储器、闪存存储器等),一个或多个存储设备706(例如,硬盘、光驱诸如压缩光盘(CD)驱动器或者数字通用磁盘(DVD)驱动器、闪存棒等)以及多个其他元素和功能。计算机处理器702可以是用于处理指令的集成电路。例如,计算机处理器可以是处理器的一个或多个内核或者微内核。计算机系统700还可以包括一个或多个输入设备710,诸如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔或者任意其他类型的输入设备。此外,计算机系统700可以包括一个或多个输出设备708,诸如屏幕(例如,液晶显示器(LCD)、等离子显示器、触摸屏、阴极射线管(CRT)监视器、投影仪或者其他显示设备)、打印机、外部存储器或者任意其他类型的输出设备。一个或多个输出设备可以是与输入设备相同或者不同的。计算机系统700可以经由网络接口连接(未示出)连接到网络712(例如,局域网(LAN)、广域网(WAN)诸如因特网、移动网络、或者任意其他类型的网络)。输入和输出设备可以本地地或者远程地(例如,经由网络712)连接到计算机处理器702、 存储器704和存储设备706。存在很多不同类型的计算机系统,并且前述的输入和输出设备可以采取其他形式。

用于执行本技术的实施方式的采用计算机可读程序代码形式的软件指令可以被整体或者部分地、临时或者永久地存储在诸如CD、DVD、存储设备、磁碟、磁带、闪存、物理存储器之类的非临时性计算机可读介质或者任意其他计算机可读存储介质上。具体地,软件指令可以对应于当由处理器执行时配置为执行本技术的实施方式的计算机可读程序代码。

此外,前述的计算机系统700的一个或多个元素可以位于远程位置并且经由网络712连接到其他元素。此外,本技术的实施方式可以在具有多个节点的分布式系统上实现,其中本技术的每个部分可以位于该分布式系统内的不同节点上。在本技术的一个实施方式中,节点对应于分立计算机设备。作为替代,节点对应于具有相关联的物理存储器的计算机处理器。节点可以可替代地对应于计算机处理器或者具有共享存储器和/或资源的计算机处理器的微内核。

尽管已经结合有限数量的实施方式描述了本技术,但是受益于本公开的本领域普通技术人员将理解,可以设想其他实施方式而不偏离此处公开的本技术的范围。因此,本技术的范围应当仅由所附权利要求来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1