專利名稱:動(dòng)態(tài)確定對(duì)網(wǎng)絡(luò)主頁gui環(huán)境中選定項(xiàng)執(zhí)行的動(dòng)作的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形用戶界面,確切地說,涉及動(dòng)態(tài)地確定對(duì)網(wǎng)絡(luò)主頁圖形用戶界面環(huán)境中圖形用戶界面選定項(xiàng)執(zhí)行的動(dòng)作的方法。
背景技術(shù):
為了使希望的通信更容易、更快捷和/或更高效,已經(jīng)制造了多種類型的通信設(shè)備。傳真機(jī)和個(gè)人計(jì)算機(jī)(PC)就是此類設(shè)備的實(shí)例。一種此類的進(jìn)展是創(chuàng)建圖形用戶界面(GUI)。GUI一種程序界面,它使用所述計(jì)算機(jī)的圖形功能使得所述程序更易于使用。精心設(shè)計(jì)的圖形用戶界面可以令用戶免于學(xué)習(xí)復(fù)雜的命令語言。反之,許多用戶發(fā)現(xiàn)他們用命令驅(qū)動(dòng)的界面時(shí)工作更加有效,尤其是當(dāng)他們已經(jīng)知曉所述命令語言時(shí)。圖形用戶界面,比如微軟的視窗和蘋果麥金托什機(jī)使用的界面,以下面的基本部分為特色·指針出現(xiàn)在顯示屏幕上的符號(hào),你移動(dòng)它去選擇對(duì)象和命令。所述指針通常表現(xiàn)為小的斜箭頭。然而,文本處理應(yīng)用程序使用形似大寫字母I的I型指針。
·定點(diǎn)設(shè)備使你能夠在顯示屏幕上選擇對(duì)象的設(shè)備,比如鼠標(biāo)或跟蹤球。
·圖標(biāo)表示命令、文件或窗口的小圖片。把所述指針移至所述圖標(biāo)并且按下鼠標(biāo)鍵,你就能夠執(zhí)行一條命令或者把所述圖標(biāo)轉(zhuǎn)換成窗口。你也能夠在顯示屏幕上移動(dòng)圖標(biāo),如同它們是你桌面上真實(shí)物體。
·桌面顯示屏幕上圖標(biāo)分組的區(qū)域經(jīng)常稱為桌面,因?yàn)檫@些圖標(biāo)試圖表示真實(shí)桌面上的真實(shí)物體。
·窗口你能夠?qū)⑵聊粍澐殖刹煌膮^(qū)域。在每個(gè)窗口中,你能夠運(yùn)行不同的程序或顯示不同的文件。你能夠在顯示屏幕上移動(dòng)窗口,并且隨意改變其形狀和尺寸。
·菜單大多數(shù)圖形用戶界面使你通過從菜單作出選擇而執(zhí)行命令。
許多圖形用戶界面都是基于上下文的系統(tǒng)。在基于上下文的系統(tǒng)中,在所述屏幕上顯示出對(duì)象(圖標(biāo))的列表。例如所述對(duì)象可能代表各種文件(即所述桌面上的微軟資源管理器)。與所述圖標(biāo)相連的是操作的組/菜單,用右鍵點(diǎn)擊所述圖標(biāo)可以顯示它們。在所述菜單中的操作是相對(duì)于所述選定項(xiàng)的操作。在某個(gè)實(shí)例中,如果所述選定的對(duì)象是文件,將會(huì)出現(xiàn)的操作之一可能是“刪除”操作。
在當(dāng)前系統(tǒng)中,對(duì)給定對(duì)象能夠執(zhí)行的若干操作是硬編碼的。這種硬編碼設(shè)計(jì)把操作范圍限制為僅有所述硬編碼的操作。如果希望執(zhí)行沒有硬編碼的操作,可能需要對(duì)所述對(duì)象的該操作進(jìn)行硬編碼。
仍然需要圖形用戶界面的方法和系統(tǒng)能夠動(dòng)態(tài)地確定對(duì)網(wǎng)絡(luò)主頁圖形用戶界面環(huán)境中的選定項(xiàng)執(zhí)行的動(dòng)作。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種方法和系統(tǒng),能夠動(dòng)態(tài)地確定對(duì)圖形界面用戶環(huán)境中對(duì)象的若干操作。
本發(fā)明的第二個(gè)目的是創(chuàng)建本發(fā)明的所述方法和系統(tǒng)使用的過濾規(guī)則組,以便動(dòng)態(tài)地確定能夠?qū)x定對(duì)象進(jìn)行的若干動(dòng)作。
本發(fā)明的第三個(gè)目的是創(chuàng)建本發(fā)明的所述方法和系統(tǒng)使用的輸入規(guī)則組,以便動(dòng)態(tài)地確定進(jìn)行所述選定動(dòng)作所需的若干任務(wù)。
本發(fā)明的第四個(gè)目的是創(chuàng)建本發(fā)明的所述方法和系統(tǒng)使用的任務(wù)規(guī)則組,以便動(dòng)態(tài)地確定在進(jìn)行所述選定動(dòng)作所需的所述若干任務(wù)的執(zhí)行中實(shí)施的若干步驟。
本發(fā)明的思路是定義一組規(guī)則,它們1〕根據(jù)選定對(duì)象的上下文和UI操作系統(tǒng)環(huán)境(后文稱為過濾規(guī)則),確定對(duì)選定對(duì)象應(yīng)用的所述動(dòng)作組;2〕使用一組輸入規(guī)則對(duì)選定動(dòng)作確定一組輸入值;3〕確定將要運(yùn)行的后端任務(wù)組,以便進(jìn)行該動(dòng)作(后文稱為任務(wù)規(guī)則)。假定軟件引擎將要使用這些規(guī)則,進(jìn)行上述操作。這樣實(shí)施的優(yōu)點(diǎn)在于,系統(tǒng)在其數(shù)據(jù)庫中通過改變或增加所述規(guī)則,能夠適應(yīng)變化的條件。
典型情況下,能夠根據(jù)所述選定對(duì)象的狀態(tài)和所述用戶界面的當(dāng)前操作環(huán)境,改變將要執(zhí)行的所述動(dòng)作。(這種操作環(huán)境稱為所述當(dāng)前操作“上下文”。)一旦選定了執(zhí)行對(duì)象,所述動(dòng)作需要的還可能有一組輸入值。這些輸入值也能夠根據(jù)所述UI的操作上下文而改變。最后,每項(xiàng)動(dòng)作都將映射到一項(xiàng)或多項(xiàng)需要運(yùn)行(使用若干所述輸入值)的后端任務(wù),以便滿足所述動(dòng)作與所述用戶的聯(lián)系。對(duì)這個(gè)問題早先的解決方案通常包括程序地硬編碼這些規(guī)則,以便對(duì)給定的選定對(duì)象確定動(dòng)作、輸入和后端任務(wù)。這樣做可能導(dǎo)致系統(tǒng)不易適應(yīng)其操作環(huán)境和安裝配置的變化。
在一個(gè)實(shí)例中,用戶的桌面上可能有對(duì)象(圖標(biāo))。如果所述用戶右鍵點(diǎn)擊該對(duì)象,與常規(guī)系統(tǒng)一樣將會(huì)出現(xiàn)彈出菜單。然而在本發(fā)明中,所述菜單中的若干項(xiàng)會(huì)隨時(shí)間而變化,取決于所述用戶選定所述對(duì)象時(shí)的所述當(dāng)前操作環(huán)境。如上所述,常規(guī)系統(tǒng)的所述彈出項(xiàng)是固定的,與所述操作環(huán)境無關(guān)。如果所述用戶選擇了所述項(xiàng)之一,比如“打印”,本發(fā)明的下一階段可能會(huì)產(chǎn)生一組輸入,在實(shí)施該動(dòng)作時(shí)使用。此階段也會(huì)產(chǎn)生實(shí)施所述“打印”動(dòng)作時(shí)將要執(zhí)行的所述任務(wù)組。在內(nèi)部,執(zhí)行所述“打印”動(dòng)作可能需要數(shù)個(gè)任務(wù)。在實(shí)施所述任務(wù)期間,所述任務(wù)可能使用所述產(chǎn)生的輸入。在每個(gè)階段期間,所述各種XML規(guī)則組將會(huì)確定實(shí)施的所述動(dòng)作、輸入和任務(wù)。
附圖簡(jiǎn)要說明
圖1是顯示著常規(guī)圖形用戶界面圖標(biāo)的終端屏幕;圖2是常規(guī)圖形用戶界面圖標(biāo)以及與該圖標(biāo)相關(guān)聯(lián)動(dòng)作的實(shí)例;圖3是本發(fā)明方法和系統(tǒng)的結(jié)構(gòu);圖4是本發(fā)明方法實(shí)施中步驟的一般流程圖;圖5是一幅流程圖,展示了本發(fā)明在所述動(dòng)作過濾過程中的步驟;
圖6是一幅流程圖,展示了本發(fā)明在所述動(dòng)作輸入過程中的步驟;圖7是一幅流程圖,展示了本發(fā)明在所述動(dòng)作任務(wù)過程中的步驟;圖8是一幅示意圖,展示了實(shí)施本發(fā)明方法的數(shù)據(jù)流序列。
具體實(shí)施例方式
本發(fā)明包括在網(wǎng)絡(luò)主頁圖形用戶界面(GUI)環(huán)境中,動(dòng)態(tài)地確定對(duì)選定項(xiàng)要執(zhí)行的動(dòng)作的方法和系統(tǒng)。如先前的定義,GUI是使用計(jì)算機(jī)的圖形功能使所述程序更易于使用的程序界面。參考圖1,其中顯示的是計(jì)算機(jī)屏幕10,包含著通過開始圖標(biāo)11和對(duì)象圖標(biāo)12能夠啟動(dòng)的GUI軟件。圖2展示了所述“打印”圖標(biāo)20作為GUI對(duì)象。點(diǎn)擊此“打印”圖標(biāo)將顯示用戶能夠選擇的數(shù)個(gè)動(dòng)作。所述動(dòng)作以包括項(xiàng)菜單之窗口21的形式顯示,這些項(xiàng)表示所述用戶可對(duì)該GUI對(duì)象采取的每個(gè)動(dòng)作。如圖所示,對(duì)所述“打印”圖標(biāo),存在著幾個(gè)可對(duì)該圖標(biāo)執(zhí)行的動(dòng)作。在這個(gè)具體實(shí)例中,所述開始對(duì)象具有能夠?qū)υ搶?duì)象執(zhí)行的“打開”、“打印”以及“快速查看”。如上所述,使用所述常規(guī)GUI技術(shù),每種動(dòng)作都是不可變的,使得所述系統(tǒng)非??贪?,在所述GUI上下文中難以改變動(dòng)作。
本發(fā)明的實(shí)施致力于使得若干對(duì)象關(guān)聯(lián)到若干動(dòng)作,它們是動(dòng)態(tài)的并且取決于所述對(duì)象的當(dāng)前環(huán)境。圖3展示了本發(fā)明的系統(tǒng)的結(jié)構(gòu)。此系統(tǒng)包括三個(gè)主要部件。所述部件在三個(gè)不同的階段中實(shí)施。這些部件及其互動(dòng)在下面的說明中討論。參考圖3,第一個(gè)部件是動(dòng)作過濾引擎。所述動(dòng)作過濾引擎31是軟件子部件,它對(duì)輸入上下文狀態(tài)應(yīng)用過濾規(guī)則。所述上下文狀態(tài)是一組數(shù)據(jù)項(xiàng),用于量化所述系統(tǒng)的當(dāng)前狀態(tài)。它們向動(dòng)作代理引擎提供所述當(dāng)前操作上下文。這些數(shù)據(jù)項(xiàng)包括所述選定數(shù)據(jù)對(duì)象性質(zhì)所述portlet請(qǐng)求屬性所述portlet會(huì)話屬性所述用戶的角色再次參考圖3,所述過濾規(guī)則32以XML模式格式創(chuàng)建。這種XML文檔說明了一組過濾規(guī)則。它用于向所述過濾規(guī)則數(shù)據(jù)庫33安置新的規(guī)則。所述過濾規(guī)則數(shù)據(jù)庫用于將一組動(dòng)作過濾至一個(gè)子集,應(yīng)用于所述給定上下文狀態(tài)。過濾規(guī)則基于以下各項(xiàng),確定能夠?qū)o定環(huán)境(上下文)中的對(duì)象執(zhí)行的操作選定數(shù)據(jù)對(duì)象的數(shù)據(jù)類型選定數(shù)據(jù)對(duì)象的性質(zhì)值所述portlet請(qǐng)求狀態(tài)的屬性值所述portlet會(huì)話狀態(tài)的屬性值所述用戶的角色下面是根據(jù)本發(fā)明的所述過濾規(guī)則32的XML模式動(dòng)作過濾器
<?xml version=″1.0″e(cuò)ncoding=″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&apos;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.
&quot;regex&quot;indicates use of regularexpression matching,&quot;string&quot;indicates use ofexact string matching and&quot;stringlgnoreCase&quot;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&apos;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.
&quot;regex&quot;indicates use of regularexpression matching,&quot;string&quot;indicates use ofexact string matching and &quot;stringlgnoreCase&quot;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.
&quot;regex&quot;indicates use of regularexpression matching,&quot;string&quot;indicates use ofexact string matching and &quot;stringlgnoreCase&quot;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.
&quot;Request&quot;scope accesses theportlet request object.&quot;Session&quot;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&apos;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.
&quot;regex&quot;indicates use of regularexpression matching,&quot;string&quot;indicates use ofexact string matching and &quot;stringlgnoreCase&quot;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>
所述動(dòng)作過濾引擎的輸出是通過了所述過濾規(guī)則的動(dòng)作列表。所述動(dòng)作列表表示了根據(jù)當(dāng)前對(duì)象上下文能夠?qū)λ鰧?duì)象執(zhí)行的若干動(dòng)作。該列表類似于包含著可用動(dòng)作菜單的所述彈出窗口。
本發(fā)明的系統(tǒng)的第二個(gè)部件是動(dòng)作輸入引擎34。所述動(dòng)作輸入引擎是軟件子部件,它根據(jù)一組輸入規(guī)則35為選定的對(duì)象動(dòng)作產(chǎn)生若干輸入。這些輸入規(guī)則確定輸入,以響應(yīng)所述對(duì)象的所述選定動(dòng)作和所述上下文狀態(tài)。所述動(dòng)作輸入引擎的輸出是一組名稱/數(shù)值對(duì),包括上下文狀態(tài)(輸入映射)和要執(zhí)行的任務(wù)列表。輸入規(guī)則35的所述組在XML文檔中介紹和定義。所述輸入規(guī)則駐留在規(guī)則數(shù)據(jù)庫36中。所述動(dòng)作輸入引擎根據(jù)所述上下文狀態(tài)以及所述用戶從所述動(dòng)作列表中選擇的動(dòng)作,應(yīng)用這些輸入規(guī)則。根據(jù)這些規(guī)則對(duì)所述選定動(dòng)作的應(yīng)用結(jié)果,所述動(dòng)作輸入引擎產(chǎn)生一組名稱/數(shù)值對(duì)(輸入映射)以及與動(dòng)作相關(guān)聯(lián)的任務(wù)列表。輸入映射值可以從下面的資源提取所述選定數(shù)據(jù)對(duì)象的性質(zhì)從所述portlet請(qǐng)求狀態(tài)得出的屬性從所述portlet會(huì)話狀態(tài)得出的屬性定義的常量以下是根據(jù)本發(fā)明的所述輸入規(guī)則35的XML模式
動(dòng)作輸入?xml version=″1.0″e(cuò)ncoding=″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.
&quot;Request&quot;scope accesses theportlet request object.&quot;Session&quot;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,本發(fā)明的所述第三個(gè)部件是動(dòng)作任務(wù)引擎37。該動(dòng)作任務(wù)引擎是軟件子部件,它根據(jù)所述任務(wù)規(guī)則執(zhí)行所述輸入列表中的任務(wù),以及饋入每項(xiàng)被執(zhí)行任務(wù)作為輸入的所述輸入映射。所述任務(wù)規(guī)則是駐留在數(shù)據(jù)庫39的若干設(shè)定規(guī)則38,用于執(zhí)行以給定的名稱/數(shù)值對(duì)(輸入映射)作為輸入而給定列表中的任務(wù)。所述動(dòng)作任務(wù)引擎確定執(zhí)行所述任務(wù)列表上任務(wù)時(shí)需要哪些步驟。雖然可以定義和插入若干定制動(dòng)作,但是以下任務(wù)組是內(nèi)建在所述操作任務(wù)引擎之中開始ISC網(wǎng)頁,向它發(fā)送所述輸入(輸入映射)作為上下文變化事件。
開始portlet,向它發(fā)送所述輸入(輸入映射)作為上下文變化事件。
向所述當(dāng)前ISC網(wǎng)頁上的所有portlet廣播輸入(輸入映射)作為上下文變化事件。
以下是根據(jù)本發(fā)明的所述任務(wù)規(guī)則38的XML模式任務(wù)過濾器?xml version=″1.0″e(cuò)ncoding=″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格式定義所述過濾、上下文和任務(wù)規(guī)則,提供了實(shí)施所述規(guī)則的靈活性。在本發(fā)明中,所述用戶能夠根據(jù)需要使用所述XML格式修改所述規(guī)則。
圖4是執(zhí)行本發(fā)明所述方法步驟的一般流程圖。本發(fā)明過程中的第一個(gè)步驟40是創(chuàng)建將在本發(fā)明的所述三個(gè)階段中使用的多組規(guī)則。步驟41產(chǎn)生能夠?qū)x定對(duì)象執(zhí)行的一組動(dòng)作(動(dòng)作列表)。這個(gè)動(dòng)作產(chǎn)生步驟在所述動(dòng)作過濾引擎中發(fā)生。所述動(dòng)作列表產(chǎn)生后,在步驟42中提示所述用戶對(duì)所述操作進(jìn)行選擇。產(chǎn)生所述動(dòng)作列表的方式為檢索若干過濾規(guī)則,并且在考慮到所述定義對(duì)象上下文的情況下對(duì)所述選定對(duì)象應(yīng)用這些規(guī)則。在所述過濾規(guī)則組之內(nèi)有在所述定義的上下文中覆蓋所述選定對(duì)象的規(guī)則。此規(guī)則將公開在所述定義的上下文中對(duì)該對(duì)象執(zhí)行的操作(以列表形式)。在所述動(dòng)作輸入引擎接收所述用戶選定的動(dòng)作。在步驟43中,所述動(dòng)作輸入引擎產(chǎn)生一組任務(wù)(任務(wù)列表)和輸入映射。這組任務(wù)和映射基于所述輸入規(guī)則、所述對(duì)象當(dāng)前和所述選定的動(dòng)作。在步驟44中,所述動(dòng)作任務(wù)引擎創(chuàng)建了實(shí)施所述任務(wù)必要的具體步驟。每項(xiàng)任務(wù)都將包括為了運(yùn)行該任務(wù)而執(zhí)行的一組步驟。
圖5是一幅流程圖,展示了本發(fā)明所述動(dòng)作過濾過程(第1階段)中的步驟。所述用戶選擇GUI對(duì)象將激活這個(gè)過程。起始步驟50訪問位于所述過濾規(guī)則數(shù)據(jù)庫中的若干過濾規(guī)則。下一個(gè)步驟51將要使用所述過濾規(guī)則以識(shí)別所述選定的對(duì)象。所述對(duì)象識(shí)別之后,步驟52將確定所述對(duì)象的上下文。這個(gè)步驟考察與選定對(duì)象相關(guān)聯(lián)的各種條件,使用所述過濾規(guī)則確定所述對(duì)象的上下文。一旦識(shí)別了所述對(duì)象和確定了所述對(duì)象的上下文,步驟53確定能夠?qū)υ搶?duì)象執(zhí)行的若干動(dòng)作。對(duì)所述選定對(duì)象,在不同的上下文中將存在不同組的動(dòng)作。步驟64產(chǎn)生動(dòng)作列表,內(nèi)含在步驟53確定的所述動(dòng)作。這個(gè)輸出列表在前述彈出列表形式中以某種形式呈現(xiàn)給所述用戶。然后所述終端用戶從所述列表中選擇所述動(dòng)作之一。
圖6是一幅流程圖,展示了本發(fā)明所述動(dòng)作輸入過程(第2階段)中的步驟。這個(gè)過程確定執(zhí)行所述選定動(dòng)作的必要輸入。這些輸入是內(nèi)部輸入,對(duì)所述終端用戶透明。這些內(nèi)部輸入根據(jù)所述選定對(duì)象的上下文從所述動(dòng)作輸入規(guī)則導(dǎo)出。在第2階段中,步驟60識(shí)別所述終端用戶選定的動(dòng)作。步驟61從所述輸入數(shù)據(jù)庫中檢索將應(yīng)用于所述選定動(dòng)作的所述輸入規(guī)則。步驟62根據(jù)先前確定的所述選定對(duì)象的上下文,對(duì)所述選定的動(dòng)作應(yīng)用所述規(guī)則。在這個(gè)步驟中,為了確定執(zhí)行這項(xiàng)選定動(dòng)作所需的輸入,應(yīng)用了若干所述輸入規(guī)則。在步驟62中識(shí)別了所述輸入后,下一個(gè)步驟63將要產(chǎn)生執(zhí)行/實(shí)施所述動(dòng)作所需的任務(wù)列表。步驟53還產(chǎn)生輸入映射。這項(xiàng)映射包含每項(xiàng)任務(wù)所用的若干所述輸入的標(biāo)識(shí),以及與該輸入相關(guān)聯(lián)的數(shù)值。在所述映射中,為了使得所述過程知曉什么數(shù)值/輸入與哪項(xiàng)任務(wù)相關(guān)聯(lián),每個(gè)數(shù)值都由固定的名字標(biāo)識(shí)。在一項(xiàng)實(shí)施中,當(dāng)任務(wù)需要一定的輸入時(shí),所述任務(wù)能夠從輸入映射中識(shí)別哪個(gè)數(shù)值是該任務(wù)的恰當(dāng)輸入。
圖7是一幅流程圖,展示了本發(fā)明所述動(dòng)作任務(wù)過程(第3階段)中的步驟。在這個(gè)過程中,所述動(dòng)作任務(wù)引擎使用在所述輸入映射中的輸入,執(zhí)行所述任務(wù)列表中的每項(xiàng)任務(wù)。步驟70從所述動(dòng)作輸入引擎接收所述任務(wù)列表和輸入映射。步驟71從所述列表中檢索任務(wù)。然后步驟72應(yīng)用所述任務(wù)規(guī)則,以便確定執(zhí)行所述任務(wù)的必要步驟。在該確定過程之后,步驟73使用所述確定的步驟以及所述輸入映射的適當(dāng)輸入執(zhí)行所述任務(wù)。例如,假若在所述列表中的一項(xiàng)任務(wù)是“A任務(wù)”,所述任務(wù)可能確定需要在所述計(jì)算機(jī)上運(yùn)行某個(gè)可執(zhí)行程序。對(duì)第二項(xiàng)任務(wù)而言,將有不同的過程。在這項(xiàng)任務(wù)完成時(shí),步驟74返回所述列表,并且判斷所述列表上是否有其他任務(wù)。如果所述列表上有其他任務(wù),所述過程返回步驟71。所述過程然后對(duì)每項(xiàng)剩余任務(wù)重復(fù)步驟71、72和83。如果在所述列表中沒有其他要執(zhí)行的任務(wù),所述過程將在步驟75終止。
圖8是一幅示意圖,展示了實(shí)施本發(fā)明方法的滯留數(shù)據(jù)流序列。連同圖3聯(lián)合闡述這些步驟。步驟80創(chuàng)建所述數(shù)據(jù)庫,內(nèi)含所述過濾、上下文和任務(wù)規(guī)則,由一組XML文檔匯集。這是初始化步驟,對(duì)每個(gè)新的規(guī)則集僅僅應(yīng)用一次。步驟81向所述動(dòng)作過濾引擎提供所述用戶界面的當(dāng)前操作狀態(tài)。在步驟82中,所述動(dòng)作過濾引擎訪問所述過濾規(guī)則,以便確定適用于所述當(dāng)前上下文狀態(tài)的一組操作。在步驟83中,所述動(dòng)作過濾引擎返回所述動(dòng)作組作為輸出。這時(shí)在步驟84中,外部參與者/用戶從所述動(dòng)作列表中選擇動(dòng)作。(這可能是UI的用戶從動(dòng)作菜單中選擇所述動(dòng)作。)步驟85向所述動(dòng)作輸入引擎提供所述選定動(dòng)作和所述當(dāng)前上下文狀態(tài)。在步驟86中,所述動(dòng)作輸入引擎訪問所述輸入規(guī)則以便從所述上下文狀態(tài)產(chǎn)生一組輸入名稱/數(shù)值對(duì)(稱為輸入映射),并且確定任務(wù)列表以便執(zhí)行。在步驟87中,所述操作輸入引擎返回所述輸入映射和所述任務(wù)列表作為輸入。步驟88向所述動(dòng)作任務(wù)引擎提供所述輸入映射和所述任務(wù)列表。在步驟89中,所述動(dòng)作任務(wù)引擎訪問所述任務(wù)規(guī)則,以確定如何執(zhí)行所述任務(wù)列表;然后執(zhí)行每項(xiàng)任務(wù),以所述輸入映射作為輸入。在步驟90中,所述動(dòng)作任務(wù)引擎使用來自所述輸入映射的輸入,執(zhí)行所述任務(wù)列表中的每項(xiàng)任務(wù)。
下面的實(shí)例展示了本發(fā)明在計(jì)算機(jī)系統(tǒng)管理應(yīng)用中的實(shí)施。在所述實(shí)例中,所述終端用戶選擇的GUI對(duì)象是計(jì)算機(jī)。能夠在計(jì)算機(jī)上執(zhí)行的一種動(dòng)作是可以重新啟動(dòng)/再啟動(dòng)所述計(jì)算機(jī)。這種重新啟動(dòng)操作可以出現(xiàn)在由所述動(dòng)作過濾引擎產(chǎn)生的動(dòng)作列表上。其他動(dòng)作,比如“關(guān)機(jī)”或“休眠”也可能出現(xiàn)在動(dòng)作列表上。所述用戶可以從這個(gè)動(dòng)作列表中選擇所述重新啟動(dòng)動(dòng)作。這時(shí),所述過程移至所述動(dòng)作輸入引擎,確定執(zhí)行所述重新啟動(dòng)操作所需的任何參數(shù)。所述動(dòng)作輸入引擎將檢查所述輸入規(guī)則,以便確定執(zhí)行該重新啟動(dòng)動(dòng)作需要什么參數(shù)。從所述動(dòng)作輸入引擎導(dǎo)出的一個(gè)輸入可以是在定義的時(shí)間間隔比如10秒后重新啟動(dòng)。在不同的上下文中,在所述重新啟動(dòng)之前可以有不同的時(shí)間間隔或沒有延遲。這種輸入可能在由所述動(dòng)作輸入引擎產(chǎn)生的所述輸入映射中。如上所述,所述輸入映射中的這個(gè)輸入入口可能會(huì)有比如“重新啟動(dòng)延遲”的名稱和數(shù)字“10”。這種映射去往所述動(dòng)作任務(wù)引擎。在真實(shí)情況下,為了完成這種重新啟動(dòng)動(dòng)作可能有幾項(xiàng)操作。所述動(dòng)作輸入引擎可能產(chǎn)生在所述重新啟動(dòng)動(dòng)作中執(zhí)行的所述任務(wù)組(任務(wù)列表)。例如,所述任務(wù)組可以包括(1)關(guān)閉所有的應(yīng)用程序,(2)通知所述用戶以及(3)重新啟動(dòng)所述機(jī)器。這種任務(wù)列表和輸入映射都去往所述動(dòng)作任務(wù)引擎。所述動(dòng)作任務(wù)引擎將會(huì)確定如何根據(jù)所述任務(wù)規(guī)則執(zhí)行每項(xiàng)任務(wù)。例如,在關(guān)閉所述計(jì)算機(jī)的任務(wù)中,所述動(dòng)作任務(wù)引擎將確定在這個(gè)過程中的步驟,并且使用所述輸入映射數(shù)據(jù)執(zhí)行這個(gè)過程中的若干所述步驟。
值得注意的是,盡管本發(fā)明是在全功能數(shù)據(jù)處理系統(tǒng)的上下文中描述,但是本領(lǐng)域的技術(shù)人員將認(rèn)同,本發(fā)明的所述過程能夠以計(jì)算機(jī)可讀介質(zhì)中指令形式和多種其他形式發(fā)行,不管實(shí)現(xiàn)所述發(fā)行使用的具體介質(zhì)如何。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括介質(zhì),比如EPROM、ROM、磁帶、紙張、軟盤、硬盤驅(qū)動(dòng)器、RAM和CD-ROM,以及傳輸類媒體,比如數(shù)字和模擬通信鏈接。
權(quán)利要求
1.一種動(dòng)態(tài)確定對(duì)圖形用戶界面環(huán)境中的選定對(duì)象執(zhí)行的動(dòng)作的系統(tǒng),包括動(dòng)作過濾模塊,確定對(duì)圖形用戶界面對(duì)象的若干動(dòng)作;動(dòng)作輸入模塊,確定對(duì)選定圖形用戶界面對(duì)象執(zhí)行確定動(dòng)作的若干任務(wù);動(dòng)作任務(wù)模塊,定義執(zhí)行確定任務(wù)所需的若干步驟;以及由所述動(dòng)作過濾模塊、上下文模塊和動(dòng)作任務(wù)模塊使用的規(guī)則,以便確定對(duì)對(duì)象執(zhí)行的所述對(duì)應(yīng)動(dòng)作、任務(wù)和操作。
2.根據(jù)權(quán)利要求1的系統(tǒng),其特征在于,所述規(guī)則包括一組過濾規(guī)則;一組輸入規(guī)則;以及一組任務(wù)規(guī)則。
3.根據(jù)權(quán)利要求2的系統(tǒng),其特征在于,所述若干組規(guī)則由若干XML文件組成。
4.根據(jù)權(quán)利要求2的系統(tǒng),進(jìn)一步包括所述若干規(guī)則駐留其中的數(shù)據(jù)庫。
5.根據(jù)權(quán)利要求1的系統(tǒng),進(jìn)一步包括由所述動(dòng)作過濾模塊產(chǎn)生的一個(gè)或多個(gè)對(duì)象動(dòng)作列表。
6.根據(jù)權(quán)利要求5的系統(tǒng),進(jìn)一步包括由所述動(dòng)作輸入模塊產(chǎn)生的一個(gè)或多個(gè)任務(wù)列表,任務(wù)列表基于從動(dòng)作列表中選定的操作。
7.根據(jù)權(quán)利要求6的系統(tǒng),進(jìn)一步包括對(duì)每個(gè)任務(wù)列表的輸入映射,所述輸入映射包括一組數(shù)值對(duì)。
8.根據(jù)權(quán)利要求7的系統(tǒng),進(jìn)一步包括由所述動(dòng)作任務(wù)模塊產(chǎn)生的一組步驟,以便執(zhí)行所述任務(wù)列表中的任務(wù)。
9.根據(jù)權(quán)利要求4的系統(tǒng),其特征在于,所述數(shù)據(jù)庫進(jìn)一步包括過濾規(guī)則數(shù)據(jù)庫、輸入規(guī)則數(shù)據(jù)庫和任務(wù)規(guī)則數(shù)據(jù)庫。
10.一種動(dòng)態(tài)確定對(duì)圖形用戶界面環(huán)境中的選定對(duì)象執(zhí)行的動(dòng)作的方法,包括以下步驟確定圖形界面環(huán)境中選定對(duì)象的上下文;定義能夠?qū)λ鲞x定對(duì)象執(zhí)行的若干動(dòng)作,所述動(dòng)作包括動(dòng)作列表;定義實(shí)施從所述動(dòng)作列表中選定的動(dòng)作所需的一項(xiàng)或多項(xiàng)任務(wù)的組;以及確定執(zhí)行所定義任務(wù)所需的一組操作。
11.根據(jù)權(quán)利要求10的方法,進(jìn)一步包括產(chǎn)生所述動(dòng)作定義步驟、所述任務(wù)定義步驟和所述操作確定步驟中所用若干規(guī)則的步驟。
12.根據(jù)權(quán)利要求10的方法,其特征在于,所述上下文確定步驟進(jìn)一步包括以下步驟識(shí)別選定的對(duì)象;以及對(duì)所述選定的對(duì)象應(yīng)用一組規(guī)則。
13.根據(jù)權(quán)利要求12的方法,其特征在于,所述動(dòng)作定義步驟進(jìn)一步包括應(yīng)用定義哪些操作能夠?qū)σ欢ㄉ舷挛闹袑?duì)象執(zhí)行的若干規(guī)則的步驟。
14.根據(jù)權(quán)利要求13的方法,其特征在于,所述任務(wù)定義步驟進(jìn)一步包括應(yīng)用定義哪些任務(wù)是執(zhí)行選定動(dòng)作所需的若干規(guī)則的步驟,所述規(guī)則也定義了執(zhí)行所述定義任務(wù)所用的一組輸入值。
15.根據(jù)權(quán)利要求14的方法,其特征在于,所述操作定義步驟進(jìn)一步包括以下步驟應(yīng)用定義執(zhí)行定義任務(wù)所需的若干操作的若干規(guī)則;產(chǎn)生實(shí)施定義的任務(wù)的若干步驟;以及使用適當(dāng)?shù)妮斎胫祱?zhí)行所述任務(wù)。
16.一種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,用于動(dòng)態(tài)確定對(duì)圖形用戶界面環(huán)境中的選定對(duì)象執(zhí)行的動(dòng)作,包括確定圖形界面環(huán)境中選定對(duì)象上下文的若干指令;定義能夠?qū)λ鲞x定對(duì)象執(zhí)行的若干動(dòng)作的若干指令,所述動(dòng)作包括動(dòng)作列表;定義實(shí)施從所述動(dòng)作列表中選定的動(dòng)作所需的一項(xiàng)或多項(xiàng)任務(wù)的組的若干指令;以及確定執(zhí)行所定義的任務(wù)所需的一組操作的若干指令。
17.根據(jù)權(quán)利要求16的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括創(chuàng)建所述動(dòng)作定義指令、所述任務(wù)定義指令和所述操作確定指令中所用的若干規(guī)則的若干指令。
18.根據(jù)權(quán)利要求16的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述上下文確定指令進(jìn)一步包括識(shí)別選定對(duì)象的若干指令;以及對(duì)所述選定的對(duì)象應(yīng)用一組規(guī)則的若干指令。
19.根據(jù)權(quán)利要求18的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述動(dòng)作定義指令進(jìn)一步包括應(yīng)用定義哪些操作能夠?qū)σ欢ㄉ舷挛闹械膶?duì)象執(zhí)行的若干規(guī)則的指令。
20.根據(jù)權(quán)利要求19的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述任務(wù)定義指令進(jìn)一步包括應(yīng)用定義哪些任務(wù)是執(zhí)行選定動(dòng)作所需的若干規(guī)則的指令,所述規(guī)則還定義了執(zhí)行所述定義任務(wù)所用的一組輸入值。
21.根據(jù)權(quán)利要求20的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述操作定義指令進(jìn)一步包括應(yīng)用定義執(zhí)行定義任務(wù)所需的若干操作的若干規(guī)則的若干指令;產(chǎn)生實(shí)施定義任務(wù)的若干步驟的若干指令;以及使用適當(dāng)?shù)妮斎胫祱?zhí)行所述任務(wù)的若干指令。
全文摘要
本發(fā)明公開了一種動(dòng)態(tài)確定對(duì)網(wǎng)絡(luò)主頁GUI環(huán)境中選定項(xiàng)執(zhí)行的動(dòng)作的方法,其思路是定義一組規(guī)則,它們根據(jù)選定對(duì)象的上下文和UI操作系統(tǒng)環(huán)境(后文稱為過濾規(guī)則),確定應(yīng)用的所述動(dòng)作組;再次根據(jù)上述上下文(后文稱為輸入規(guī)則)對(duì)選定動(dòng)作確定其輸入值;以及確定將要運(yùn)行的后端任務(wù)組,以便進(jìn)行該動(dòng)作(后文稱為任務(wù)規(guī)則)。假定軟件引擎將要使用這些規(guī)則,進(jìn)行上述操作。這樣實(shí)施的優(yōu)點(diǎn)在于,系統(tǒng)在其數(shù)據(jù)庫中通過改變或增加所述規(guī)則,能夠適應(yīng)變化的條件。
文檔編號(hào)G06F9/44GK1763712SQ20051010868
公開日2006年4月26日 申請(qǐng)日期2005年10月18日 優(yōu)先權(quán)日2004年10月21日
發(fā)明者約翰·馬克·哈特爾, 約瑟夫·勞倫斯·桑德斯, 加利·托馬斯·巴塔, 舒布哈·文卡特斯瓦蘭 申請(qǐng)人:國際商業(yè)機(jī)器公司