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