用于使用控件来配置通用程序的技术的制作方法

文档序号:14394571阅读:183来源:国知局



背景技术:

诸如数据流图等的可执行程序可以包括用于配置程序的执行方面的一个或多个参数。例如,读取数据文件的程序可以包括可被供给值以指示存储数据文件的位置的参数。在执行程序之前,可以供给该参数的值,以便访问指定位置来读取数据文件。在用户通过在第二次执行程序时供给参数的不同值来读取不同数据文件的情况下,再次执行相同的程序。

一些可执行程序可被编写成通用地指定任务,然后通过“参数化”来进行配置以针对给定场景进行该任务。对程序进行“参数化”需要向与该场景相对应的程序供给参数的值。这样的程序有时被称为“通用程序”。例如,用于对数据文件进行排序的通用程序可以按输入文件位置、输出文件位置、数据的记录格式以及排序关键字来进行参数化。通过针对这些参数供给合适的值,可以在期望对数据进行排序并且将结果保存到文件的任何情况下执行通用程序。

通用程序可以通过用户界面的使用来进行参数化,其中该用户界面使得用户能够为通用程序的参数指定适当的值。在一些情况下,使通用程序参数化的用户可以与编写该通用程序的用户不同。例如,创建通用程序可能比选择参数以执行通用程序需要更高级别的技术技能。



技术实现要素:

根据一些方面,提供一种操作数据处理系统的方法,其中经由至少部分地根据所记录的配置模板而定义的用户界面来配置至少一个计算机程序,所述数据处理系统包括执行时间数据和多个配置控件,所述多个配置控件至少包括第一配置控件和第二配置控件,所述第一配置控件和所述第二配置控件至少包括用户界面部分和操作部分,所述方法包括:通过以下操作动态地生成所述用户界面以使得用户能够配置所述至少一个计算机程序的实例:根据所述配置模板,基于所述第一配置控件的用户界面部分来渲染第一用户界面;经由所述第一用户界面来接收第一用户输入,所述第一用户输入提供所述至少一个计算机程序的所述实例所用的配置信息;至少部分地基于所述配置模板并且至少部分地基于对所述第一配置控件的操作部分中的至少一部分的评价来识别所述第二配置控件,所述评价至少部分地基于所述执行时间数据;基于所识别出的第二配置控件的用户界面部分来渲染第二用户界面;以及经由所述第二用户界面来接收第二用户输入,所述第二用户输入提供所述至少一个计算机程序的所述实例所用的配置信息。

根据一些方面,提供一种创建配置模板的方法,其中所述配置模板至少部分地定义界面使得用户能够配置至少一个计算机程序的实例,所述方法包括:利用计算系统并且至少部分地基于用户输入,使第一配置控件与所述界面相关联,所述第一配置控件至少包括操作部分以及定义第一用户界面的用户界面部分,所述第一配置控件被配置为至少部分地基于经由所述第一用户界面所接收到的用户输入来定义所述至少一个计算机程序所用的配置信息;使第二配置控件与所述界面相关联,所述第二配置控件至少包括操作部分以及定义第二用户界面的用户界面部分,所述第二配置控件被配置为至少部分地基于经由所述第二用户界面所接收到的用户输入来定义所述至少一个计算机程序所用的配置信息;以及记录用于至少部分地基于执行时间数据来定义至少一个实例的数据,其中在所述至少一个实例中,经由所述第一用户界面所接收到的用户输入将导致对所述第二用户界面的渲染。

根据一些方面,提供一种计算机可读介质,其包括被执行时使计算机进行配置计算机程序的方法的指令,所述方法包括:基于经由第一用户界面所接收到的信息来记录所述计算机程序,所述计算机程序接受一个或多个配置参数;记录配置模板,所述配置模板至少部分地定义界面使得用户能够配置所述计算机程序的实例,其中记录所述配置模板是基于经由第二用户界面所接收到的信息并通过以下操作而进行的:选择多个配置控件,各配置控件包括用户界面元素,记录所选择的配置控件的用户界面元素与所述一个或多个配置参数中的配置参数之间的映射,以及记录对所述多个配置控件中的至少一部分的用户界面元素进行渲染的条件顺序;以及通过以下操作动态地生成配置用户界面,以使得用户能够配置所述计算机程序的实例:渲染所述配置用户界面中的与所述多个配置控件中的第一配置控件相关联的用户界面元素,经由所述第一配置控件的用户界面元素来接收用户输入,以及至少部分地基于所述用户输入和所述映射来存储至少一个配置参数的值,并且基于所述多个配置控件中的第二配置控件的用户界面元素来修改所述配置用户界面,所述第二配置控件是至少部分地基于所述用户输入而选择的。

以上是本发明的由所附权利要求书所限定的非限制性发明内容。

附图说明

将参考下图来说明各个方面和实施例。应当理解,这些图不必按比例绘制。在附图中,各个图中所示出的每个相同的或几乎相同的组件由相同的附图标记来表示。为了清楚起见,并不是在每个附图中标记每个组件。

图1描绘了根据一些实施例的用于使用一个或多个配置控件来配置通用程序的例示性处理;

图2描绘了根据一些实施例的配置控件的例示性组件;

图3a~3b描绘了根据一些实施例的条件选择的序列中的配置控件的例示性使用;

图4是示出根据一些实施例的数据流图的配置的功能框图;

图5描绘了根据一些实施例的元数据存储库中所存储的配置控件和通用数据流图;

图6描绘了用户根据这里描述的技术来配置通用程序的例示性开发处理;以及

图7示出可以实现本发明的方面的计算系统环境的示例。

具体实施方式

发明人已经认识到并理解,复杂程序所控制的数据处理系统和其它系统的效率可以通过用以简化这些复杂程序的参数化的技术来改进。这种效率可以通过如下的技术来实现,其中该技术使得具有不同技能组合的不同人能够在不同时间提供不同类型的输入。熟练的编程人员例如可以定义将执行程序的计算机化系统和一个或多个数据存储之间的交互。这些交互可以被捕获为通用程序。为了使通用程序在企业内充分有用,熟悉业务需求的另一用户(诸如业务分析师)可以指定在程序的执行中所使用的参数的值。例如,业务分析师可以指定参数的值,诸如访问哪个(些)数据源、访问数据源内的哪些字段、如何对从数据源所访问的数据进行排序、和/或关于数据所要进行的一个或多个变换。

然而,业务分析师可能缺乏详细的编程知识,这些编程知识将以其它方式使得业务分析师能够编写程序以实现期望的业务逻辑。因此,在一些场景中,编程人员能够以通用的方式编写程序,使得该程序可以在多个场景的任一场景中工作。该程序可以具有多个配置参数,使得在针对配置参数指定了值的情况下,程序以其它方式执行以进行针对特定场景定制的操作。例如,可以基于指定数据源位置的参数的值来访问适当的数据源。

业务分析师或程序的其他用户可以诸如通过访问合适的用户界面来指定针对给定场景的配置参数的值。以这种方式,业务分析师或者可能不熟悉编程的其他人员可以针对特定的业务场景来配置程序。在一些实施例中,可以定义程序的模板以使得业务分析师能够容易地输入配置参数的值。该模板可以由熟悉通用程序的详情的编程人员来创建,并且可以供给用户(例如,业务分析师)所输入的值和程序的参数之间的映射。为了辅助业务分析师输入值以采用期望的方式来控制程序,模板可以包含指示各参数所控制的内容的信息,使得业务分析师无需详细的程序操作知识来提供用于配置程序以进行期望功能的参数的值。模板的这些方面和/或其它方面可以经由用户界面被呈现给业务分析师,其中该用户界面可以至少部分地由模板定义。

为了简化模板的生成并提供分析师提供配置参数的值可以经由的更直观界面,模板可以基于单独定义的配置控件来动态地生成被呈现给分析师的界面的方面。配置控件可以例如由编程人员定义。可选地,一组配置控件可以包括预定义控件和/或定制控件。在一些实施例中,例如,模板可以动态地向用户呈现用户界面元素。各用户界面元素可以与配置控件相关联,其中该配置控件将用户经由界面输入的一个或多个值与程序的配置参数相关联。在一些实施例中,一组配置控件可以包含预定义控件,使得可以通过选择一组预定义控件来生成用于组织用户输入以配置程序的“模板”。

如这里所使用的,配置控件可以是指一组指令或其它信息,其中该组指令或其它信息在被调用的情况下控制计算机的执行。可以在不依赖于与配置控件可用于配置的程序有关的信息的情况下对这些配置控件进行编程。这些配置控件可以是可重复使用的,使得可定义针对不同通用程序的不同配置处理的不同模板可以在不同场景中使用相同的控件。可以频繁地进行特定配置活动(例如,选择文件),并且相应地,可以定义“公共的”配置控件(或者简称为“公共控件”)以使得这些配置控件可以在要进行关联配置活动的任何合适场景中使用。以这种方式,公共控件可以使模板所定义的配置处理的至少一部分的定义模块化。

根据一些实施例,配置数据可以与配置控件相结合地使用,以使得能够配置通用程序,尽管使用配置控件来配置通用程序可能引起复杂性。例如,适于通用程序的一个参数的值的范围可以取决于针对该程序的一个或多个其它参数所指定的值。同样,需要其值来配置程序的参数可以取决于针对其它参数所指定的值。例如,通用程序可以读取数据文件,然后使用数据来进行动作。通用程序可被配置为使数据文件位置参数化,但是使用与数据文件的其它方面(诸如平面文件的记录格式、xml文档的模式等)相关的固定的一组参数可以限制如何配置程序以供执行。例如,提供用于指定记录格式的参数在数据文件是平面文件的情况下可以是必要的,而在数据文件是xml文档的情况下可以是不相关的、甚至是不正确的。作为另一示例,与指定数据源的参数的值表示具有10个数据字段的数据源的情况相比,指定针对各记录具有三个字段的数据源可能得到针对指定操作字段的参数的可能值的不同范围。可选地,如果参数的值表示程序应该绕过该程序的将结果与所存储的数据进行比较的一部分,则可能没有理由请求指定所存储数据的源的用户输入。

因此,与指定生成获得配置参数的值所经由的用户界面中所使用的一组配置控件相结合地,可以记录配置数据。该配置数据可以表示诸如使用哪些配置控件来请求输入参数的值等的事项、以及/或者可以指定使用这些配置控件来请求输入参数的值的顺序。该执行顺序可以是条件性的,并且可以基于从用户接收到的输入,诸如先前经由其它配置控件所接收到的配置参数的值。同样,可以基于先前接收到的值来配置用户界面元素。

根据一些实施例,配置控件可以基于执行时间数据来评价一个或多个参数、变量、自变量,并且/或者执行一个或多个程序。向用户呈现配置控件的数据处理系统可以包括在执行时间(例如,通过环境参数、数据文件和/或可执行程序)定义的数据,并且配置控件可以被配置为基于这种执行时间数据来评价一个或多个参数、变量、自变量,并且/或者执行一个或多个程序。各配置控件可以具有自己的范围,使得在配置控件的一个实例中所评价的命名参数与在相同配置控件的另一实例中评价的相同命名参数相比,可以评价为不同的结果。例如,配置控件可以包括值被表示为环境变量的函数的配置参数。在配置控件评价该配置参数的情况下,该配置控件确定环境变量的当前值并且相应地评价配置参数。如果后续在相同配置处理的不同部分(即,在配置相同通用程序的相同实例时)使用相同配置控件,则各种情况下的配置参数可以在自己的范围内进行评价,因此在各种情况下可以评价为不同的值。配置参数可以表示为相同配置控件内的其它参数、以及/或者配置模板内的其它参数的函数。

因此,这里描述的技术的方面涉及可以组合以产生配置界面的配置控件的使用。发明人已经认识到,可以通过使用配置控件构建界面来高效地提供用于配置通用程序的动态界面,其中配置控件除操作逻辑以外还可以提供界面元素。操作逻辑可以包括静态或动态(例如,可执行)的代码,其中该代码在被评价时可以确定如何呈现和/或适配配置界面。这些适配可以例如涉及对配置界面所呈现的用户界面进行初始化和/或更新。可选地或附加地,这些适配可以包括诸如验证由用户提供给配置界面的输入等的其它任务。

此外,用户输入至配置控件的值可以基于该控件所提供的上下文而映射到通用程序的适当参数。这种映射可以由“适配器”指定,其中该“适配器”将经由配置控件的用户界面元素所收集的值链接至通用程序的特定参数。如以上所讨论的,“公共”配置控件可以表示针对一系列程序配置任务具有广泛适用性的可重复使用的界面组件,并且适配器可以支持这种使用。然而,不要求配置控件都是通用的或可重复使用的,这是因为一些实施例可以利用进行固定功能的配置控件。

作为例示性示例,可以利用与提供文件选择界面的用户界面元素相关联的配置控件来生成用以配置通用程序的界面。可以利用附加配置控件,其中这些附加配置控件提供针对与选择文件(诸如记录格式的选择以及所选择文件的xml模式的选择)相关联的任务的界面。用户可以使用第一配置控件的用户界面元素来选择文件,其中该第一配置控件继而执行基于用户输入确定所选择的文件的类型的逻辑。基于文件的类型,可以选择、然后呈现附加配置控件其中之一,使得用户可以根据文件类型提供进一步的配置信息(例如,在平面文件的情况下选择记录格式、或者在xml文档的情况下选择xml模式)。以这种方式,可以使用动态选择的参数值的集合来配置通用程序,其中该集合在用户可以如何配置通用程序方面提供了更大的灵活性。

根据一些实施例,配置控件可以至少部分地指定要呈现在用户界面内的后续配置控件。例如,在以上示例中,文件选择配置控件可以识别被呈现给用户以选择记录格式的配置控件。初始配置控件可例如执行用于识别所要呈现的后续配置控件的逻辑(或者使得该逻辑被执行)。配置控件的基于动态确定的条件的这种识别可以以任何合适的方式(诸如通过访问查找文件、执行程序等)进行,以便识别后续配置控件。

在一些实施例中,可以结合程序来提供“向导”。向导可以是通过选择配置控件的序列来生成用户界面的程序。向导可以在显示器或其它用户界面机构上连续地呈现至少部分经由所选择的配置控件所定义的页面。向导可以利用配置数据进行编码或者可以访问配置数据,其中向导在被执行时可以根据这些配置数据来动态地确定所选择控件的执行顺序。页面的顺序可以在被呈现给用户之前进行选择,以及/或者可以基于序列的呈现期间可能发生的用户输入或其它事件动态地进行选择。例如,页面的顺序可以取决于经由用户界面所接收到的值。同样,可以基于所接收到的值来定制用户界面元素。根据一些实施例,配置控件可以至少部分地基于向导所执行的逻辑、以及被提供给向导正呈现的配置控件的输入来进行选择。例如,向导可以在用户界面中(例如,采用方向按钮的形式)提供导航元素,其在被用户启动的情况下执行用于基于所启动的导航元素以及被提供至向导正呈现的配置控件的输入来识别配置控件的逻辑。这样可以例如使得向导能够连续呈现基于先前呈现的配置控件所执行的逻辑而选择的配置控件。向导可以包括该向导所定义的任何数量的配置控件和/或任何数量的其它控件。

根据一些实施例,向导可以基于该向导所定义的任何数量的配置控件和/或任何数量的其它控件,来呈现配置界面。例如,向导可以呈现配置控件所定义的用户界面的一部分、以及用于在配置界面上提供导航元素的附加用户界面元素,其中这些导航元素在被用户启动的情况下使得该用户能够经由向导所呈现的页面的序列而前进和/或后退。这些导航元素可以由用户以不同于配置控件的元素的呈现的方式进行呈现。此外,用户可以与这些呈现的元素(例如,导航元素)进行交互以除了由所呈现的配置控件提供的功能以外还进行附加的功能。

以下是使用动态选择的配置控件来配置通用程序的各种相关概念和实施例的更详细说明。应当理解,这里描述的各个方面能够以多种方式中的任一方式实现。这里仅为了例示性目的而提供特定实现的示例。另外,以下的实施例中所描述的各个方面可以单独地或者以任何组合使用,并且不限于这里明确说明的组合。如这里描述的配置控件可以包括如2014年2月27日提交的、标题为“compoundcontrols”的美国专利申请14/192,184中所描述的“复合控件”,上述文献通过引用而并入于此。

如以上所讨论的,可以使用配置控件来动态地生成用以配置通用程序的界面。图1示意性地示出根据一些实施例的用户使用具有用户界面的系统所呈现的一个或多个配置控件来配置通用程序的处理。方法100中的配置控件的选择和呈现可以由一个或多个系统进行,其中用户可以经由用户命令、动作等来与这一个或多个系统进行交互。

在方法100中,从一组配置控件110中选择配置控件并将该配置控件呈现给用户,以使计算系统呈现用户130配置通用程序140可以经由的用户界面。合适的系统可以完全或部分地基于以下要说明的配置模板150所提供的逻辑来从该组配置控件110中选择配置控件。如这里所使用的,配置控件的“呈现”可以包括基于该配置控件来向用户渲染(render)用户界面120的全部或部分。

用户可以与渲染的用户界面进行交互以提供通用程序的配置信息。基于配置模板150来确定配置控件的选择,其中如以上所讨论的,配置模板150先前可能已经(例如,由技术用户)定义好了,从而使得通用程序的配置对用户(例如,业务用户)而言更容易。配置模板可以定义要用于配置通用程序140的控件的序列,其中该序列可以包括配置控件110中的一个或多个。可以基于配置模板、被提供至当前选择的配置控件和/或其它配置控件的用户输入、一个或多个查找文件、任何其它合适因素、或它们的组合来动态地进行配置控件的选择。

在图1的实例中,一组配置控件110可用于动态地生成用以配置通用程序的界面。这些配置控件可以包括用户界面部分和操作部分。配置控件的用户界面部分可以以任何合适的方式定义执行控制的计算机系统在呈现配置控件时将如何渲染用户界面。操作部分可以与一个或多个参数、变量或自变量、以及/或者针对用户界面或其它提供功能的一个或多个程序相关联。这种关联可以为通过在操作部分内包括这些方面(例如,参数)以及/或者通过链接至存储在其它各处的参数。例如,操作部分可以包括指向程序的指针(或者可以包括程序本身),其中该程序被配置为对输入到渲染的配置控件用户界面中的数据进行验证。以下关于图2进一步详细讨论了配置控件的用户界面部分和操作部分。

在方法100的动作101中,与用户130进行交互的计算系统基于当前选择的配置控件的用户界面部分来渲染用户界面。用户界面可以包括任何数量的任何类型的用户界面元素,诸如但不限于文本框、按钮、滑块、列表框、下拉列表、菜单、工具栏、图标、树视图、标签等。如本领域已知的,计算系统可以在显示器上渲染这些元素的图形表示。用户可以提供与所显示元素相关的一个或多个输入(诸如鼠标移动、鼠标点击、键击等)使得计算机系统将使用户输入与通过对控件进行编程所定义的特定含义相关联。用户界面元素以及如何渲染这些用户界面元素(例如,它们的布局)可以由当前选择的配置控件的用户界面部分以任何合适的方式定义。

根据一些实施例,渲染的配置控件用户界面120中的一个或多个用户界面元素可以至少部分地基于当前选择的配置控件的操作部分而填充有数据。例如,操作部分可以定义渲染的配置控件的一个或多个用户界面元素内的可选择的值。这些值可以是与配置控件一起存储的静态值,以及/或者可以(例如,通过执行一个或多个程序或以其它方式执行配置控件的操作部分的逻辑)动态地确定。因此,渲染的配置控件用户界面120的视觉界面外观(lookandfeel)可以由当前选择的配置控件的用户界面部分来定义,而渲染的配置控件用户界面内的可选择的至少一些数据值可以通过对当前选择的配置控件的操作部分进行编程来定义。

根据一些实施例,配置控件的操作部分可以确定该配置控件的渲染的用户界面的初始行为,以及/或者可以确定渲染的用户界面的反应性行为。初始行为可以包括定义渲染的配置控件的一个或多个用户界面元素内的可选择的值,如上所述。例如,呈现配置控件的系统可以基于该配置控件的操作部分来定义该配置控件的用户界面元素的可选择值。反应性行为可以包括如下操作:更新用于渲染的用户界面120的一个或多个用户界面元素内的选择的值、进行有效性检查、填充用户界面的字段、显示和/或隐藏用户界面元素等,其中这些操作中的任意操作可以至少部分地基于被提供至渲染的用户界面的用户输入102。例如,渲染的配置控件可以包括用以选择文件的用户界面元素。一旦选择了该文件,则可以执行配置控件的操作部分的程序,其中该程序检查文件是可读取的、路径是有效的,并且产生文件内容的预览以显示在配置控件的另一用户界面元素中。在一些情况下,当用户与渲染的配置控件进行交互时(例如,如果用户届时在以上示例中选择不同的文件),可以对与配置控件的操作部分相关联的参数和/或可执行代码(其可以是静态的和/或动态的)进行多次评价。

系统可以确定要应用于正基于用户输入102进行配置的通用程序140的配置值。例如,用户可以经由一个或多个用户界面元素来输入值。可以直接使用这些值来填充通用程序140的参数,诸如通过将用户键入的值赋给这些参数的方式。可选地或附加地,用户可以与诸如按钮或滑块等的具有隐含值的用户界面元素进行交互,其中这些隐含值被赋给通用程序140的参数。可选地,在向通用程序供给这些值之前,可以基于当前渲染的配置控件的操作部分来修改这些值。

根据一些实施例,适配器可以在经由用户输入提供给当前渲染的配置控件用户界面的值和通用程序的参数之间提供映射。适配器可例如由技术用户结合配置模板来定义,其中该技术用户还定义了自己的配置模板。适配器可例如被存储为通用程序140的一部分、被存储为配置模板150的一部分、以及/或者可以被存储为图中未示出的单独组件。适配器可允许针对配置处理的不同方面而重复使用相同的配置控件,这是因为适配器可以在配置期间配置控件的各次使用时将相同配置控件的两个副本内的相同参数映射到通用程序的不同参数。因此,适配器可一般结合配置模板来定义,这是因为利用配置模板识别的配置控件对适配器利用配置控件定义正配置的通用程序的参数的值的方式具有依赖性。

作为适配器的使用的一个非限制性示例,正呈现的配置控件可以针对其用户界面内的数据字段使用第一参数名,而该值将映射到具有不同参数名的通用程序内的参数。适配器可能已被配置为使得该适配器在用户提供配置控件的第一参数的值的情况下,将该值映射到通用程序的参数。以这种方式,适配器可允许针对配置处理的不同方面而重复使用相同的配置控件,这是因为适配器可以在配置期间配置控件的各次使用时将相同配置控件的两个副本内的相同参数映射到通用程序的不同参数。

在动作104中,从配置控件110中选择其它配置控件以供呈现。所选择的配置控件可以是与先前呈现(即,如上所述通过渲染配置控件的用户界面所呈现)的配置控件相同的配置控件,或者可以是不同的配置控件。配置模板150和/或初始配置控件可以至少部分地确定选择哪个配置控件以供呈现。配置模板可以指示出要呈现的配置控件的有序序列,以及/或者可以包括用于动态确定要呈现的配置控件的逻辑。附加地或可选地,可以至少部分地基于初始呈现的配置控件的操作部分的方面来选择所呈现的配置控件。根据一些实施例,配置控件可以包括用于识别要呈现的后续配置控件的参数。这种参数可以是静态的(例如,以固定值与配置控件存储在一起)或动态的(例如,可以执行得到用于识别要呈现的后续配置控件的值的逻辑)。动态参数可以至少部分地通过访问查找文件来执行这种逻辑,其中该查找文件可以例如利用配置模板150来定义、以及/或者与配置模板150一起存储。

根据一些实施例,选择配置控件以供呈现可以基于经由用户输入而被提供至先前渲染的任意数量的配置控件的数据。作为示例,可以呈现第一配置控件,其中用户提供输入以选择数据文件。配置模板和/或第一配置控件内的可执行逻辑然后可以基于所提供的输入(例如,基于文件系统中的文件位置、基于文件类型、其扩展等)来识别要呈现的第二配置控件。

根据一些实施例,配置控件可以包括基于配置模板150所定义的一个或多个值。配置控件可以包括对配置模板所要定义的值的一个或多个引用,其中这些引用基于使用中的配置模板而解析为所述值。例如,多个配置控件可以包括以相同方式被定义为具有参数“company_name”(并且该参数可例如被显示在基于这些配置控件中的任意配置控件而渲染的用户界面内)的值的参数。通过在配置模板内定义“company_name”的值,各配置控件在用于渲染用户界面的情况下可以在用户界面中显示该值。这可以例如通过将配置模板中所定义的“company_name”的值传递给值取决于配置控件内的“company_name”的参数来进行。

如以上所讨论的,定义配置处理的信息可被存储、然后被系统访问以选择配置处理的各阶段的控件,并且可以在所选择的控件被使用时提供所使用的数据值,诸如以改变显示元素中所呈现的选项或者改变用户输入更改处理的方式。在一些实施例中,该信息可被存储为“模板”。配置模板可以被开发用于正配置的特定通用程序140。例如,定义通用程序140的编程人员还可以定义配置模板150,使得配置该通用程序的业务分析师可以利用配置模板所定义的控件(包括任何数量的配置控件)来提供通用程序所用的配置信息。如以上所讨论的,配置模板可以包括用以基于一个或多个因素来动态确定配置控件的逻辑,以及/或者可以与该逻辑相关联。因此,可以向用户呈现动态生成的用于配置通用程序的界面。

根据一些实施例,系统可以访问用以识别要呈现的后续配置控件的一个或多个查找文件,这可以例如基于配置模板和/或另一配置控件(例如,当前正呈现的一个配置控件)内所提供的数据来进行。查找文件可以包括任何数量的索引,使得配置模板可以针对查找提供一个或多个值、并且作为响应而接收后续要呈现的配置控件的指示。例如,在用户向第一个呈现的配置控件提供文件名的情况下,可以使用该文件名、文件名的一些方面(例如,扩展)和/或从文件名得到的信息(例如,文件类型、文件的大小等)来进行一个或多个查找文件的查找。查找的结果可以识别要呈现的后续配置控件。使用一个或多个查找来识别配置控件以供呈现,这可以具有如下的优点,即:用以进行这种识别的逻辑可以与配置模板分开存储。例如,配置模板可以与用于在配置处理期间指示识别配置控件的逻辑的一个或多个查找文件相关联,因此,可以不修改配置模板、而是仅通过修改查找文件内的值来改变逻辑。

一旦用户经由所呈现的配置控件而已经提供了合适的配置信息,则可以以任何合适的方式提供应该识别新的配置控件的指示。根据一些实施例,可以渲染用于指示通用程序的配置处理中的步骤的用户界面元素,以使得用户可以通过启动该元素来进入后续步骤和/或返回前一步骤。例如,在经由向导呈现配置控件的情况下,该向导可以呈现配置控件、并另外提供用以通过配置处理向前和向后移动的按钮。在用户启动“向前”按钮的情况下,系统可以经由这里讨论的技术通过执行用以识别另一配置控件的逻辑来作出响应、并且呈现配置控件。可选地,可以在启动按钮之前执行逻辑,使得一旦按钮启动,则系统可以立即呈现后续的配置控件。

图2描绘了根据一些实施例的配置控件的例示性组件。如以上所讨论的,配置控件(包括公共控件)可以包括用户界面部分和操作部分。应当理解,尽管图2以图形方式示出这些部分,但这些部分在被执行或以其它方式评价时可以通过计算机可执行指令和数据、或者要获得数据的位置的指示来实现。在图2的示例中,配置控件210包括用户界面部分220和操作部分230。用户界面部分220定义了分别为文本框、下拉列表和一对单选按钮的三个例示性用户界面元素221、222和223。如以上所讨论的,配置控件的用户界面部分所定义的用户界面元素可以在用户界面内进行渲染并显示给用户,其中该用户可以向这些元素中的一个或多个元素提供用户输入。这些用户界面元素的值和通用程序的参数之间的关联可能先前已经(例如,经由如以上所讨论的适配器)建立好了。结果,通过向用户界面元素221、222和223提供用户输入,用户可以向通用程序提供配置信息。

在图2的示例中,操作部分230定义一个或多个参数231,并且与一个或多个程序232相关联。如以上所讨论的,一般而言,配置控件的操作部分可以包括任何数量的参数和/或程序(包括这些类型的元素中的零个或任一个)。程序232可以包括诸如但不限于脚本、声明语句和/或表达式、数据流图和/或数据流子图等的任何可执行逻辑,并且配置控件210的操作部分230可以使用配置控件存储任何数量的这种程序、以及/或者可以包括指向任何数量的这种程序的指针。在配置控件210由合适的应用呈现的情况下,程序232中的任何一个或多个可以在该应用内执行、或者作为单独的处理来执行,这是因为本发明不限于可执行逻辑可以作为配置控件的一部分来执行的任何特定方法。例如,程序232可以包括呈现配置控件210的应用所要执行的表达式。

根据一些实施例,程序232可以包括可执行逻辑,其中该可执行逻辑检查针对渲染的配置控件用户界面的一个或多个用户界面元素的用户输入的有效性。例如,用户界面元素可以诸如通过限制可以有效输入的值的范围、或者通过限制可以输入的字符的类型(例如,针对文件路径值禁止空格),来对可以输入的数据的类型有所限制。程序232可由此包括以下可执行逻辑,该可执行逻辑响应于针对渲染的配置控件用户界面的用户输入,而确定用户界面的一个或多个用户界面元素的内容的有效性。在内容被确定为无效的情况下,可以向用户界面提供指示以在视觉上或以其它方式关于无效内容警告用户。在一些情况下,操作部分230中存在的可执行逻辑可以产生消息以辅助用户提供有效内容,并将该消息提供给用户界面以呈现给用户。

操作部分230可以定义一个或多个参数231。参数定义可以包括例如参数名的列表,并且在一些情况下包括这些参数的默认值。参数231可以包括程序232内的任何数量的静态参数和/或基于参数表达式内可以包括的可执行逻辑而动态确定值的参数,并且/或者可以从另一位置获得。根据一些实施例,参数231包括利用解释型参数定义语言表达的一个或多个参数。可以在呈现配置控件210时或者以其它方式评价这些参数表达式,使得该语句解析为参数值。例如,可以定义参数,使得该参数在存在特定数据文件的情况下评价为“a”、并且在不存在数据文件的情况下评价为“b”。

参数231可以包括程序232的任何可执行逻辑所利用的值。这些变量可以使得与配置控件210相关联的可执行逻辑能够在其它配置控件中重复使用,这是因为改变值或者这些变量中的一个或多个可以由此改变相同可执行逻辑的行为。例如,两个不同配置控件可以经由其各自的操作部分与相同程序相关联。程序在操作中可以(例如,通过引用参数名来)引用相应配置控件的参数值。通过在两个配置控件中的各配置控件中利用参数的不同值,即使正在执行相同的程序,该程序的行为在各种情况下也可以不同。因此,可以在配置控件的操作部分的上下文中使用通用程序。

作为非限制性示例,可执行逻辑可以检查文件名的扩展是否符合期望文件扩展(例如“.txt”、“.dat”等),并且可以被编写为对照表达为参数的期望文件扩展来检查文件名。因此参数231可以包括期望文件扩展的参数,使得可执行逻辑将会把经由用户输入而被提供给渲染的配置控件用户界面的文件名与参数值进行比较。因此,两个配置控件可以使用相同的可执行逻辑来检查文件扩展,还可以针对不同的文件扩展检查这些文件扩展是否被配置有可执行逻辑所利用的文件扩展参数的不同值。

根据一些实施例,参数231中的参数可以至少部分地定义要在配置控件210的呈现之后呈现的后续配置控件。这样的参数可以被赋予特定的标签或以其它方式进行标识,使得可以指示呈现配置控件210的系统评价该参数以识别后续配置控件。在一些情况下,参数可以具有静态值,使得配置控件210的呈现总是在利用参数的值所识别的特定配置控件之后。在一些情况下,参数可以具有动态确定的值,使得解析的参数值识别后续的配置控件。参数值的这种动态解析除了基于要在参数的值内进行评价的任何解释型表达式之外、还可以至少部分地基于关联的配置模板和/或一个或多个查找文件。例如,指示后续配置控件的第一个参数可以包括用于评价当前日期并另外读取参数231中的第二个参数的值的逻辑。基于第二个参数的值,识别用于指示按日期查找的配置控件的名称的查找文件。然后,对当前日期的评价导致选择第一个参数的值解析成的后续配置控件的名称。

如以上所讨论的,配置控件的操作部分可以具有自己的范围,使得配置控件的第一实例中的操作部分内的参数可以与相同配置控件的第二实例中的操作部分内的参数无关地解析为值。操作部分的范围本质上可以是具词典性质的(静态的)或动态的。在确定操作部分230的参数的值时,可以使用如下任何数量的其它值来进行所述评价,包括:相同操作部分的其它参数、在用于定义当前配置序列的配置模板内定义的参数、程序232其中之一所返回的参数、在执行环境内定义的参数、或者这些参数的组合。

图3a~3b描绘了根据一些实施例的用以基于序列来配置通用程序的多个配置控件的例示性使用。如以上所讨论的,配置模板可以定义可被动态呈现给用户的配置控件的序列。在一些情况下,该序列可以由被称为“向导”的程序来呈现,其中该“向导”可以在配置控件的所呈现的序列上提供附加功能。例如,“向导”可以访问信息(作为用户输入、预存储数据、或一些其它形式的信息)并且使用该信息来确定区域中要呈现哪些控件。向导还可以向所选择的控件提供数据以使该控件适应特定上下文。

在图3a的示例中,配置模板定义了序列310,其中该序列310包括6个配置控件。配置控件的该序列可以经由向导或以其它方式呈现给用户。与如何向用户呈现序列无关地,合适的系统(例如,方法100中的呈现配置控件110的系统)可以首先呈现配置控件301。后续地,向用户呈现配置控件302或配置控件303。如以上所讨论的,可以例如基于用户经由一个或多个查找文件或其组合而提供给配置控件301的渲染的配置控件用户界面的用户输入,来做出这种决定。

在图3a的示例中,在呈现配置控件303的情况下,不呈现其它配置控件。这可以表示例如可以单独地基于被提供至配置控件301和303的输入来配置通用程序的使用情况。否则,在向用户呈现配置控件302的情况下,后续呈现配置控件304、配置控件305或配置控件306。要呈现这些配置控件中的哪一个可以基于用户提供至配置控件301和/或302中的任一个的渲染的配置控件用户界面的用户输入、或者以其它方式来确定。

根据一些实施例,在首先呈现的配置控件不必是最上游的配置控件(图3a的示例中的配置控件301)的情况下,可以基于配置序列来呈现用户界面。例如,在已知配置控件303将绝不会被访问的情况下(例如,在提前已知用于确定将会选择配置控件302和303中的哪一个的决定结果的使用情况下),系统可以通过首先呈现配置控件302、基于配置序列310来向用户呈现用户界面。因此,不产生仅包括如图3a所示的配置控件302和304~306的新配置序列,配置序列310可以与配置控件302要作为所呈现的第一配置控件这一规范一起使用。

如以上所讨论的,诸如例示性配置序列310等的配置序列可以定义向导所呈现的配置控件。图3b描绘了执行向导的系统所生成的用户界面的例示性示例。在本示例中,向导呈现如序列所定义的配置控件,并且另外提供用于在配置控件之间导航的用户界面元素。配置向导用户界面320呈现配置控件330(例如,根据配置序列310的配置控件301~306中的任一个),并且提供用户可以用来在所呈现的配置控件之间进行导航的导航按钮340和350。如以上关于图1所讨论的,(例如,通过点击按钮)启动用户界面的导航按钮的用户可以发起基于一个或多个因素对要呈现的配置控件的确定。

配置向导用户界面320可以基于正使用的配置序列来显示和/或隐藏导航按钮340和/或350。在配置序列310的示例中,配置向导用户界面320可以在配置控件301的呈现期间隐藏导航按钮340,这是因为在用户可能导航至的定义序列中不存在先前的配置控件。同样,在向导没有接收到足够的用户输入或其它信息来选择序列中的下一控件的情况下,配置向导用户界面320可以在配置控件304、305或306的呈现期间或者在配置序列期间的任何时间隐藏导航按钮350。

根据一些实施例,导航按钮350的启动可以导致对(例如,经由所呈现的配置控件的操作部分)被提供给当前呈现的配置控件330的输入的有效性检查。这种检查可以确保:在用户进入定义序列中的下一步骤之前,输入是有效的。在输入的某方面被确定为无效的情况下,配置向导可以反而向用户提供表明在可以访问下一步骤之前需要动作(即,输入有效数据)的指示。可选地或附加地,导航按钮350可被隐藏、变灰或以其它方式在视觉上无效,直到有效数据已提供给当前呈现的配置控件为止。

根据一些实施例,呈现配置向导用户界面320的系统可以保存配置向导的状态,其中该状态指示通过关联配置序列先前和/或后续所采取的步骤。这可以使得导航按钮340和/或350能够通过访问该状态来确定活动序列中先前或后续呈现了哪个配置控件而发挥功能。例如,如果用户经由配置序列310中的配置控件301、302和305而导航通过该序列,则可以存储表示控件的该序列(即,301~302~305)的状态。因此,在导航至活动序列中的前一步骤的情况下,可以读取该状态以确定应该呈现哪个配置控件。一旦用户已经导航至前一步骤,则可以存储先前访问过的、之后的步骤以使得用户能够返回这些步骤。例如,在以上例示性序列中,用户可以往回导航至配置控件302,然而可能希望再次向前导航。所保存的状态可以允许基于这些导航动作将配置控件305识别为要呈现的后续配置控件。

图4描绘了示出根据一些实施例的数据流图的配置的功能框图。在图4的示例中,已经使用配置控件定义了配置序列410(这可以包括使用如以上关于图1所讨论的配置模板)以供通用数据流图430的配置。适配器420在作为针对基于配置序列所指定的配置控件而渲染的用户界面的输入而提供的值和通用数据流图的参数值之间提供映射。在标题为“executingcomputationsexpressedasgraphs”的美国专利5,966,072和标题为“managingparametersforgraph-basedcomputations”的美国专利7,716,630中进一步详细描述了数据流图以及这些数据流图的参数值,上述文献均通过引用而全文并入于此。

在图4的示例中,仅描绘了配置序列410的前两个步骤,应当理解,可以包括任何数量的附加步骤(包括如在图3a的示例中动态确定的步骤)。在所描绘的步骤中,在数据流图中使用配置控件401来选择与第一输入文件(“输入文件1”)相对应的文件路径,并且在数据流图中使用配置控件402来选择与第二输入文件(“输入文件2”)相对应的文件路径。

通用数据流图430是例示性数据流图,其中在该示例中,该数据流图示出对来自两个源的数据进行合并并将合并后的数据输出至输出文件,并且该数据流图仅被呈现为数据流图的一个示例。通用数据流图430可以与任意数量的参数定义相关联,其中,这些参数定义将图配置为接收、存储和/或使用针对所定义的参数的值,除与图本身相关联的任意数量的参数以外还包括针对图中的四个组件(“输入文件1”、“输入文件2”、“合并”和“输出文件”)中的各组件的任意数量的参数定义。然而,为了例示图4中所示的示例性实施例的目的,仅描绘了与输入文件组件的输入文件路径相对应的参数431和432。

根据一些实施例,配置控件401和402可以表示相同的底层配置控件,其中该底层配置控件可以在配置序列410的前两个步骤的各步骤中重复使用。可选地,配置控件401和402可以包括相同的用户界面部分,但可以具有不同的操作部分。在任一情况下,配置控件401和402包括图中所示的相同的用户界面部分,其中该用户界面部分使得用户能够选择文件。用户界面部分包括显示所选择文件路径的文本框(在配置控件401和402中分别为401a和402a)、以及在启动时使得用户能够浏览文件系统以获得所选择文件的“浏览”按钮(在配置控件401和402中分别为401b和402b)。

配置控件401和402(以及配置序列410中所使用的其它配置控件)可以以任何合适的方式呈现给用户,包括通过在向导中(例如,在如图3b所描绘的配置向导用户界面中)渲染所描绘的用户界面部分的方式。在图4的示例中,首先向用户呈现配置控件401,这包括如图所示的渲染该配置控件的用户界面部分。如以上所讨论的,用户可以经由浏览按钮401b来选择文件路径,并且在文本框401a中示出所选择文件的文件路径。然后经由适配器420将该文件路径提供给通用数据流图430的文件路径参数431。

如以上所讨论的,适配器可以指示出如何将在配置控件的渲染的用户界面内选择的值映射到通用程序的参数。适配器可以是通用程序的一部分、用于定义正进行的配置序列的配置模板的一部分,或者可以是单独的组件。与定义适配器的位置无关地,在图4a的示例中,适配器被配置为将配置控件401的呈现期间所选择的文件路径参数映射到数据流图430中的文件路径参数431。然后用户可以(例如,经由所呈现的配置向导用户界面中的导航按钮)进入配置序列410中的下一步骤,其中呈现了配置控件402。可以经由浏览按钮402b来选择文件路径,并且在文本框402a中示出所选择文件的文件路径。然后经由适配器420将该文件路径提供给通用数据流图430中的文件路径参数432,其中适配器被配置为将配置控件402的呈现期间所选择的文件路径参数映射到数据流图中的文件路径参数432。以这种方式,用户可以选择通用数据流图430中的参数431和432的值。

如以上所讨论的,配置控件401和配置控件402可以表示相同的底层配置控件。因此,在图4的示例中,通过经由适配器为配置序列的两个步骤中的各步骤提供合适的映射来针对这两个步骤重复使用表示“文件选择”配置活动的该单个配置控件,使得在各步骤中向通用数据流图的不同参数赋值。该配置控件还可以例如在针对通用数据流图中的“输出文件”组件选择文件时使用。以这种方式,配置模板可以将配置序列410表达为包括多个配置控件,其中这多个配置控件中的至少一些可以在动态确定的序列中呈现。

图5描绘了根据一些实施例的元数据存储库中所存储的配置控件和通用数据流图。如这里所使用的,“元数据存储库”是指被配置为除存储与不同类型的对象相关联的元数据以外、还存储这些对象的数据存储,其可以包括相同或不同类型的对象之间的关系链接。例如,元数据存储库可以存储数据流图以及该数据流图中的参数值的集合,其中参数值的各集合具有至数据流图的关系链接。

根据一些实施例,元数据存储库可以包括数据对象(包括配置控件、数据流图、配置模板和参数集)、这些对象中的至少一些对象之间的关联、以及与存储库中所存储的各对象相关联的元数据。在标题为“managingrelateddataobjects”的美国专利7,899,833中进一步详细描述了元数据存储库,上述文献通过引用而全文并入于此。

虽然配置控件和通用程序一般可以以任何合适的方式存储,但系统500描绘了配置控件和通用数据流图存储在元数据存储库中的例示性实施例。另外,与通用数据流图相关联的配置模板连同参数集一起存储在元数据存储库中,其中参数集表示使用关联的配置模板来配置通用数据流图的处理的结果。通用数据流图可以使用针对该图的既定参数集来执行,使得可以使用参数集所定义的参数来执行该图。图5所示的元素之间的关联以虚线的方式示出,并且在以下进行讨论。应当理解,可以通过将包括所示对象的计算机指令和数据记录在被指派给存储库的存储器中,来存储这些对象。然而,还可以通过存储至指令或数据的链接、或者指令或数据的其它标识来补充存储库。因此,存储库可以以任何合适的方式实现。

在图5的示例中,元数据存储库520包括配置控件522,其中这些配置控件522中的至少一些配置控件被一个或多个配置模板526所引用。如以上所讨论的,配置模板可以指定包括一个或多个配置控件的序列。因此,配置模板可以与一个或多个配置控件522相关联。另外,各配置模板与通用数据流图524中的特定的一个通用数据流图相关联。然而,例如在定义了用于配置图的多种方式(体现为不同配置模板)的情况下,单个通用数据流图可以与一个以上配置模板相关联。在经由如这里所描述的配置模板来配置通用图的情况下,可以将所得到的针对关联的通用图而定义的参数存储在参数集中。因此,各参数集与特定的图相关联。

在执行通用图时,可以访问一个或多个数据存储540。数据存储540可以包括多个任意类型的数据源,包括平面文件(flatfile)、数据库表、数据库查询等。在图5的示例中,通过执行数据流图所吸收和产生的数据没有存储在元数据存储库中,而是存储在任意数量的合适文件系统上的一个或多个文件中。另外,如上所述,在图5的示例中,配置模板526使用一个或多个查找文件530来确定配置处理期间的呈现所用的配置控件。

如以上所讨论的,可以由具有不同技能组合的不同人来配置通用程序,从而在不同时间提供不同类型的输入。图6描绘了用户使用这里所描述的技术来配置通用程序的例示性开发处理。在图6的示例中,三种用户610、620和630各自进行处理600中的步骤,即分别进行步骤602、604和606。这些用户可以是三种不同的人,其中这三种不同的人在业务组织内各自具有不同的角色(并且潜在地具有不同技能组合)。然而,应当理解,一般而言,同一用户可以进行处理600中的多个步骤。例如,同一个人可以进行步骤602和604。

在步骤602中,定义通用程序。在一些情况下,用户610可以是熟悉编写通用程序的特定编程环境的熟练的编程人员。例如,在通用程序是数据流图的情况下,用户610可以是熟练编写数据流图的用户。

在步骤604中,针对步骤602中所定义的通用程序,定义配置模板。在一些情况下,用户620可以是熟悉编写配置模板的特定编程环境的熟练的编程人员。可以使用任何合适的应用来定义配置模板,其中合适的应用可以是或者可以不是用于定义通用程序的同一应用。配置模板定义序列,其中在该序列中,可以提供通用程序的参数作为输入。如以上所讨论的,该配置模板可以包括一个或多个配置控件的使用,并且还可以包括或者以其它方式访问用于动态地确定在通用程序的配置期间要向用户呈现哪个配置控件的逻辑。因此,用户620可以(例如,通过定义一个或多个查找文件来)定义这种逻辑。根据一些实施例,用户610和/或620可以定义如下的适配器,其中该适配器将通用程序的参数值映射到作为输入被提供给配置模板所定义的用户界面的值。这种适配器可以被配置作为配置模板的一部分、通用程序的一部分、或两者。

在步骤606中,使用由步骤604中所定义的配置模板定义的用户界面来配置通用程序。用户630可以是熟悉业务需求的用户,诸如业务分析师。步骤606中的配置处理的结果可以是:使用所提供的参数值立即执行通用程序,并且/或者以任何合适的方式存储参数值以使得可以使用这些值在稍后的时间执行通用程序。与何时发生无关地,在步骤608中,使用步骤606中所提供的参数值来执行通用程序。

图7示出可以实现这里所说明的技术的合适计算系统环境700的示例。计算系统环境700仅是合适计算环境的一个示例,并且不旨在暗示关于这里描述的技术的使用范围或功能的任何限制。该计算环境700也不应被解释为与典型操作环境700中所示的组件中的任一个组件或组合有关的任何依赖性或需求。

这里所描述的技术与许多其它通用或专用的计算系统环境或配置一起操作。可适于与这里所描述的技术一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费类电子产品、网络pc、小型计算机、大型计算机、包括上述系统或装置等的任意项的分布式计算环境等。

计算环境可以执行诸如程序模块等计算机可执行指令。一般而言,程序模块包括进行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这里所描述的技术也可以在分布式计算环境中实践,其中利用经由通信网络而链接的远程处理装置来进行任务。在分布式计算环境中,程序模块可以位于包括存储器存储装置的本地计算机存储介质和远程计算机存储介质这两者中。

参考图7,用于实现这里所描述的技术的典型系统包括采用计算机710的形式的通用计算装置。计算机710中的组件可以包括但不限于处理单元720、系统存储器730、以及用于将包括系统存储器的各种系统组件连接至处理单元720的系统总线721。系统总线721可以是多种类型的总线结构中的任一种,其中多种类型的总线结构包括存储器总线或存储器控制器、外围总线以及使用多种总线架构中的任一种的局部总线。通过示例而非限制的方式,这种架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线、以及也被称为夹层总线(mezzaninebus)的外围组件互连(pci)总线。

计算机710通常包括多种计算机可读介质。计算机可读介质可以是计算机710可以访问的任何可用介质,并且包括易失性和非易失性介质的可移除和不可移除介质这两者。通过示例而非限制的方式,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等的信息的任何方法或技术实现的易失性和非易失性的可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其它存储技术、cd-rom、数字通用盘(dvd)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储装置、或者可用于存储期望信息并且可由计算机710访问的任何其它介质。通信介质通常在诸如载波等的调制数据信号或其它传输机制中包含计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。术语“调制数据信号”是指以将信息编码在信号中这一方式设置或改变其一个或多个特性的信号。通过示例而非限制的方式,通信介质包括诸如有线网络或直接有线连接等的有线介质、以及诸如声学介质、rf介质、红外介质和其它无线介质等的无线介质。以上介质中的任意介质的组合也应包含在计算机可读介质的范围内。

系统存储器730包括采用诸如只读存储器(rom)731和随机存取存储器(ram)732等的易失性和/或非易失性存储器的形式的计算机存储介质。包含有助于在计算机710内的元件之间(诸如在启动期间)传送信息的基本例程的基本输入/输出系统733(bios)通常存储在rom731中。ram732通常包含处理单元可立即访问和/或当前正操作的数据和/或程序模块。通过示例而非限制的方式,图7示出操作系统734、应用程序735、其它程序模块736、以及程序数据737。

计算机710还可以包仅通过示例的方式,图7示出用于相对于不可移除的非易失性磁介质进行读取或写入的硬盘驱动器741、用于相对于可移除的非易失性磁盘752进行读取或写入的磁盘驱动器751、以及用于相对于诸如cdrom或其它光学介质等的可移除的非易失性光盘756进行读取或写入的光盘驱动器755。在典型操作环境中可以使用的其它可移除/不可移除的易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态ram、固态rom等。硬盘驱动器741通常通过诸如接口740等的不可移除存储器接口而连接至系统总线721,并且磁盘驱动器751和光盘驱动器755通常通过诸如接口750等的可移除存储器接口而连接至系统总线721。

以上所讨论且在图7示出的驱动器及其关联的计算机存储介质提供对计算机710的计算机可读指令、数据结构、程序模块和其它数据的存储。在图7中,例如,硬盘驱动器741被示出为存储操作系统744、应用程序745、其它程序模块746以及程序数据747。注意,这些组件可以与操作系统734、应用程序735、其它程序模块736以及程序数据737相同或不同。操作系统744、应用程序745、其它程序模块746和程序数据747在这里被赋予不同的数字以说明在最低限度上它们是不同的副本。用户可以通过诸如键盘762和指示装置761(通常称为鼠标、追踪球或触摸板)的输入装置将命令和信息输入到计算机710中。其它输入装置(未示出)可以包括麦克风、操纵杆、游戏板、圆盘式卫星天线、扫描仪等。这些和其它输入装置通常通过连接至系统总线的用户输入接口760而连接至处理单元720,但是可以通过其它接口和总线结构(诸如并行端口、游戏端口或通用串行总线(usb))而连接。监视器791或其它类型的显示装置也经由诸如视频接口790等的接口而连接至系统总线721。除了监视器之外,计算机还可以包括诸如扬声器797和打印机796等的其它外围输出装置,其中这些外围输出装置可以通过输出外围接口795而连接。

计算机710可以使用到诸如远程计算机780等的一个或多个远程计算机的逻辑连接,来在网络化环境中操作。远程计算机780可以是个人计算机、服务器、路由器、网络pc、对等装置或其它公共网络节点,并且通常包括以上针对计算机710所述的许多或全部元件,但是在图7中仅示出存储器存储装置781。图7中所描绘的逻辑连接包括局域网(lan)771和广域网(wan)773,但是还可以包括其它网络。这种网络化环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。

在lan网络化环境中使用时,计算机710通过网络接口或适配器770而连接至lan771。在wan网络化环境中使用时,计算机710通常包括用于通过wan773(诸如因特网)来建立通信的调制解调器772或其它部件。调制解调器772(其可以是内部的或外部的)可以经由用户输入接口760或其它适当的机构而连接至系统总线721。在网络化环境中,相对计算机710所描绘的程序模块或其部分可以存储在远程存储器存储装置中。通过示例而非限制的方式,图7将远程应用程序785示出为驻留在存储器装置781上。应当理解,所示的网络连接是典型的,并且可以使用用于在计算机之间建立通信链路的其它手段。

在如此描述了本发明的至少一个实施例的多个方面的情况下,应当理解,本领域技术人员将容易想到各种改变、修改和改进。例如,系统被描述为利用配置控件而实现。如这里所定义的,将系统和控件实现为使得配置控件各自被定义为进行任务、并且可以在要进行任务的配置处理中的任何时间点使用。这些配置控件可例如经由用户输入或任意数据服务来适配以适应要进行该任务的特定上下文。不要求在配置处理中的多个位置处使用配置控件。也不要求这些配置控件进行所有的配置。例如,处理的一部分可以由进行相同配置的控件来进行,而不管执行这些控件的上下文如何。

此外,虽然这里讨论了适用于通用数据流图的配置的控件,但应当理解,这些控件可以用于配置任何合适的通用程序。例如,用于配置如这里所讨论的通用程序的技术可以用于配置以任何合适的数据处理语言编写的通用程序,或者可以用于配置以诸如java或c++等的通用编程语言编写的通用程序。已经说过,在这里所讨论的通用程序是数据流图或具有高参数化水平的其它数据处理程序的情况下,用于配置该通用程序的技术可以具有特定的效用。

这样的改变、修改和改进旨在成为本发明的一部分,并且旨在在本发明的精神和范围内。此外,尽管指出了本发明的优点,但应当理解,不是这里所描述的技术的每个实施例都将包括每个描述的优点。一些实施例可以不实现这里被描述为有利的任何特征,并且在一些情况下,可以实现所描述的特征中的一个或多个特征以获得其它实施例。因此,前面的描述和附图仅通过示例的方式。

这里所描述的技术的上述实施例可以以多种方式中的任一种来实现。例如,实施例可以使用硬件、软件或其组合来实现。在以软件实现的情况下,软件代码可以在任何合适的处理器或处理器集合上执行,而无论该软件代码是在单个计算机中提供的、还是分布在多个计算机中。这样的处理器可以被实现为集成电路,并且在集成电路组件中具有一个或多个处理器,其中该集成电路组件包括按名称在本领域已知的商用集成电路组件,诸如cpu芯片、gpu芯片、微处理器、微控制器或协处理器。可选地,处理器可以以定制电路(诸如asic、或由配置可编程逻辑装置而产生的半定制电路)实现。作为又一个替代方案,处理器可以是更大的电路或半导体器件的一部分,而无论该电路或半导体器件是商业可用的、是半定制的、还是定制的。作为特定示例,一些商用的微处理器具有多个核,使得这些核中的一个核或子集可以构成处理器。但是,处理器可以使用电路以任何合适形式来实现。

此外,应当理解,计算机可以以诸如机架式计算机、台式计算机、膝上型计算机或平板计算机等的多种形式中的任一种来体现。另外,计算机可以嵌入在一般不被视为计算机、但具有合适处理能力的装置中,其中这样的装置包括个人数字助理(pda)、智能手机或任何其它合适的便携式电子装置或固定电子装置。

此外,计算机可以具有一个或多个输入和输出装置。这些装置可以用于呈现用户界面等。可用于提供用户界面的输出装置的示例包括用于在视觉上呈现输出的打印机或显示屏、以及扬声器或者用于在听觉上呈现输出的其它声音生成装置。可以用于用户接口的输入装置的示例包括键盘和指示装置(诸如鼠标、触摸板和数字化平板电脑)。作为另一示例,计算机可以通过语音识别或其它可听格式来接收输入信息。

这样的计算机可以通过一个或多个网络以任何合适的形式互连,包括局域网或广域网,诸如企业网络或因特网。这样的网络可以基于任何合适的技术,可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或光纤网络。

此外,这里概述的各种方法或处理可以被编码为可在采用各种操作系统或平台中的任一种的一个或多个处理器上执行的软件。另外,这样的软件可以使用多种合适的编程语言和/或编程或脚本工具中的任一种来编写,并且还可以被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。

在这方面,本发明可以被体现为利用一个或多个程序进行编码的计算机可读存储介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、致密盘(cd)、光盘、数字视频盘(dvd)、磁带、闪存、现场可编程门阵列或其它半导体器件中的电路配置、或其它有形的计算机存储介质),其中这些程序在一个或多个计算机或其它处理器上执行时进行用于实现以上所讨论的本发明的各个实施例的方法。根据前面的示例,明显地,计算机可读存储介质可以将信息保留足够的时间以便以非暂时性形式提供计算机可执行指令。这样的计算机可读存储介质可以是可传输的,使得存储在该介质上的一个或多个程序可以被加载到一个或多个不同的计算机或其它处理器上以实现如以上所讨论的本发明的各个方面。如这里所使用的,术语“计算机可读存储介质”仅涵盖可被认为是制造品(即,制品)或机器的非暂时性计算机可读介质。可选地或附加地,除计算机可读存储介质以外,本发明还可被体现为诸如传播的信号等的计算机可读介质。

在通用意义上,这里使用的术语“程序”或“软件”是指可被采用以对计算机或其它处理器进行编程、从而实现这里所讨论的本发明的各个方面的任何类型的计算机代码或计算机可执行指令。另外,应当理解,根据本发明的一个方面,在被执行时进行本发明的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,并且可以以模块化方式分布在多个不同的计算机或处理器之间,以实现本发明的各个方面。

计算机可执行指令可以采用许多形式,诸如由一个或多个计算机或其它装置执行的程序模块。一般而言,程序模块包括用于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以根据需要被组合或分布在各个实施例中。

此外,数据结构可以以任何合适的形式存储在计算机可读介质中。为了简化说明,数据结构可被示出为具有通过数据结构中的位置相关的字段。这样的关系同样可以通过在用于传送字段之间的关系的计算机可读介质中为字段的存储指派位置来实现。然而,可以使用任何合适的机制(包括通过使用指针、标签或用于建立数据元素之间的关系的其它机制)来建立数据结构的字段中的信息之间的关系。

本发明的各个方面可以单独地、组合地、或者以前面描述的实施例中未具体讨论的各种布置使用,因此在应用方面不限于前面的描述中所阐述或者附图中所示的组件的详情和布置。例如,一个实施例中所描述的方面可以以任何方式与其它实施例中所描述的方面相结合。

此外,本发明可以被体现为提供了示例的方法。作为该方法的一部分所进行的动作可以以任何合适的方式定序。因此,可以构造按照与所示不同的顺序进行动作的实施例,其中该顺序可以包括同时进行一些动作,即使这些动作在例示性实施例中被示出为依次的动作。

此外,一些动作被描述为被“用户”所采取。应当理解,“用户”无需是单个个体,并且在一些实施例中,归因于“用户”的动作可以由一组个体以及/或者由个体结合计算机辅助工具或其它机构来进行。

权利要求中的用以修改权利要求要素的诸如“第一”、“第二”和“第三”等的序数词的使用本身不意味着一个权利要求要素相对于另一个权利要求要素的任何优先权、优先序或顺序、或者进行方法的动作的时间顺序,而是仅用作用以将具有特定名称的一个权利要求要素与具有相同名称(但针对序数词的使用)的另一要素区分开以区分这些权利要求要素的标签。

此外,这里使用的措辞和术语是为了描述的目的,而不应被认为是限制性的。本文中“包括”、“包含”或“具有”、“含有”、“涉及”及其变型的使用意在涵盖之后列出的项及其等同项以及附加项。

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