專利名稱:用戶接口協(xié)作框架的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及處理方面的用戶接口設(shè)計(jì)。更具體地說,本發(fā)明涉及 用于對用戶接口組件進(jìn)行協(xié)作開發(fā)和測試的處理框架。
背景技術(shù):
處理中的用戶接口 (user interface, UI)—般涉及計(jì)算機(jī)程序呈現(xiàn)給用戶的 圖形、文字或聽覺信息,并且,用戶利用控制機(jī)構(gòu)與計(jì)算機(jī)程序通信。UI — 般包括多個(gè)UI組件。例如,在圖形用戶接口 (general user interface, GUI)中, UI組件為一組圖形元素。圖形元素包括按鈕、窗口、面板、對話框以及上述 元素的組合,但不限于此。當(dāng)圖形元素組合在一起,從而給用戶提供特定功 能時(shí),圖形元素構(gòu)成一個(gè)UI組件。例如,在Microsoft Word中,UI組件可 以是菜單欄、狀態(tài)欄或書寫區(qū)。 一般情況下,不同的應(yīng)用程序包括不同的UI 組件。
UI組件經(jīng)常是相互依賴的。在以上的Microsoft Word的例子中,當(dāng)用 戶在書寫區(qū)中移動光標(biāo)時(shí),狀態(tài)欄跟蹤光標(biāo)移動,并且顯示光標(biāo)的當(dāng)前位置。 通過接收來自書寫區(qū)的消息,將光標(biāo)移動告知狀態(tài)欄,狀態(tài)欄對光標(biāo)位置進(jìn) 行更新。因此,書寫區(qū)的操作調(diào)用(invoke)狀態(tài)欄的操作,因此,在書寫 區(qū)與狀態(tài)欄之間存在相關(guān)性。
由于這種相互相關(guān)性,對UI組件進(jìn)行開發(fā)和測試通常是復(fù)雜且費(fèi)時(shí)的。 很難將UI組件分開且并行地開發(fā)它們。此外,由于相互相關(guān)性,按照慣例, 利用相同的編程語言并且在相同的運(yùn)行環(huán)境下設(shè)計(jì)UI組件,以保證內(nèi)部組件 消息被無差錯(cuò)地傳遞。這導(dǎo)致了實(shí)現(xiàn)UI組件的UI邏輯的復(fù)雜性、不靈活性 以及不可擴(kuò)展性。
如果在不同操作系統(tǒng)下、以不同語言寫成UI組件,或者,UI組件在不 同機(jī)器上運(yùn)行,則很難同時(shí)測試這些UI組件。例如,在傳統(tǒng)系統(tǒng)中,難以同 時(shí)測試用不同語言(如Java, C十+和.Net)寫成的UI組件。相似地,也難以同 時(shí)測試在不同操作系統(tǒng)(如Windows, Linux和Unix)下開發(fā)的UI組件。
發(fā)明內(nèi)容
用戶接口(UI)協(xié)作系統(tǒng)使得多個(gè)應(yīng)用客戶(application client)能夠在不 同環(huán)境中協(xié)作。系統(tǒng)包括服務(wù)器、第一應(yīng)用接口 (application interface, API) 和第二 API,但不限于此。第一 API被耦合到服務(wù)器,并且與包括第一 UI 組件的第一應(yīng)用客戶有關(guān)。當(dāng)通過激活第一UI組件的功能來觸發(fā)事件時(shí),第 一 API向服務(wù)器報(bào)告該事件。第二 API被耦合到服務(wù)器,并且與包括第二UI 組件的第二應(yīng)用客戶有關(guān)。第二 API接收從服務(wù)器發(fā)送的事件,從而激活第 二UI組件。可以包括不止兩個(gè)應(yīng)用客戶和API。
根據(jù)附圖和后面的詳細(xì)描述,本發(fā)明的其他特性將變得更加清楚。
通過例子對本發(fā)明進(jìn)行說明,并且,不限于附圖中示出的圖,在附圖中, 相同的標(biāo)號表示相似的要素。
圖1示出了顯示多個(gè)相互依賴的用戶接口(UI)組件的圖形用戶接口(GUI) 的例子。
圖2示出了按照本發(fā)明的實(shí)施例的,使UI組件的相互作用協(xié)調(diào)的用戶接 口(UI)服務(wù)器。
圖3為示出了按照本發(fā)明的實(shí)施例的UI協(xié)作系統(tǒng)的框圖。
圖4為示出了按照本發(fā)明的實(shí)施例的UI協(xié)作系統(tǒng)的才喿作的流程圖。
圖5為示出了按照本發(fā)明的一個(gè)實(shí)施例的,獨(dú)立開發(fā)的UI組件的GUI。
圖6為示出了兩個(gè)不同應(yīng)用的UI組件基本上被同時(shí)測試的GUI。
圖7為示出了可以用作本發(fā)明的實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖。
具體實(shí)施例方式
以下對用于用戶接口 (UI)協(xié)作的方法和系統(tǒng)進(jìn)行描述。在以下描述中, 提供大量細(xì)節(jié)描述以便更透徹地說明本發(fā)明的實(shí)施例。但對本領(lǐng)域的技術(shù)人 員來說顯而易見,可以在沒有這些特殊細(xì)節(jié)的情況下實(shí)踐本發(fā)明的實(shí)施例。 在其他情況下,為了避免使本發(fā)明的實(shí)施例變得模糊,不是詳細(xì)地,而是以 框圖的形式示出眾所周知的結(jié)構(gòu)和裝置。
說明書中對"一個(gè)實(shí)施例"或"一實(shí)施例"的引用,指的是結(jié)合該實(shí)施例描
述的具體特性、結(jié)構(gòu)或性能包括在本發(fā)明的至少一個(gè)實(shí)施例中。在說明書中 的不同之處出現(xiàn)的短語"在一個(gè)實(shí)施例中",并不都指同 一個(gè)實(shí)施例。
圖1為按照本發(fā)明實(shí)施例的,示出了多個(gè)UI組件及其相互依賴性的圖形
用戶接口(GUI)IO。 GUI 10包括工具欄11、菜單區(qū)12、表格13、狀態(tài)欄14 和背景15等UI組件。兩個(gè)UI組件之間的箭頭表示UI組件之間的依賴關(guān)系。 即,當(dāng)調(diào)用一個(gè)UI組件的功能時(shí),將另一個(gè)UI組件的功能作為結(jié)果進(jìn)行調(diào) 用。例如,可以通過在按鈕上點(diǎn)擊、改變背景、從菜單中選擇或其他適當(dāng)?shù)?動作,調(diào)用UI組件的功能。如圖1所示,在工具欄11、菜單區(qū)12、表格13、 狀態(tài)欄14和背景15之間存在多個(gè)箭頭。因此,需要對開發(fā)、測試和執(zhí)行UI 組件11-15進(jìn)行協(xié)調(diào),使得這些UI組件的相互依賴的功能被適當(dāng)執(zhí)行。只是 出于說明的目的,才示出以上的UI組件,并且,可以包括不同或另外的組件。
圖2示出了按照本發(fā)明的實(shí)施例的,用于使UI組件之間的相互作用協(xié)調(diào) 的UI協(xié)作服務(wù)器(UI collaboration server, UCS) 20。利用UCS 20,可以在不 同環(huán)境中,獨(dú)立地并行開發(fā)UI組件。術(shù)語"不同環(huán)境"在這里指的是不同的編 程語言、不同的操作系統(tǒng)和/或不同的機(jī)器平臺。也可以在不同環(huán)境中測試和 執(zhí)行UI組件。在所示的例子中,在三個(gè)UI應(yīng)用(UI application )21、 22和 23中,測試UI組件,每次測試在不同的環(huán)境中進(jìn)行。UI應(yīng)用21、 22和23 中的每一個(gè)都可以用不同語言寫成,在不同操作系統(tǒng)下運(yùn)行,或者在不同的 機(jī)器平臺上執(zhí)行。當(dāng)調(diào)用UI應(yīng)用21的工具欄24時(shí),消息25被發(fā)送到UCS 20,以將該事件通知服務(wù)器。UCS20對與工具欄24有依賴關(guān)系的其他UI組 件進(jìn)行識別。然后,UCS 20在消息26中將該事件傳送到UI應(yīng)用22和23中 的被識別的UI組件中的每一個(gè)。因此,對所有相互依賴的UI組件來說,UCS 20起集中事件處理中心的作用。UI應(yīng)用21、 22和23中的每一個(gè)只與UCS 20 通信,并且不需要應(yīng)用之間的通信。因此,UI組件變得耦合松散,但還是通 過UCS20協(xié)作無間。再次說明,只是出于說明的目的,才示出以上的UI組 件,并且,可以包括不同或另外的組件。
UCS 20允許包括數(shù)百或更多相互依賴的UI組件的大規(guī)模UI應(yīng)用在不同 環(huán)境下基本上被同時(shí)測試。例如,應(yīng)用軟件可以具有在Windows⑧上運(yùn)行的 版本和在Linux上運(yùn)行的另 一個(gè)版本。傳統(tǒng)的系統(tǒng)會要求在Windows⑧平臺和 Linux平臺上開發(fā)測試工具,并且因此浪費(fèi)資源。利用UCS 20,用戶可以將 Windows⑧版本和Linux版本連接到同 一個(gè)UCS 20。當(dāng)測試Windows⑧版本時(shí),Linux版本被自動觀寸試。
圖3為示出了 UI協(xié)作系統(tǒng)300的實(shí)施例的框圖,其中,UI協(xié)作系統(tǒng)300 協(xié)調(diào)UI組件之間的相互作用,如在圖2中示出的相互作用。參照圖3,系統(tǒng) 300包括圖2的UCS 20、事件總線310以及一個(gè)或多個(gè)事件應(yīng)用接口 (application interface, API)。出于說明的目的,示出了三個(gè)事件API 321 、 331 和341。多個(gè)UI應(yīng)用客戶(322, 332, 342)與事件API(321 , 331, 341)有關(guān)。 UI應(yīng)用客戶(322, 332, 342)中的每一個(gè)包括一個(gè)或多個(gè)UI組件,這些UI 組件可以用任何編程語言寫成,在任何操作系統(tǒng)下和任何機(jī)器平臺上開發(fā)和 執(zhí)行。例如,UI應(yīng)用客戶322可以用.Net寫成,UI應(yīng)用客戶332可以用Java 寫成,UI應(yīng)用客戶342可以用C+十寫成。事件API(321, 331, 341)中的每一 個(gè)都被寫成與其相關(guān)UI應(yīng)用客戶(322, 332, 342)通信并運(yùn)行。通常,事件 API(321, 331, 341)中的每一個(gè)都用與其相關(guān)UI應(yīng)用客戶(322, 332, 342) 相同或兼容的語言寫成。再次說明,只是出于說明的目的,才示出系統(tǒng)300 的組件,并且可以存在其他配置。
UI應(yīng)用客戶(322, 332, 342)通過事件API(321, 331, 341)與UCS20通 信。UI應(yīng)用客戶(322, 332, 342)分別通過相關(guān)的事件API(321, 331, 341), 將事件報(bào)告給UCS20,并且接收來自UCS 20的事件通知。事件API(321, 331, 341)負(fù)責(zé)與UCS20通信。利用事件API(321, 331, 341), UI應(yīng)用客戶 (322, 332, 342)不必知道事件如何以及是否被提供給UCS20,并且不必知道 從何處報(bào)告事件。因此,在UI應(yīng)用客戶(322, 332, 342)中實(shí)現(xiàn)UI組件的 UI邏輯很簡單。UI邏輯也很靈活,這是由于,不論其他UI應(yīng)用客戶(322, 332, 342)報(bào)告什么,每個(gè)UI應(yīng)用客戶(322, 332, 342)都可以被編程為向UCS 20報(bào)告任何事件、某些事件或不報(bào)告事件。此外,系統(tǒng)300可擴(kuò)展為UCS20 可以與任何數(shù)量的UI應(yīng)用客戶中的任何數(shù)量的UI組件通信。因此,系統(tǒng)300 可以適合于以基本上相同的方式,對任意指定數(shù)量(例如,1, 100, 1000或更 多)的UI應(yīng)用客戶進(jìn)行開發(fā)和測試。
事件API(321, 331, 341)通過事件總線310被耦合到UCS20。事件總線 310包括網(wǎng)絡(luò),例如,因特網(wǎng)、企業(yè)內(nèi)部網(wǎng)絡(luò)、局域網(wǎng)、廣域網(wǎng)或者任何合 適的公共或?qū)S镁W(wǎng)絡(luò)。在事件總線310上的通信遵守網(wǎng)絡(luò)協(xié)議,例如TCP/IP。 也可以使用其他協(xié)議。事件總線310負(fù)責(zé)傳送事件,并且保證事件被適當(dāng)?shù)?傳遞到適當(dāng)?shù)哪康牡亍?br>
當(dāng)向UCS 20報(bào)告事件時(shí),事件API(321, 331, 341)使用標(biāo)準(zhǔn)消息交換 才各式。標(biāo)準(zhǔn)消息交才灸才各式可以用可擴(kuò)展才示記i吾言(extensible markup language, XML)或其他標(biāo)準(zhǔn)語言。因此,當(dāng)UCS 20接收事件時(shí),UCS在不進(jìn)行分析 (parsing )的情況下,將事件發(fā)送到目的地UI組件。
系統(tǒng)300還可以包括通過網(wǎng)絡(luò)370,例如,因特網(wǎng)、企業(yè)內(nèi)部網(wǎng)絡(luò)、局 域網(wǎng)、廣域網(wǎng)或者任何合適的網(wǎng)絡(luò)連接到UCS的管理控制臺350。在一個(gè)實(shí) 施例中,管理控制臺350是一個(gè)由系統(tǒng)300提供的基于web的工具,用于將 消息發(fā)送到任何UI應(yīng)用客戶(322, 332, 342)。利用由管理控制臺350提供 的web瀏覽器,用戶可以對測試UI應(yīng)用客戶(322, 332, 342)中的UI組件進(jìn) 行遙控。
事件API(321, 331, 341)可以分別包括記錄與回放(Record-and-Replay, RnR)機(jī)構(gòu)(360A, 360B, 360C),以允許過去的操作被記錄和回放.,記錄與回 放(RnR)機(jī)構(gòu)360A-C記錄用于分別測試UI應(yīng)用客戶(322, 332, 342)的命令 序列,并且當(dāng)重復(fù)相同的測試時(shí),回放該命令序列。每當(dāng)測試相同的功能時(shí), 系統(tǒng)管理員不必手動輸入相同命令。因此,RnR機(jī)構(gòu)360A-C允許自動測試 大規(guī)模UI應(yīng)用客戶。
UCS20可以以獨(dú)立模式為一個(gè)UI應(yīng)用客戶服務(wù),或者,同時(shí)為多個(gè)UI 應(yīng)用客戶服務(wù)。在不改變?nèi)魏未a的情況下,UCS20可以按照需要,從一種 模式切換到另一種模式。在協(xié)作模式中,UCS使大量客戶機(jī)能夠并行工作, 由此減少開發(fā)和測試成本。
UCS20允許在UI應(yīng)用客戶(322, 332, 342)之間,通過事件總線310進(jìn) 行信息共享。共享的信息包括數(shù)據(jù)(例如,文本、語音、應(yīng)用等)和事件(例如, 菜單上的點(diǎn)擊、改變背景等),但不限于此。因此,用戶可以用UCS20開發(fā) 利用UCS的數(shù)據(jù)共享功能的net會議(net meeting)以及web會議(web conference)。此外,利用UCS 20的事件共享功能,用戶可以使UI組件的依 賴性減到最小,并且構(gòu)成易于開發(fā)、維護(hù)和擴(kuò)展的應(yīng)用。
UI應(yīng)用客戶(322, 332, 342)可以駐留在同一個(gè)機(jī)器或多個(gè)機(jī)器上。UCS 20可以駐留在任何駐留了 UI應(yīng)用客戶(322, 332, 342)的機(jī)器上,或者,UCS 20可以駐留在不同的機(jī)器上。在系統(tǒng)300的整個(gè)壽命周期期間,包括開發(fā)、 測試和運(yùn)行時(shí)間,都可以使用UCS20。在系統(tǒng)300的整個(gè)壽命周期期間交換 的信息都用相同的格式。對于運(yùn)行時(shí)間操作,不需要添加新信息。注意,對
配置300的描述只是出于說明的目的??梢源嬖谄渌δ?。例如,本說明書 始終描述的技術(shù)可以被應(yīng)用于對等網(wǎng)絡(luò)配置,可以包括或不包括服務(wù)器。
圖4為示出了由UI協(xié)作系統(tǒng),例如圖3的UI協(xié)作系統(tǒng)300,進(jìn)行的操 作的實(shí)施例的流程圖。注意,可以由可以包括軟件、硬件或者二者的組合的 處理邏輯進(jìn)行圖4所示的處理。在框41,在UI應(yīng)用客戶中,事件被觸發(fā)。 在測試系統(tǒng)、系統(tǒng)的運(yùn)行時(shí)間或者對系統(tǒng)的壽命周期進(jìn)行其他開發(fā)或操作期 間,通過激活UI應(yīng)用客戶中的UI組件,引起事件。在框42,利用標(biāo)準(zhǔn)消息 交換格式,通過事件總線310,將事件以事件消息的形式發(fā)送到UCS20。由 與報(bào)告事件的UI應(yīng)用客戶相關(guān)的事件API發(fā)送事件消息。在框43, UCS 20 接收事件消息,并且將事件消息發(fā)送到在事件總線310上的、關(guān)心該事件的 其他應(yīng)用客戶。在發(fā)生事件之前,將關(guān)心該事件的應(yīng)用客戶告訴UCS20。應(yīng) 用客戶可以關(guān)心任何事件或者不關(guān)心任何事件。當(dāng)以標(biāo)準(zhǔn)消息交換格式報(bào)告 事件時(shí),UCS20不對事件進(jìn)行分析。在框44,其他UI組件接收事件消息, 并且,響應(yīng)于該事件,激活與報(bào)告的事件有關(guān)的功能。因此,UI應(yīng)用客戶可 以被獨(dú)立并行開發(fā),并且基本上被同時(shí)測試??梢栽跍y試期間或者在運(yùn)行時(shí) 間進(jìn)行上述操作。也可以進(jìn)行另外的操作。
UI協(xié)作系統(tǒng)300允許UI組件^f皮并行獨(dú)立開發(fā)。圖5為示出了按照本發(fā) 明的一個(gè)實(shí)施例的獨(dú)立開發(fā)的UI組件的GUI。 GUI示出了包括工具欄51、 菜單52、柱形圖53、餅狀圖54和表格55等UI組件的窗口 50。如右側(cè)的 53A-55A所示,UI組件51-55是松散耦合的,并且在分開的UI應(yīng)用客戶中 被并行開發(fā)。每個(gè)UI應(yīng)用客戶53A-55A可以使用不同的編程語言、在不同 的操作系統(tǒng)下運(yùn)行,并且/或者在不同的平臺上執(zhí)行。UI應(yīng)用客戶53A-55A 不直接相互通信。相反,它們通過事件總線將事件報(bào)告給UCS,例如圖3中 示出的UCS 20和事件總線310。如果在其他依賴的UI組件之前開發(fā)一個(gè)UI 組件,則即使在不存在其他依賴的UI組件的情況下,該UI組件也將運(yùn)行并 且被測試。
UI協(xié)作系統(tǒng)300還允許多個(gè)UI組件基本上被同時(shí)測試。圖6為示出了 按照本發(fā)明的一個(gè)實(shí)施例的基本上同時(shí)測試兩個(gè)應(yīng)用客戶61和62的GUI。 在應(yīng)用客戶61中,從表格63中選擇BOC(Bank of China,中國銀行)。選擇 BOC觸發(fā)了一個(gè)事件,它使應(yīng)用客戶62中的實(shí)體列表64處于高亮。這是由 于表格63和64為相互依賴的UI組件。當(dāng)選擇表格63被調(diào)用時(shí),自動測試使實(shí)體列表64高亮。應(yīng)該理解,以上的操作僅出于說明的目的。表格63的 功能可以與不止一個(gè)其他應(yīng)用客戶中的UI組件相互依賴。因此,當(dāng)表格63 的功能被激活時(shí),其他相互依賴的應(yīng)用客戶的功能被自動激活。UI應(yīng)用客戶 61和62中的每一個(gè)可以使用不同的編程語言、在不同的操作系統(tǒng)下運(yùn)行, 并且/或者,在不同的平臺上執(zhí)行。自動激活這些相互依賴的功能允許不同環(huán) 境中的大量應(yīng)用基本上被同時(shí)測試,并且由此極大提高了測試效率。
圖7為可以與本發(fā)明的 一個(gè)實(shí)施例一起使用的數(shù)字處理系統(tǒng)701的框圖。 例如,系統(tǒng)701可以用作圖3的UI協(xié)作系統(tǒng)300。
注意,盡管圖7示出了計(jì)算機(jī)系統(tǒng)的各種部件,但是,不是要代表使部 件相互連接的任何具體結(jié)構(gòu)和方式,這是由于這些細(xì)節(jié)與本發(fā)明關(guān)系不大。 還應(yīng)該理解,也可以將部件較少的網(wǎng)絡(luò)計(jì)算機(jī)、手持計(jì)算機(jī)、移動電話和其 他數(shù)據(jù)處理系統(tǒng)或者部件較多的外部設(shè)備與本發(fā)明一起使用。
如圖7所示,作為數(shù)據(jù)處理系統(tǒng)的一種形式的系統(tǒng)701包括被耦合到一 個(gè)或多個(gè)微處理器803、 ROM 807、易失性RAM 805和非易失性存儲器806 的總線或數(shù)據(jù)互連802。如圖7的例子所示,可以是例如PowerPC處理器或 者Intel Pentium處理器的微處理器803被耦合到高速緩沖存儲器804??偩€ 802將各種這樣的部件相互連接在一起,并且,還將這些部件803、 807、 805 和806相互連接到顯示控制器和顯示裝置808以及輸入/輸出(I/0)裝置810, 輸入/輸出(I/0)裝置810可以是鼠標(biāo)、鍵盤、調(diào)制解調(diào)器、網(wǎng)絡(luò)接口、打印機(jī) 以及本領(lǐng)域眾所周知的其他設(shè)備。
通常,輸入/輸出裝置810通過輸入/輸出控制器809耦合到系統(tǒng)。易失性 RAM 805 —般被實(shí)現(xiàn)為需要連續(xù)供電,以便對存儲器中的數(shù)據(jù)進(jìn)行刷新或保 持的動態(tài)RAM(DRAM)。非易失性存儲器806 —般是即使在脫離電源之后仍 然保持?jǐn)?shù)據(jù)的磁性硬盤驅(qū)動器、磁光盤驅(qū)動器、光盤驅(qū)動器、DVD RAM或 其他類型的存儲器系統(tǒng)。通常,盡管不要求,非易失性存儲器806也可以是 隨機(jī)存取存儲器。
盡管圖7示出了非易失性存儲器為被直接耦合到數(shù)據(jù)處理系統(tǒng)中的其余 部件的本地器件,但是,本發(fā)明可以使用遠(yuǎn)離系統(tǒng)的非易失性存儲器,如通 過諸如調(diào)制解調(diào)器和以太網(wǎng)接口之類的網(wǎng)絡(luò)接口耦合到數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò) 存儲裝置。如本領(lǐng)域眾所周知的,總線802可以包括通過各種橋、控制器和/ 或適配器相互連接的一條或多條總線。在一個(gè)實(shí)施例中,1/0控制器809包括用于控制USB(Universal Serial Bus,通用串行總線)夕卜部設(shè)備的USB適配器。 或者,I/O控制器809可以包括用于控制Fire Wire裝置的IEEE-1394適配器, 也被稱為Fire Wire適配器。
因此,這里已經(jīng)對用戶接口 (UI)協(xié)作系統(tǒng)進(jìn)行了描述??梢杂眠壿嬰?路如專用邏輯電路或者用執(zhí)行程序代碼指令的微控制器或其他形式的處理核 心,實(shí)現(xiàn)以上描述的部分。可以用程序代碼如機(jī)器可執(zhí)行指令執(zhí)行以上討論 講解的這些過程,其中,機(jī)器可執(zhí)行指令使機(jī)器執(zhí)行這些指令,以完成某些 功能。在本說明書中,"機(jī)器"可以是將中間形式(或"抽象,,)指令轉(zhuǎn)換為處理器 專用指令的機(jī)器(例如,抽象執(zhí)行環(huán)境如"虛擬機(jī)"(例如,Java Virtual Machine(Java虛擬才幾)、翻i奪才幾、通用i吾言運(yùn)4亍環(huán)境(Common Language Runtime)、高級語言虛擬機(jī)等),和/或布置在半導(dǎo)體芯片上的,被設(shè)計(jì)為執(zhí)行 指令的電子電路(例如,用晶體管實(shí)現(xiàn)的"邏輯電路"),如通用處理器和/或?qū)?用處理器。還可以在不執(zhí)行程序代碼的情況下,由被設(shè)計(jì)為完成處理(或部分 處理)的(替換機(jī)器或與機(jī)器結(jié)合的)電子電路完成通過以上討論講解的處理。
相信,可以按照由各種軟件開發(fā)框架(例如,微軟公司的.NET, Mono, Java, Oracle Corporation的Fusion等)支持的各種面向?qū)ο蟮幕蚍敲嫦驅(qū)ο蟮?計(jì)算機(jī)編程語言(例如,java, C#, VB, Python, C, C++, J#, APL, Cobol, ABAP, Fortran, Pascal, Perl等),以源碼級(source level)程序代碼,描述 通過以上討論講解的處理。源碼級程序代碼可以被轉(zhuǎn)換為中間形式的,抽象 4丸4亍環(huán)境(例i口 , Java Virtual Machine, Common Language Runtime, 鬲級i吾言 虛擬機(jī)、翻譯機(jī)等)可理解的程序代碼(如Java字節(jié)代碼,Microsoft Intermediate Language等),或者,轉(zhuǎn)換為以特殊處理器為目標(biāo)的形式更特殊的程序代碼。
制造品可以被用于存儲程序代碼。存儲程序代碼的制造品可以被體現(xiàn)為 一個(gè)或多個(gè)存儲器(例如, 一個(gè)或多個(gè)閃存存儲器、隨機(jī)存取存儲器(靜態(tài)、動 態(tài)或其他))、光盤、CD-ROM、 DVD ROM、 EPROM、 EEPROM、磁卡或光 卡、或者適合于存儲電子指令的其他類型的機(jī)器可讀介質(zhì),但不限于此。也 可以通過體現(xiàn)在傳播介質(zhì)(例如,通過通信鏈接(例如,網(wǎng)絡(luò)連接))中的數(shù)據(jù)信 號,將程序代碼從遠(yuǎn)程計(jì)算機(jī)(例如服務(wù)器)下載到請求計(jì)算機(jī)(例如客戶機(jī))。
在以上說明書中,已經(jīng)參照本發(fā)明的特定典型實(shí)施例,對本發(fā)明的實(shí)施 例進(jìn)行了描述。很明顯,在不脫離如后面的權(quán)利要求陳述的、本發(fā)明的更寬 的精神和范圍的情況下,可以對其進(jìn)行各種修改。因此,應(yīng)該從說明的角度
而不是限制的角度看待說明書和附圖。
版^又標(biāo)i己
本專利文獻(xiàn)的公開部分包含受版權(quán)保護(hù)的內(nèi)容。當(dāng)專利文獻(xiàn)或?qū)@_ 出現(xiàn)在專利局和版權(quán)局的專利文件或記錄上時(shí),版權(quán)所有者不反對復(fù)制其中 的任何一個(gè),然而在別的方面,無論如何,保留所有版權(quán)權(quán)利。
權(quán)利要求
1.一種用戶接口協(xié)作系統(tǒng)的計(jì)算機(jī)實(shí)現(xiàn)方法,該方法包括如下步驟將通過激活第一用戶接口組件的功能觸發(fā)的事件報(bào)告給服務(wù)器,所述服務(wù)器將第一應(yīng)用客戶耦合到第二應(yīng)用客戶,所述第一應(yīng)用客戶包括第一用戶接口組件,并且所述第二應(yīng)用客戶包括第二用戶接口組件;以及由所述服務(wù)器將事件發(fā)送到所述第二應(yīng)用客戶,以激活所述第二用戶接口組件的有關(guān)功能。
2. 如權(quán)利要求l所述的方法,其中,將事件報(bào)告給所述服務(wù)器的步驟包括通過為所述第一應(yīng)用客戶設(shè)計(jì)的應(yīng)用接口 ,將事件報(bào)告給所述服務(wù)器, 所述應(yīng)用接口使用標(biāo)準(zhǔn)消息交換格式報(bào)告該事件。
3. 如權(quán)利要求l所述的方法,還包括如下步驟基本同時(shí)地測試所述第 一用戶接口組件和所述第二用戶接口組件。
4. 如權(quán)利要求l所述的方法,其中,所述激活第一用戶接口組件功能的 步驟包括利用web瀏覽器從遠(yuǎn)程控制臺激活所述功能。
5. 如權(quán)利要求l所述的方法,其中,所述激活第一用戶接口組件功能的 步驟還包括記錄測試序列,所述測試序列包括觸發(fā)測試序列的命令序列;以及 回放所述測試序列。
6. 如權(quán)利要求l所述的方法,還包括如下步驟在不同環(huán)境中獨(dú)立開發(fā)所述第一用戶接口組件和所述第二用戶接口組件。
7. 如權(quán)利要求l所述的方法,還包括如下步驟由所述服務(wù)器將事件發(fā)送到多個(gè)應(yīng)用客戶,以激活所述多個(gè)應(yīng)用客戶的 相關(guān)功能。
8. —種用戶接口協(xié)作系統(tǒng),該系統(tǒng)包括 服務(wù)器;第一應(yīng)用接口,被耦合到所述服務(wù)器,并且與第一應(yīng)用客戶有關(guān),所述 第一應(yīng)用客戶包括第一用戶接口組件,所述第一應(yīng)用接口向所述服務(wù)器報(bào)告事件,通過激活所述第一用戶接口組件的功能觸發(fā)所述事件;以及第二應(yīng)用接口,被耦合到所述服務(wù)器,并且與第二應(yīng)用客戶有關(guān),所述 第二應(yīng)用客戶包括第二用戶接口組件,所述第二應(yīng)用接口接收從所述服務(wù)器發(fā)來的事件,以激活所述第二用戶接口組件的相關(guān)功能。
9. 如權(quán)利要求8所述的系統(tǒng),其中,所述第一應(yīng)用接口將標(biāo)準(zhǔn)消息交換 格式用于報(bào)告所述事件的消息。
10. 如權(quán)利要求8所述的系統(tǒng),還包括 管理控制臺,用于利用web瀏覽器對所述激活進(jìn)行遙控。
11. 如權(quán)利要求8所述的系統(tǒng),還包括記錄和回放單元,用于記錄測試序列和回放所述測試序列,所述測試序 列包括一序列觸發(fā)測試事件的命令。
12. 如權(quán)利要求8所述的系統(tǒng),還包括多個(gè)應(yīng)用接口,被耦合到所述服務(wù)器,所述多個(gè)應(yīng)用接口中的每一個(gè)起 所述服務(wù)器與包括至少 一 個(gè)用戶接口組件的有關(guān)應(yīng)用客戶之間的接口的作用。
13. 如權(quán)利要求8所述的系統(tǒng),還包括事件總線,用于將所述服務(wù)器與所述第一應(yīng)用接口和所述第二應(yīng)用接口 耦合。
14. 如權(quán)利要求8所述的系統(tǒng),其中,在不同環(huán)境中獨(dú)立開發(fā)所述第一 用戶接口組件和所述第二用戶接口組件。
15. —種機(jī)器可讀介質(zhì),具有指令,當(dāng)執(zhí)行所述指令時(shí),所述指令使機(jī) 器進(jìn)行用戶接口協(xié)作系統(tǒng)的方法,所述方法包括如下步驟將通過激活第一用戶接口組件的功能觸發(fā)的事件報(bào)告給服務(wù)器,所述服 務(wù)器將第一應(yīng)用客戶耦合到第二應(yīng)用客戶,所述第一應(yīng)用客戶包括第一用戶 接口組件,并且所述第二應(yīng)用客戶包括第二用戶接口組件;以及由所述服務(wù)器將事件發(fā)送到所述第二應(yīng)用客戶,以激活所述第二用戶接 口組件的有關(guān)功能。
16. 如權(quán)利要求15所述的機(jī)器可讀介質(zhì),其中,將事件報(bào)告給所述服務(wù) 器的步驟包括通過為所述第一應(yīng)用客戶設(shè)計(jì)的應(yīng)用接口 ,將事件報(bào)告給所述服務(wù)器, 所述應(yīng)用接口使用標(biāo)準(zhǔn)消息交換格式報(bào)告事件。
17. 如權(quán)利要求15所述的機(jī)器可讀介質(zhì),其中,所述方法還包括如下步驟基本同時(shí)地測試所述第 一用戶接口組件和所述第二用戶接口組件。
18. 如權(quán)利要求15所述的機(jī)器可讀介質(zhì),其中,所述激活第一用戶接口 組件功能的步驟包括利用web瀏覽器從遠(yuǎn)程控制臺激活所述功能。
19. 如權(quán)利要求15所述的機(jī)器可讀介質(zhì),其中,所述激活第一用戶接口 組件功能的步驟還包括記錄測試序列,所述測試序列包括觸發(fā)測試序列的命令序列;以及 回放所述測試序列。
20. 如權(quán)利要求15所述的機(jī)器可讀介質(zhì),其中,所述方法還包括如下步驟在不同環(huán)境中獨(dú)立開發(fā)所述第一用戶接口組件和所述第二用戶接口組件。
全文摘要
用戶接口(UI)協(xié)作系統(tǒng)使得多個(gè)應(yīng)用客戶能夠在不同環(huán)境中協(xié)作。系統(tǒng)包括服務(wù)器、第一應(yīng)用接口(API)和第二API,但不限于此。第一API被耦合到服務(wù)器,并且與包括第一UI組件的第一應(yīng)用客戶有關(guān)。當(dāng)通過激活第一UI組件的功能來觸發(fā)事件時(shí),第一API向服務(wù)器報(bào)告該事件。第二API被耦合到服務(wù)器,并且與包括第二UI組件的第二應(yīng)用客戶有關(guān)。第二API接收從服務(wù)器發(fā)送的事件,從而激活第二UI組件??梢园ú恢箖蓚€(gè)應(yīng)用客戶和API。
文檔編號G06F9/44GK101187869SQ20071016931
公開日2008年5月28日 申請日期2007年11月22日 優(yōu)先權(quán)日2006年11月22日
發(fā)明者梁志龍 申請人:Sap股份公司