动态确定对网络主页gui环境中选定项执行的动作的方法

文档序号:6649419阅读:161来源:国知局
专利名称:动态确定对网络主页gui环境中选定项执行的动作的方法
技术领域
本发明涉及图形用户界面,确切地说,涉及动态地确定对网络主页图形用户界面环境中图形用户界面选定项执行的动作的方法。
背景技术
为了使希望的通信更容易、更快捷和/或更高效,已经制造了多种类型的通信设备。传真机和个人计算机(PC)就是此类设备的实例。一种此类的进展是创建图形用户界面(GUI)。GUI一种程序界面,它使用所述计算机的图形功能使得所述程序更易于使用。精心设计的图形用户界面可以令用户免于学习复杂的命令语言。反之,许多用户发现他们用命令驱动的界面时工作更加有效,尤其是当他们已经知晓所述命令语言时。图形用户界面,比如微软的视窗和苹果麦金托什机使用的界面,以下面的基本部分为特色·指针出现在显示屏幕上的符号,你移动它去选择对象和命令。所述指针通常表现为小的斜箭头。然而,文本处理应用程序使用形似大写字母I的I型指针。
·定点设备使你能够在显示屏幕上选择对象的设备,比如鼠标或跟踪球。
·图标表示命令、文件或窗口的小图片。把所述指针移至所述图标并且按下鼠标键,你就能够执行一条命令或者把所述图标转换成窗口。你也能够在显示屏幕上移动图标,如同它们是你桌面上真实物体。
·桌面显示屏幕上图标分组的区域经常称为桌面,因为这些图标试图表示真实桌面上的真实物体。
·窗口你能够将屏幕划分成不同的区域。在每个窗口中,你能够运行不同的程序或显示不同的文件。你能够在显示屏幕上移动窗口,并且随意改变其形状和尺寸。
·菜单大多数图形用户界面使你通过从菜单作出选择而执行命令。
许多图形用户界面都是基于上下文的系统。在基于上下文的系统中,在所述屏幕上显示出对象(图标)的列表。例如所述对象可能代表各种文件(即所述桌面上的微软资源管理器)。与所述图标相连的是操作的组/菜单,用右键点击所述图标可以显示它们。在所述菜单中的操作是相对于所述选定项的操作。在某个实例中,如果所述选定的对象是文件,将会出现的操作之一可能是“删除”操作。
在当前系统中,对给定对象能够执行的若干操作是硬编码的。这种硬编码设计把操作范围限制为仅有所述硬编码的操作。如果希望执行没有硬编码的操作,可能需要对所述对象的该操作进行硬编码。
仍然需要图形用户界面的方法和系统能够动态地确定对网络主页图形用户界面环境中的选定项执行的动作。

发明内容
本发明的目的是提供一种方法和系统,能够动态地确定对图形界面用户环境中对象的若干操作。
本发明的第二个目的是创建本发明的所述方法和系统使用的过滤规则组,以便动态地确定能够对选定对象进行的若干动作。
本发明的第三个目的是创建本发明的所述方法和系统使用的输入规则组,以便动态地确定进行所述选定动作所需的若干任务。
本发明的第四个目的是创建本发明的所述方法和系统使用的任务规则组,以便动态地确定在进行所述选定动作所需的所述若干任务的执行中实施的若干步骤。
本发明的思路是定义一组规则,它们1〕根据选定对象的上下文和UI操作系统环境(后文称为过滤规则),确定对选定对象应用的所述动作组;2〕使用一组输入规则对选定动作确定一组输入值;3〕确定将要运行的后端任务组,以便进行该动作(后文称为任务规则)。假定软件引擎将要使用这些规则,进行上述操作。这样实施的优点在于,系统在其数据库中通过改变或增加所述规则,能够适应变化的条件。
典型情况下,能够根据所述选定对象的状态和所述用户界面的当前操作环境,改变将要执行的所述动作。(这种操作环境称为所述当前操作“上下文”。)一旦选定了执行对象,所述动作需要的还可能有一组输入值。这些输入值也能够根据所述UI的操作上下文而改变。最后,每项动作都将映射到一项或多项需要运行(使用若干所述输入值)的后端任务,以便满足所述动作与所述用户的联系。对这个问题早先的解决方案通常包括程序地硬编码这些规则,以便对给定的选定对象确定动作、输入和后端任务。这样做可能导致系统不易适应其操作环境和安装配置的变化。
在一个实例中,用户的桌面上可能有对象(图标)。如果所述用户右键点击该对象,与常规系统一样将会出现弹出菜单。然而在本发明中,所述菜单中的若干项会随时间而变化,取决于所述用户选定所述对象时的所述当前操作环境。如上所述,常规系统的所述弹出项是固定的,与所述操作环境无关。如果所述用户选择了所述项之一,比如“打印”,本发明的下一阶段可能会产生一组输入,在实施该动作时使用。此阶段也会产生实施所述“打印”动作时将要执行的所述任务组。在内部,执行所述“打印”动作可能需要数个任务。在实施所述任务期间,所述任务可能使用所述产生的输入。在每个阶段期间,所述各种XML规则组将会确定实施的所述动作、输入和任务。
附图简要说明

图1是显示着常规图形用户界面图标的终端屏幕;图2是常规图形用户界面图标以及与该图标相关联动作的实例;图3是本发明方法和系统的结构;图4是本发明方法实施中步骤的一般流程图;图5是一幅流程图,展示了本发明在所述动作过滤过程中的步骤;
图6是一幅流程图,展示了本发明在所述动作输入过程中的步骤;图7是一幅流程图,展示了本发明在所述动作任务过程中的步骤;图8是一幅示意图,展示了实施本发明方法的数据流序列。
具体实施例方式
本发明包括在网络主页图形用户界面(GUI)环境中,动态地确定对选定项要执行的动作的方法和系统。如先前的定义,GUI是使用计算机的图形功能使所述程序更易于使用的程序界面。参考图1,其中显示的是计算机屏幕10,包含着通过开始图标11和对象图标12能够启动的GUI软件。图2展示了所述“打印”图标20作为GUI对象。点击此“打印”图标将显示用户能够选择的数个动作。所述动作以包括项菜单之窗口21的形式显示,这些项表示所述用户可对该GUI对象采取的每个动作。如图所示,对所述“打印”图标,存在着几个可对该图标执行的动作。在这个具体实例中,所述开始对象具有能够对该对象执行的“打开”、“打印”以及“快速查看”。如上所述,使用所述常规GUI技术,每种动作都是不可变的,使得所述系统非常刻板,在所述GUI上下文中难以改变动作。
本发明的实施致力于使得若干对象关联到若干动作,它们是动态的并且取决于所述对象的当前环境。图3展示了本发明的系统的结构。此系统包括三个主要部件。所述部件在三个不同的阶段中实施。这些部件及其互动在下面的说明中讨论。参考图3,第一个部件是动作过滤引擎。所述动作过滤引擎31是软件子部件,它对输入上下文状态应用过滤规则。所述上下文状态是一组数据项,用于量化所述系统的当前状态。它们向动作代理引擎提供所述当前操作上下文。这些数据项包括所述选定数据对象性质所述portlet请求属性所述portlet会话属性所述用户的角色再次参考图3,所述过滤规则32以XML模式格式创建。这种XML文档说明了一组过滤规则。它用于向所述过滤规则数据库33安置新的规则。所述过滤规则数据库用于将一组动作过滤至一个子集,应用于所述给定上下文状态。过滤规则基于以下各项,确定能够对给定环境(上下文)中的对象执行的操作选定数据对象的数据类型选定数据对象的性质值所述portlet请求状态的属性值所述portlet会话状态的属性值所述用户的角色下面是根据本发明的所述过滤规则32的XML模式动作过滤器
<?xml version=″1.0″encoding=″UTF-8″?>
<xsdschema xmlnsxsd=″http∥www.w3.org/2001/XMLSchema″>
<xsdelement name=″ActionFilters″>
<xsdannotation>
<xsddocumentation>This defines a set of user actions filters.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement maxOccurs=″unbounded″minOccurs=″1″ref=″ActionFilter″/>
</xsdsequence>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″ActionFilter″>
<xsdannotation>
<xsddocumentation>This defines a filter used todetermine which user actions may be run on a selectedobject.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement ref=″Filters″/>
<xsdelement ref=″UserActionRefs″/>
</xsdsequence>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″Filters″>
<xsdannotation>
<xsddocumentation>This encloses a set of expressions that make up the filter.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdchoice maxOccurs=″unbounded″minOccurs=″0″>
<xsdelement ref=″RoleFilter″/>
<xsdelement ref=″ClassFilter″/>
<xsdelement ref=″PropertyFilter″/>
<xsdelement ref=″FunctionFilter″/>
<xsdelement ref=″ContextFilter″/>
</xsdchoice>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″RoleFilter″>
<xsdannotation>
<xsddocumentation>This expression filters on the user′s role.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″role″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The required roles of the user,delimited bycommas.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″PropertyFilter″>
<xsdannotation>
<xsddocumentation>This expression filters on the valueof a selected object's property.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″property″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of a property of the selected objectfrom which to access the value.Java introspection isused to access the property.(The Java convention fornaming bean properties must be followed.)</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″pattern″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The compare pattern.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute default=″regex″name=″matching″>
<xsdannotation>
<xsddocumentation>The matching algorithm to use.
"regex"indicates use of regularexpression matching,"string"indicates use ofexact string matching and"stringlgnoreCase"indicates use of string matching but ignoresthe case.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″regex″/>
<xsdenumeration value=″string″/>
<xsdenumeration value=″stringlgnoreCase″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
<xsdattribute default=″false″name=″not″>
<xsdannotation>
<xsddocumentation>Applies theNOT boolean operator to the compare results.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″false″/>
<xsdenumeration value=″true″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″FunctionFilter″>
<xsdannotation>
<xsddocumentation>This expression filters on the return valueof a selected object's method function.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″methodName″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The method to call on the selected object.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″argName″type=″xsdstring″use=″optional″>
<xsdannotation>
<xsddocumentation>The string argument to pass to the method.
If not specified,no argurment is passed.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″pattern″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The compare pattern.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute default=″regex″name=″matching″>
<xsdannotation>
<xsddocumentation>The matching algorithm to use.
"regex"indicates use of regularexpression matching,"string"indicates use ofexact string matching and "stringlgnoreCase"indicates use of string matching but ignoresthe case.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″regex″/>
<xsdenumeration value=″string″/>
<xsdenumeration value=″stringlgnoreCase″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
<xsdattribute default=″false″name=″not″>
<xsdannotation>
<xsddocumentation>Applies theNOT boolean operator to the compare results.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″false″/>
<xsdenumeration value=″true″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″ContextFilter″>
<xsdannotation>
<xsddocumentation>This expression filters on the valueof an existing context item.This item is accessedfrom the portlet request or session object.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of the context value.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″property″type=″xsdstring″use=″optional″>
<xsdannotation>
<xsddocumentation>The name of a property of the context valueobject from which to access the value.
When not specified,the object itself isused as the value.Java introspection isused to access the property.(The Java convention fornaming bean properties must be followed.)</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″pattern″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The compare pattern.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute default=″regex″name=″matching″>
<xsdannotation>
<xsddocumentation>The matching algorithm to use.
"regex"indicates use of regularexpression matching,"string"indicates use ofexact string matching and "stringlgnoreCase"indicates use of string matching but ignoresthe case.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″regex″/>
<xsdenumeration value=″string″/>
<xsdenumeration value=″stringlgnoreCase″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
<xsdattribute default=″false″name=″not″>
<xsdannotation>
<xsddocumentation>Applies theNOT boolean operator to the compare results.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″false″/>
<xsdenumeration value=″true″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
<xsdattribute default=″session″name=″scope″>
<xsdannotation>
<xsddocumentation>The data source of the context value.
"Request"scope accesses theportlet request object."Session"scopeaccesses the portlet session object.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″fequest″/>
<xsdenumeration value=″session″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″ClassFilter″>
<xsdannotation>
<xsddocumentation>This expression filters on the valueof a selected object's class type.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″pattern″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The compare pattern.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute default=″regex″name=″matching″>
<xsdannotation>
<xsddocumentation>The matching algorithm to use.
"regex"indicates use of regularexpression matching,"string"indicates use ofexact string matching and "stringlgnoreCase"indicates use of string matching but ignorethe case.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″regex″/>
<xsdenumeration value=″string″/>
<xsdenumeration value=″stringlgnoreCase″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
<xsdattribute default=″false″name=″not″>
<xsdannotation>
<xsddocumentation>Applies theNOT boolean operator to the compare results.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″false″/>
<xsdenumeration value=″true″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″UserActionRefs″>
<xsdannotation>
<xsddocumentation>This encloses a set of user actionreferences.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement maxOccurs=″unbounded″minOccurs=″1″ref=″UserActionRef″/>
</xsdsequence>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″UserActionRef″>
<xsdannotation>
<xsddocumentation>This is a reference to anexisting user action defined in the action input XML file.
</xsddoeumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of the user action reference.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
</xsdschema>
所述动作过滤引擎的输出是通过了所述过滤规则的动作列表。所述动作列表表示了根据当前对象上下文能够对所述对象执行的若干动作。该列表类似于包含着可用动作菜单的所述弹出窗口。
本发明的系统的第二个部件是动作输入引擎34。所述动作输入引擎是软件子部件,它根据一组输入规则35为选定的对象动作产生若干输入。这些输入规则确定输入,以响应所述对象的所述选定动作和所述上下文状态。所述动作输入引擎的输出是一组名称/数值对,包括上下文状态(输入映射)和要执行的任务列表。输入规则35的所述组在XML文档中介绍和定义。所述输入规则驻留在规则数据库36中。所述动作输入引擎根据所述上下文状态以及所述用户从所述动作列表中选择的动作,应用这些输入规则。根据这些规则对所述选定动作的应用结果,所述动作输入引擎产生一组名称/数值对(输入映射)以及与动作相关联的任务列表。输入映射值可以从下面的资源提取所述选定数据对象的性质从所述portlet请求状态得出的属性从所述portlet会话状态得出的属性定义的常量以下是根据本发明的所述输入规则35的XML模式
动作输入?xml version=″1.0″encoding=″UTF-8″?>
<xsdschema xmlnsxsd=″http∥www.w3.org/2001/XMLSchema″>
<xsdelement name=″Actionlnputs″>
<xsdannotation>
<xsddocumentation>This defines a set of user actions.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement maxOccurs=″unbounded″minOccurs=″1″ref=″UserAction″/>
</xsdsequence>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″UserAction″>
<xsdannotation>
<xsddocumentation>This defines a user action,its input and itsimplementation tasks.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement ref=″Name″/>
<xsdelement ref=″Input″/>
<xsdelement ref=″Tasks″/>
</xsdsequence>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>ldentifier for the action,must be unique.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″Name″>
<xsdannotation>
<xsddocumentation>This defines the name string that is to bedisplayed to the user for action selection.If noattributes are specified,the string enclosed by thetag is used.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsimpleContent>
<xsdextension base=″xsdstring″>
<xsdattribute name=″key″type=″xsdstring″use=″optional″>
<xsdannotation>
<xsddocumentation>The translated string lookup key.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″resourceBundle″type=″xsdstring″use=″optional″>
<xsdannotation>
<xsddocumentation>The translated string resource bundle.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdextension>
</xsdsimpleContent>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″Input″>
<xsdannotation>
<xsddocumentation>This encloses a set of values to use as the action input.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdchoice maxOccurs=″unbounded″minOccurs=″0″>
<xsdelement ref=″UseContext″/>
<xsdelement ref=″UseProperty″/>
<xsdelement ref=″UseFunction″/>
<xsdelement ref=″UseConstant″/>
</xsdchoice>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″UseContext″>
<xsdannotation>
<xsddocumentation>This defines the value of a context object to use as input.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of the input value.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″fetchName″type=″xsdstring″use=″optional″>
<xsdannotation>
<xsddocumentation>The name of the object to fetch from the context.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″property″type=″xsdstring″use=″optional″>
<xsdannotation>
<xsddocumentation>The name of a property of the context valueobiect from which to access the value.
When not specified,the object itself isused as the value.Java introspection isused to access the property.(The Java convention fornaming bean properties must be followed.)</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute default=″session″name=″scope″>
<xsdannotation>
<xsddocumentation>The data source of the context value.
"Request"scope accesses theportlet request object."Session"scopeaccesses the portlet session object.
</xsddocumentation>
</xsdannotation>
<xsdsimpleType>
<xsdrestriction base=″xsdstring″>
<xsdenumeration value=″request″/>
<xsdenumeration value=″session″/>
</xsdrestriction>
</xsdsimpleType>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″UseProperty″>
<xsdannotation>
<xsddocumentation>This defines the value of a property ofthe selected object to use as input.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of the input value.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″property″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of a property of the selected object.
Java introspection is used to access the property.
(The Java convention for naming beanproperties must be followed.)</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″UseFunction″>
<xsdannotation>
<xsddocumentation>This defines the return value of a methodfunction on the selected object touse as input.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of the input value.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″methodName″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The method to call on the selected object.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″argName″type=″xsdstring″use=″optional″>
<xsdannotation>
<xsddocumentation>The string argument to pass to the method.
If not specified,no argurment is passed.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″UseConstant″>
<xsdannotation>
<xsddocumentation>This defines an constant value touse as input.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of the input value.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″value″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The constant value.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″Tasks″>
<xsdannotation>
<xsddocumentation>This encloses a set of tasks to run.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement maxOccurs=″unbounded″minOccurs=″0″ref=″TaskRef″/>
</xsdsequence>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″TaskRef″>
<xsdannotation>
<xsddocumentation>This defines a reference to a task.
This task is defined in the action taskXML file.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>The name of the task reference.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
</xsdschema>
再次参考图3,本发明的所述第三个部件是动作任务引擎37。该动作任务引擎是软件子部件,它根据所述任务规则执行所述输入列表中的任务,以及馈入每项被执行任务作为输入的所述输入映射。所述任务规则是驻留在数据库39的若干设定规则38,用于执行以给定的名称/数值对(输入映射)作为输入而给定列表中的任务。所述动作任务引擎确定执行所述任务列表上任务时需要哪些步骤。虽然可以定义和插入若干定制动作,但是以下任务组是内建在所述操作任务引擎之中开始ISC网页,向它发送所述输入(输入映射)作为上下文变化事件。
开始portlet,向它发送所述输入(输入映射)作为上下文变化事件。
向所述当前ISC网页上的所有portlet广播输入(输入映射)作为上下文变化事件。
以下是根据本发明的所述任务规则38的XML模式任务过滤器?xml version=″1.0″encoding=″UTF-8″?>
<xsdschema xmlnsxsd=″http:∥www.w3.org/2001/XMLSchema″>
<xsdelement name=″ActionTasks″>
<xsdannotation>
<xsddocumentation>This defines a list of action tasks.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement maxOccurs=″unbounded″minOccurs=″1″ref=″Task″/>
</xsdsequence>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″Task″>
<xsd annotation>
<xsddocumentation>This defines an action task to berun.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdsequence>
<xsdelement maxOccurs=″urbounded″minOccurs=″0″ref=″ControlParameter″/>
</xsdsequence>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>ldentifier for the task,must be unique.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″className″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>Class name of the Java obiect to execute inorder to implement the task.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
<xsdelement name=″ControlParameter″>
<xsdannotation>
<xsddocumentation>This defines a control parameter topass to the executed Java object that implements the task.
</xsddocumentation>
</xsdannotation>
<xsdcomplexType>
<xsdattribute name=″name″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>Name of the control parameter.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
<xsdattribute name=″value″type=″xsdstring″use=″required″>
<xsdannotation>
<xsddocumentation>Value for the control parameter.
</xsddocumentation>
</xsdannotation>
</xsdattribute>
</xsdcomplexType>
</xsdelement>
</xsdschema>
使用所述XML格式定义所述过滤、上下文和任务规则,提供了实施所述规则的灵活性。在本发明中,所述用户能够根据需要使用所述XML格式修改所述规则。
图4是执行本发明所述方法步骤的一般流程图。本发明过程中的第一个步骤40是创建将在本发明的所述三个阶段中使用的多组规则。步骤41产生能够对选定对象执行的一组动作(动作列表)。这个动作产生步骤在所述动作过滤引擎中发生。所述动作列表产生后,在步骤42中提示所述用户对所述操作进行选择。产生所述动作列表的方式为检索若干过滤规则,并且在考虑到所述定义对象上下文的情况下对所述选定对象应用这些规则。在所述过滤规则组之内有在所述定义的上下文中覆盖所述选定对象的规则。此规则将公开在所述定义的上下文中对该对象执行的操作(以列表形式)。在所述动作输入引擎接收所述用户选定的动作。在步骤43中,所述动作输入引擎产生一组任务(任务列表)和输入映射。这组任务和映射基于所述输入规则、所述对象当前和所述选定的动作。在步骤44中,所述动作任务引擎创建了实施所述任务必要的具体步骤。每项任务都将包括为了运行该任务而执行的一组步骤。
图5是一幅流程图,展示了本发明所述动作过滤过程(第1阶段)中的步骤。所述用户选择GUI对象将激活这个过程。起始步骤50访问位于所述过滤规则数据库中的若干过滤规则。下一个步骤51将要使用所述过滤规则以识别所述选定的对象。所述对象识别之后,步骤52将确定所述对象的上下文。这个步骤考察与选定对象相关联的各种条件,使用所述过滤规则确定所述对象的上下文。一旦识别了所述对象和确定了所述对象的上下文,步骤53确定能够对该对象执行的若干动作。对所述选定对象,在不同的上下文中将存在不同组的动作。步骤64产生动作列表,内含在步骤53确定的所述动作。这个输出列表在前述弹出列表形式中以某种形式呈现给所述用户。然后所述终端用户从所述列表中选择所述动作之一。
图6是一幅流程图,展示了本发明所述动作输入过程(第2阶段)中的步骤。这个过程确定执行所述选定动作的必要输入。这些输入是内部输入,对所述终端用户透明。这些内部输入根据所述选定对象的上下文从所述动作输入规则导出。在第2阶段中,步骤60识别所述终端用户选定的动作。步骤61从所述输入数据库中检索将应用于所述选定动作的所述输入规则。步骤62根据先前确定的所述选定对象的上下文,对所述选定的动作应用所述规则。在这个步骤中,为了确定执行这项选定动作所需的输入,应用了若干所述输入规则。在步骤62中识别了所述输入后,下一个步骤63将要产生执行/实施所述动作所需的任务列表。步骤53还产生输入映射。这项映射包含每项任务所用的若干所述输入的标识,以及与该输入相关联的数值。在所述映射中,为了使得所述过程知晓什么数值/输入与哪项任务相关联,每个数值都由固定的名字标识。在一项实施中,当任务需要一定的输入时,所述任务能够从输入映射中识别哪个数值是该任务的恰当输入。
图7是一幅流程图,展示了本发明所述动作任务过程(第3阶段)中的步骤。在这个过程中,所述动作任务引擎使用在所述输入映射中的输入,执行所述任务列表中的每项任务。步骤70从所述动作输入引擎接收所述任务列表和输入映射。步骤71从所述列表中检索任务。然后步骤72应用所述任务规则,以便确定执行所述任务的必要步骤。在该确定过程之后,步骤73使用所述确定的步骤以及所述输入映射的适当输入执行所述任务。例如,假若在所述列表中的一项任务是“A任务”,所述任务可能确定需要在所述计算机上运行某个可执行程序。对第二项任务而言,将有不同的过程。在这项任务完成时,步骤74返回所述列表,并且判断所述列表上是否有其他任务。如果所述列表上有其他任务,所述过程返回步骤71。所述过程然后对每项剩余任务重复步骤71、72和83。如果在所述列表中没有其他要执行的任务,所述过程将在步骤75终止。
图8是一幅示意图,展示了实施本发明方法的滞留数据流序列。连同图3联合阐述这些步骤。步骤80创建所述数据库,内含所述过滤、上下文和任务规则,由一组XML文档汇集。这是初始化步骤,对每个新的规则集仅仅应用一次。步骤81向所述动作过滤引擎提供所述用户界面的当前操作状态。在步骤82中,所述动作过滤引擎访问所述过滤规则,以便确定适用于所述当前上下文状态的一组操作。在步骤83中,所述动作过滤引擎返回所述动作组作为输出。这时在步骤84中,外部参与者/用户从所述动作列表中选择动作。(这可能是UI的用户从动作菜单中选择所述动作。)步骤85向所述动作输入引擎提供所述选定动作和所述当前上下文状态。在步骤86中,所述动作输入引擎访问所述输入规则以便从所述上下文状态产生一组输入名称/数值对(称为输入映射),并且确定任务列表以便执行。在步骤87中,所述操作输入引擎返回所述输入映射和所述任务列表作为输入。步骤88向所述动作任务引擎提供所述输入映射和所述任务列表。在步骤89中,所述动作任务引擎访问所述任务规则,以确定如何执行所述任务列表;然后执行每项任务,以所述输入映射作为输入。在步骤90中,所述动作任务引擎使用来自所述输入映射的输入,执行所述任务列表中的每项任务。
下面的实例展示了本发明在计算机系统管理应用中的实施。在所述实例中,所述终端用户选择的GUI对象是计算机。能够在计算机上执行的一种动作是可以重新启动/再启动所述计算机。这种重新启动操作可以出现在由所述动作过滤引擎产生的动作列表上。其他动作,比如“关机”或“休眠”也可能出现在动作列表上。所述用户可以从这个动作列表中选择所述重新启动动作。这时,所述过程移至所述动作输入引擎,确定执行所述重新启动操作所需的任何参数。所述动作输入引擎将检查所述输入规则,以便确定执行该重新启动动作需要什么参数。从所述动作输入引擎导出的一个输入可以是在定义的时间间隔比如10秒后重新启动。在不同的上下文中,在所述重新启动之前可以有不同的时间间隔或没有延迟。这种输入可能在由所述动作输入引擎产生的所述输入映射中。如上所述,所述输入映射中的这个输入入口可能会有比如“重新启动延迟”的名称和数字“10”。这种映射去往所述动作任务引擎。在真实情况下,为了完成这种重新启动动作可能有几项操作。所述动作输入引擎可能产生在所述重新启动动作中执行的所述任务组(任务列表)。例如,所述任务组可以包括(1)关闭所有的应用程序,(2)通知所述用户以及(3)重新启动所述机器。这种任务列表和输入映射都去往所述动作任务引擎。所述动作任务引擎将会确定如何根据所述任务规则执行每项任务。例如,在关闭所述计算机的任务中,所述动作任务引擎将确定在这个过程中的步骤,并且使用所述输入映射数据执行这个过程中的若干所述步骤。
值得注意的是,尽管本发明是在全功能数据处理系统的上下文中描述,但是本领域的技术人员将认同,本发明的所述过程能够以计算机可读介质中指令形式和多种其他形式发行,不管实现所述发行使用的具体介质如何。计算机可读介质的实例包括介质,比如EPROM、ROM、磁带、纸张、软盘、硬盘驱动器、RAM和CD-ROM,以及传输类媒体,比如数字和模拟通信链接。
权利要求
1.一种动态确定对图形用户界面环境中的选定对象执行的动作的系统,包括动作过滤模块,确定对图形用户界面对象的若干动作;动作输入模块,确定对选定图形用户界面对象执行确定动作的若干任务;动作任务模块,定义执行确定任务所需的若干步骤;以及由所述动作过滤模块、上下文模块和动作任务模块使用的规则,以便确定对对象执行的所述对应动作、任务和操作。
2.根据权利要求1的系统,其特征在于,所述规则包括一组过滤规则;一组输入规则;以及一组任务规则。
3.根据权利要求2的系统,其特征在于,所述若干组规则由若干XML文件组成。
4.根据权利要求2的系统,进一步包括所述若干规则驻留其中的数据库。
5.根据权利要求1的系统,进一步包括由所述动作过滤模块产生的一个或多个对象动作列表。
6.根据权利要求5的系统,进一步包括由所述动作输入模块产生的一个或多个任务列表,任务列表基于从动作列表中选定的操作。
7.根据权利要求6的系统,进一步包括对每个任务列表的输入映射,所述输入映射包括一组数值对。
8.根据权利要求7的系统,进一步包括由所述动作任务模块产生的一组步骤,以便执行所述任务列表中的任务。
9.根据权利要求4的系统,其特征在于,所述数据库进一步包括过滤规则数据库、输入规则数据库和任务规则数据库。
10.一种动态确定对图形用户界面环境中的选定对象执行的动作的方法,包括以下步骤确定图形界面环境中选定对象的上下文;定义能够对所述选定对象执行的若干动作,所述动作包括动作列表;定义实施从所述动作列表中选定的动作所需的一项或多项任务的组;以及确定执行所定义任务所需的一组操作。
11.根据权利要求10的方法,进一步包括产生所述动作定义步骤、所述任务定义步骤和所述操作确定步骤中所用若干规则的步骤。
12.根据权利要求10的方法,其特征在于,所述上下文确定步骤进一步包括以下步骤识别选定的对象;以及对所述选定的对象应用一组规则。
13.根据权利要求12的方法,其特征在于,所述动作定义步骤进一步包括应用定义哪些操作能够对一定上下文中对象执行的若干规则的步骤。
14.根据权利要求13的方法,其特征在于,所述任务定义步骤进一步包括应用定义哪些任务是执行选定动作所需的若干规则的步骤,所述规则也定义了执行所述定义任务所用的一组输入值。
15.根据权利要求14的方法,其特征在于,所述操作定义步骤进一步包括以下步骤应用定义执行定义任务所需的若干操作的若干规则;产生实施定义的任务的若干步骤;以及使用适当的输入值执行所述任务。
16.一种计算机可读介质中的计算机程序产品,用于动态确定对图形用户界面环境中的选定对象执行的动作,包括确定图形界面环境中选定对象上下文的若干指令;定义能够对所述选定对象执行的若干动作的若干指令,所述动作包括动作列表;定义实施从所述动作列表中选定的动作所需的一项或多项任务的组的若干指令;以及确定执行所定义的任务所需的一组操作的若干指令。
17.根据权利要求16的计算机程序产品,进一步包括创建所述动作定义指令、所述任务定义指令和所述操作确定指令中所用的若干规则的若干指令。
18.根据权利要求16的计算机程序产品,其特征在于,所述上下文确定指令进一步包括识别选定对象的若干指令;以及对所述选定的对象应用一组规则的若干指令。
19.根据权利要求18的计算机程序产品,其特征在于,所述动作定义指令进一步包括应用定义哪些操作能够对一定上下文中的对象执行的若干规则的指令。
20.根据权利要求19的计算机程序产品,其特征在于,所述任务定义指令进一步包括应用定义哪些任务是执行选定动作所需的若干规则的指令,所述规则还定义了执行所述定义任务所用的一组输入值。
21.根据权利要求20的计算机程序产品,其特征在于,所述操作定义指令进一步包括应用定义执行定义任务所需的若干操作的若干规则的若干指令;产生实施定义任务的若干步骤的若干指令;以及使用适当的输入值执行所述任务的若干指令。
全文摘要
本发明公开了一种动态确定对网络主页GUI环境中选定项执行的动作的方法,其思路是定义一组规则,它们根据选定对象的上下文和UI操作系统环境(后文称为过滤规则),确定应用的所述动作组;再次根据上述上下文(后文称为输入规则)对选定动作确定其输入值;以及确定将要运行的后端任务组,以便进行该动作(后文称为任务规则)。假定软件引擎将要使用这些规则,进行上述操作。这样实施的优点在于,系统在其数据库中通过改变或增加所述规则,能够适应变化的条件。
文档编号G06F9/44GK1763712SQ20051010868
公开日2006年4月26日 申请日期2005年10月18日 优先权日2004年10月21日
发明者约翰·马克·哈特尔, 约瑟夫·劳伦斯·桑德斯, 加利·托马斯·巴塔, 舒布哈·文卡特斯瓦兰 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1