專利名稱:動(dòng)態(tài)對(duì)象連接接口和過程的制作方法
發(fā)明領(lǐng)域本發(fā)明涉及計(jì)算機(jī)軟件集成并更具體地涉及一種在多個(gè)不同的,獨(dú)立的軟件應(yīng)用程序的軟件對(duì)象之間共享和操作軟件對(duì)象的方法。
1992年微軟公司發(fā)布了一種協(xié)議,對(duì)象鏈接和嵌入(OLE),使得一個(gè)應(yīng)用程序可以通過一個(gè)幾乎透明的接口來使用其它應(yīng)用程序的服務(wù)。OLE協(xié)議允許支持這種協(xié)議的應(yīng)用程序結(jié)合含有至其它應(yīng)用程序的鏈接的對(duì)象。這里使用的對(duì)象這個(gè)詞能夠包含文本,圖表,圖形,電子表格,位圖圖像,矢量圖,聲音數(shù)據(jù),視頻剪輯,程序和幾乎所有可被軟件應(yīng)用程序顯示,控制或操作的東西。
在OLE協(xié)議中,包含鏈接或嵌入對(duì)象的對(duì)象被稱為容器對(duì)象。容器對(duì)象包含仍然連接至創(chuàng)建它們的原始應(yīng)用程序的其它對(duì)象,其中的連接可以是鏈接連接或嵌入連接。鏈接連接是與被包含的對(duì)象相關(guān)的實(shí)際數(shù)據(jù)駐留在另一個(gè),分立的對(duì)象中的連接。在這種情況下,建立和保持鏈接連接所需的信息只是被包含的對(duì)象的一個(gè)引用。另一方面,嵌入連接是與被包含對(duì)象相關(guān)的實(shí)際數(shù)據(jù)駐留在容器對(duì)象中的連接。在任一情況下,被包含對(duì)象只能被原始創(chuàng)建它的應(yīng)用程序所編輯。
OLE和OLE類型的集成策略使用戶集中在當(dāng)前的手中任務(wù)上,而不需要對(duì)完成任務(wù)所需的應(yīng)用程序的明確知識(shí)或控制。在OLE的情況下,進(jìn)行給定任務(wù)所需的應(yīng)用程序在需要時(shí)以最好的格式或內(nèi)容交給用戶。而且,當(dāng)采用了鏈接類型的應(yīng)用程序集成策略時(shí),文件趨向于更緊湊,因?yàn)閷?duì)象的鏈接使得應(yīng)用程序數(shù)據(jù)文件可以反映所鏈接文件的信息而不需要將對(duì)象的數(shù)據(jù)在該數(shù)據(jù)文件中物理地存儲(chǔ)和維護(hù)。
OLE和OLE類型的集成策略向各種獨(dú)立軟件應(yīng)用程序的高效集成邁出了一大步。但是,這些類型的集成策略要求某些數(shù)據(jù)與鏈接或嵌入的對(duì)象一起被存儲(chǔ),因而提供將被鏈接或嵌入的對(duì)象回溯到原始應(yīng)用程序的信息。更具體地說,嵌入和傳統(tǒng)的鏈接兩者都在被鏈接/嵌入的對(duì)象和原始創(chuàng)建對(duì)象的應(yīng)用程序之間創(chuàng)建“硬”鏈接。即,連接是到特定的應(yīng)用程序的并不會(huì)改變。這樣,被鏈接/嵌入的對(duì)象需要至外部應(yīng)用程序的預(yù)先定義的連接路徑。
從用戶的角度,希望有一個(gè)更靈活的結(jié)構(gòu),一個(gè)對(duì)象和應(yīng)用程序之間的連接不需要預(yù)先定義的結(jié)構(gòu)。因此,需要有一種當(dāng)對(duì)象和計(jì)算機(jī)操作系統(tǒng)內(nèi)定義的任何其它應(yīng)用程序之間沒有預(yù)先定義的連接時(shí)能夠高效運(yùn)行的應(yīng)用程序集成方法。
圖2是帶有本發(fā)明的動(dòng)態(tài)對(duì)象鏈接接口部件的操作系統(tǒng)的簡(jiǎn)化的方框圖。
圖3是運(yùn)行環(huán)境的圖形用戶界面的簡(jiǎn)化示意圖。
圖4是本發(fā)明的一個(gè)實(shí)施例的基本流程圖。
發(fā)明詳述
圖1以簡(jiǎn)化方框圖的形式示出一個(gè)實(shí)現(xiàn)本發(fā)明的對(duì)象鏈接接口的計(jì)算機(jī)系統(tǒng)10。計(jì)算機(jī)系統(tǒng)10包括一個(gè)中央處理單元12,它根據(jù)存儲(chǔ)在它的存儲(chǔ)器14中的指令進(jìn)行操作。輸入/輸出(I/O)電路16是中央處理單元12與一個(gè)或多個(gè)輸入設(shè)備18和輸出設(shè)備20連接的接口。輸入設(shè)備18可以包括,例如,鍵盤,小鍵盤,紅外發(fā)射器,聲音檢測(cè)器,光筆,鼠標(biāo),觸摸屏或其他適合的設(shè)備或用于向計(jì)算機(jī)輸入命令的設(shè)備。輸出設(shè)備20可以包括,例如,顯示器或其他通過I/O電路16中的I/O口連接的外圍設(shè)備。計(jì)算機(jī)系統(tǒng)10還可以含有海量存儲(chǔ)設(shè)備22,例如硬盤驅(qū)動(dòng)器,軟盤驅(qū)動(dòng)器,PCMCIA閃存驅(qū)動(dòng)器,或光盤驅(qū)動(dòng)器。
計(jì)算機(jī)系統(tǒng)10根據(jù)存儲(chǔ)在存儲(chǔ)器14中的程序運(yùn)行。在計(jì)算機(jī)系統(tǒng)10上運(yùn)行的程序一般可以分為操作系統(tǒng)程序或用戶應(yīng)用程序。操作系統(tǒng)程序是控制和協(xié)調(diào)計(jì)算機(jī)系統(tǒng)10中的硬件和軟件的運(yùn)行的一套程序。操作系統(tǒng)程序指揮用戶應(yīng)用程序的執(zhí)行,數(shù)據(jù)的定位,存儲(chǔ),和讀取,并將計(jì)算機(jī)系統(tǒng)10的資源分配給運(yùn)行的不同任務(wù)。另一方面,用戶應(yīng)用程序,也被稱為用戶應(yīng)用程序或簡(jiǎn)稱為應(yīng)用程序是在用戶的指揮下進(jìn)行復(fù)雜任務(wù)的程序。用戶應(yīng)用程序的例子包括字處理程序,數(shù)據(jù)庫(kù)程序,電子表格程序,和個(gè)人信息管理器。
一套接口指令,包括操作系統(tǒng)程序,作為一起組成計(jì)算機(jī)系統(tǒng)10的硬件和軟件之間的最低層接口。這些接口指令一起被稱為操作系統(tǒng)100。DOS,UNIX和OS-9都是在一般商用計(jì)算機(jī)系統(tǒng)10上實(shí)現(xiàn)的一般的操作系統(tǒng)100。圖2示出操作系統(tǒng)100。適于本發(fā)明的一個(gè)操作系統(tǒng)是由Iowa州Des Moines的Microware公司研制的OS-9000內(nèi)核。
用戶可以選擇通過操作系統(tǒng)100或在操作系統(tǒng)100級(jí)與計(jì)算機(jī)系統(tǒng)10直接交互。但是,幾十年來的趨勢(shì)是使用用戶與操作系統(tǒng)100之間的緩沖區(qū),一般稱為運(yùn)行環(huán)境30。視窗和視窗95是運(yùn)行環(huán)境30的一般的例子。這些環(huán)境趨向于面向圖形化,和總體定義用戶界面的外觀。
現(xiàn)參考圖3,示出了計(jì)算機(jī)系統(tǒng)10上運(yùn)行的一個(gè)用戶應(yīng)用程序的運(yùn)行環(huán)境30的顯示部分。圖3中的用戶應(yīng)用程序是一個(gè)字處理應(yīng)用程序。但是,應(yīng)當(dāng)理解,本發(fā)明可以用于幾乎所有類型的用戶應(yīng)用程序而不限于字處理程序。運(yùn)行環(huán)境30在計(jì)算機(jī)顯示輸出設(shè)備20的屏幕上顯示給用戶。
運(yùn)行環(huán)境30包括窗口32,窗口32頂端有一個(gè)標(biāo)題欄34。標(biāo)題欄按鈕36位于標(biāo)題欄34的右邊。這些按鈕36用于關(guān)閉,最大化和最小化窗口32。按鈕36使用“指向并點(diǎn)擊”鼠標(biāo)的方式被激活。這些按鈕對(duì)于視窗95或視窗NT的用戶來說是熟悉的。在窗口32下端有一個(gè)為用戶顯示消息或圖標(biāo)的狀態(tài)欄56。
在標(biāo)題欄34的下方是菜單欄38。菜單欄38包括一個(gè)標(biāo)簽條40,它帶有幾個(gè)標(biāo)簽42。菜單按鈕44被放置在標(biāo)簽帶40上。與說明本發(fā)明相關(guān)的一個(gè)菜單按鈕44是動(dòng)態(tài)鏈接控制菜單按鈕45。菜單按鈕44的不同的組可以通過在標(biāo)簽42上“點(diǎn)擊”鼠標(biāo)而被選擇。應(yīng)當(dāng)理解,在本領(lǐng)域中在選擇一個(gè)選項(xiàng)或?qū)ο髸r(shí)有許多與點(diǎn)擊鼠標(biāo)相同的方法,例如使用觸摸屏,遙控指示器,或聲音命令;所有這些方法都包含在點(diǎn)擊鼠標(biāo)一詞中。菜單按鈕44同樣用鼠標(biāo)“點(diǎn)擊”菜單按鈕44來被選擇。
菜單欄38下方的區(qū)域是工作區(qū)46,在此為用戶顯示由用戶應(yīng)用程序操作的對(duì)象。在該工作區(qū)46中顯示一個(gè)由鼠標(biāo)移動(dòng)的光標(biāo)48。不同的應(yīng)用程序?qū)ο?9被包含在在工作區(qū)46中,包括正在被操作的對(duì)象,如被選擇的對(duì)象50。
應(yīng)注意,上述的運(yùn)行環(huán)境30只是可以實(shí)施本發(fā)明的動(dòng)態(tài)對(duì)象鏈接系統(tǒng)的運(yùn)行環(huán)境30的一個(gè)例子。使得用戶可以與計(jì)算機(jī)系統(tǒng)10交互的任何數(shù)量的運(yùn)行環(huán)境30可以用本發(fā)明的動(dòng)態(tài)對(duì)象鏈接系統(tǒng)來建立和實(shí)現(xiàn)。
近年來,已經(jīng)有很多將由一個(gè)用戶應(yīng)用程序創(chuàng)建的應(yīng)用程序?qū)ο?9鏈接到另一個(gè)用戶應(yīng)用程序的需要。應(yīng)用程序?qū)ο?9是由用戶應(yīng)用程序創(chuàng)建和/或操作的任何對(duì)象。例如,在字處理程序中,應(yīng)用程序?qū)ο?9可以是由這個(gè)文件,文件的一頁,文件的一段,文件中的一個(gè)單詞,或文件中的一個(gè)字母組成。在圖形程序中,應(yīng)用程序?qū)ο?9可以是整個(gè)圖畫,或圖畫種的特定圖形或線條。在數(shù)據(jù)庫(kù)程序中,應(yīng)用程序?qū)ο?9可以是數(shù)據(jù)表,查詢,表格或報(bào)告。這個(gè)應(yīng)用程序?qū)ο?9的清單不是窮舉的。
如上所述,希望將由用戶應(yīng)用程序創(chuàng)建的應(yīng)用程序?qū)ο?9鏈接至第二個(gè)用戶應(yīng)用程序。例如,可能希望將一個(gè)字處理文件中駐留的圖形鏈接至一個(gè)能夠操作圖形對(duì)象的應(yīng)用程序。當(dāng)前,處理這個(gè)問題的一個(gè)方法包括使用對(duì)象鏈接和嵌入(OLE)協(xié)議。OLE提供了一種協(xié)議,通過它應(yīng)用程序之間可以通信和交換鏈接或嵌入對(duì)象的信息。但是,OLE需要在被鏈接或嵌入的對(duì)象與創(chuàng)建該對(duì)象的應(yīng)用程序之間維護(hù)明確預(yù)定義的鏈接。
本發(fā)明使得一個(gè)用戶應(yīng)用程序中的應(yīng)用程序?qū)ο?9能夠動(dòng)態(tài)地與另一個(gè)用戶應(yīng)用程序相關(guān)聯(lián)而不需要維護(hù)對(duì)象與其他應(yīng)用程序之間的明確的鏈接。這個(gè)方法被稱為動(dòng)態(tài)對(duì)象鏈接,與其相關(guān)的接口被稱為動(dòng)態(tài)對(duì)象鏈接接口。為了引用方便,所討論的對(duì)象駐留的應(yīng)用程序被稱為主應(yīng)用程序64。對(duì)象被動(dòng)態(tài)關(guān)聯(lián)的其他應(yīng)用程序被稱為補(bǔ)充應(yīng)用程序68。來自主應(yīng)用程序64被動(dòng)態(tài)鏈接的應(yīng)用程序?qū)ο?9將被稱為目標(biāo)對(duì)象70。
本發(fā)明的計(jì)算機(jī)系統(tǒng)10包括一個(gè)對(duì)象映射器120以標(biāo)識(shí)計(jì)算機(jī)上可用的那些應(yīng)用程序,它們更可能適合于操作目標(biāo)對(duì)象70。在對(duì)象映射器120上注冊(cè)的每個(gè)應(yīng)用程序與一個(gè)方法測(cè)試器85相關(guān),方法測(cè)試器85確定相關(guān)的應(yīng)用程序處理目標(biāo)對(duì)象70的適合性。當(dāng)被對(duì)象映射器120查詢時(shí),每個(gè)方法測(cè)試器85返回一個(gè)分?jǐn)?shù)至對(duì)象映射器120,這里被稱為“可能性分?jǐn)?shù)”,它表示相關(guān)應(yīng)用程序適合處理目標(biāo)對(duì)象70的程度。目標(biāo)映射控制器分析由方法測(cè)試器85提供的可能性分?jǐn)?shù)并基于該可能性分?jǐn)?shù)選擇一個(gè)補(bǔ)充應(yīng)用程序68。一般地,補(bǔ)充應(yīng)用程序68是有最高可能性分?jǐn)?shù)的應(yīng)用程序,表示它是最適合處理目標(biāo)對(duì)象70的應(yīng)用程序?;蛘呤?,提供一個(gè)備選補(bǔ)充應(yīng)用程序68的清單供用戶選擇,最好是有它們的可能性分?jǐn)?shù)的指示。
參考圖2,組成本發(fā)明的動(dòng)態(tài)對(duì)象鏈接接口的軟件部件包括操作系統(tǒng)100,運(yùn)行環(huán)境30,和多個(gè)用戶應(yīng)用程序60。特別與運(yùn)行環(huán)境30相關(guān)的是對(duì)象映射器120,應(yīng)用程序封裝注冊(cè)矢量125,和動(dòng)態(tài)鏈接控制器110。在圖2中示出的還有主應(yīng)用程序64,它含有多個(gè)應(yīng)用程序?qū)ο?9,包括目標(biāo)對(duì)象70。目標(biāo)對(duì)象70的選擇可以通過多個(gè)本領(lǐng)域熟知的方法實(shí)現(xiàn),例如雙擊鼠標(biāo)。
在運(yùn)行環(huán)境30中駐留的是多個(gè)應(yīng)用程序,總的用數(shù)字60表示。每個(gè)應(yīng)用程序60包括主應(yīng)用程序?qū)ο?3,和獨(dú)立的應(yīng)用程序封裝對(duì)象80。主應(yīng)用程序83包含編碼信息和應(yīng)用程序60完成它的任務(wù)所需的數(shù)據(jù)。編碼信息和與主應(yīng)用程序83相關(guān)的數(shù)據(jù)一般不裝入系統(tǒng)內(nèi)存14并且直到用戶直接或間接請(qǐng)求應(yīng)用程序60時(shí)才被激活。例如,在典型的圖形用戶界面類型的環(huán)境中,非活動(dòng)應(yīng)用程序60在視頻顯示屏上顯示為一個(gè)小的圖標(biāo)。為了請(qǐng)求或啟動(dòng)特定應(yīng)用程序60,用戶只是簡(jiǎn)單地使用鼠標(biāo)類型的指示設(shè)備在所需的圖標(biāo)上雙擊。一旦雙擊后,相關(guān)的主應(yīng)用程序83被調(diào)入到系統(tǒng)內(nèi)存14中而執(zhí)行。
應(yīng)用程序封裝80作為運(yùn)行環(huán)境30和與之相關(guān)的主應(yīng)用程序83之間的接口。應(yīng)用程序封裝80可以被看作是與之相關(guān)的主應(yīng)用程序83的預(yù)報(bào)器。應(yīng)用程序封裝80當(dāng)運(yùn)行環(huán)境30被引導(dǎo)時(shí)被調(diào)入并在后臺(tái)運(yùn)行。如圖4所示,應(yīng)用程序封裝80與它相關(guān)的主應(yīng)用程序83和對(duì)象映射器120通信。
此外,如圖4所示,應(yīng)用程序封裝80最好包括方法測(cè)試器85。方法測(cè)試器85包含與確定與應(yīng)用程序封裝80相關(guān)的應(yīng)用程序60可以有效地處理任何給定的目標(biāo)對(duì)象70的可能性相關(guān)的信息。
應(yīng)用程序60當(dāng)與應(yīng)用程序封裝80相關(guān)的方法測(cè)試器85已被對(duì)象映射器120識(shí)別和確認(rèn)時(shí)被認(rèn)為被“注冊(cè)”。注冊(cè)過程一般在應(yīng)用程序被安裝時(shí)進(jìn)行,此時(shí)與新的應(yīng)用程序60相關(guān)的應(yīng)用程序封裝80查詢系統(tǒng)以找到對(duì)象映射器120并提供它出現(xiàn)的通知。在響應(yīng)中,對(duì)象映射器120將新的應(yīng)用程序封裝80的一個(gè)引用增加到應(yīng)用程序封裝注冊(cè)矢量125中。
圖4示出已被定義并駐留在運(yùn)行環(huán)境30中的不同對(duì)象間數(shù)據(jù)的基本流程。圖4中示出的配置假定一個(gè)應(yīng)用程序60,主應(yīng)用程序64,被用戶激活和占用。為了說明的目的,假設(shè)用戶與之交互的主應(yīng)用程序64是字處理器。在主應(yīng)用程序64包含的是多個(gè)對(duì)象,包括目標(biāo)對(duì)象70。目標(biāo)對(duì)象70可以是,例如,圖3所示的包含在被編輯的文本文件中的七位數(shù)字。
一旦目標(biāo)對(duì)象70被選定,用戶通過點(diǎn)擊動(dòng)態(tài)鏈接控制菜單按鈕44激活動(dòng)態(tài)鏈接控制110。激活后,動(dòng)態(tài)鏈接控制110查詢主應(yīng)用程序64并請(qǐng)求目標(biāo)對(duì)象70的一個(gè)拷貝。主應(yīng)用程序64通過將目標(biāo)對(duì)象70的一個(gè)拷貝傳遞到動(dòng)態(tài)鏈接控制110。然后,動(dòng)態(tài)鏈接控制110把目標(biāo)對(duì)象70的一個(gè)拷貝傳遞到對(duì)象映射器120而響應(yīng)。之后,對(duì)象映射器120又系統(tǒng)地查詢?cè)趹?yīng)用程序封裝注冊(cè)矢量125中列出的所有應(yīng)用程序封裝80。
如圖4所示,在查詢過程中,應(yīng)用程序封裝80被傳遞一個(gè)目標(biāo)對(duì)象70的拷貝以測(cè)定。與應(yīng)用程序封裝80相關(guān)的方法測(cè)試器85使用目標(biāo)對(duì)象70的拷貝計(jì)算可能性分?jǐn)?shù),可能性分?jǐn)?shù)表示目標(biāo)對(duì)象70可能被與封裝80相關(guān)的應(yīng)用程序60有效處理的可能性。
存在很多不同的方法測(cè)試器85計(jì)算可能性分?jǐn)?shù)的算法。所使用的算法取決于方法測(cè)試器85和應(yīng)用程序封裝80相關(guān)的用戶應(yīng)用程序60。作為一個(gè)例子,一個(gè)電話撥號(hào)程序可以首先確定目標(biāo)對(duì)象70是否有一個(gè)適合的對(duì)象類型。如果目標(biāo)對(duì)象70既不是數(shù)字也不是字符串類型,則可能性分?jǐn)?shù)會(huì)非常低或是零。如果目標(biāo)對(duì)象70是數(shù)字或字符串類型,則方法測(cè)試器85將繼續(xù)進(jìn)行一系列模式匹配以確定適合的可能性分?jǐn)?shù)值。例如,如果目標(biāo)對(duì)象70的模式是一個(gè)7位整數(shù),可能性分?jǐn)?shù)將會(huì)很高,是最大值或接近最大值,例如1。如果目標(biāo)對(duì)象70模式是一個(gè)長(zhǎng)度為8的字符串,包含七個(gè)數(shù)字和一個(gè)短劃線,則可能性分?jǐn)?shù)將同樣很高。但是,如果目標(biāo)對(duì)象70模式是非整數(shù)7位數(shù)字,則可能性分?jǐn)?shù)將是一個(gè)中間值,例如0.15。如本領(lǐng)域的技術(shù)人員可以理解的,電話號(hào)碼可以以不同的方式表示,特別是當(dāng)電話號(hào)碼是是國(guó)際電話時(shí)。模式匹配的目的是識(shí)別目標(biāo)對(duì)象70是那些表達(dá)之一的可能性??赡苄栽礁?,產(chǎn)生的可能性分?jǐn)?shù)越高。
如同電話撥號(hào)方法測(cè)試器85,其它用戶應(yīng)用程序60的方法測(cè)試器85是應(yīng)用程序,或至少是應(yīng)用程序類型。這種方法測(cè)試器85中的特定算法被做成識(shí)別目標(biāo)對(duì)象70可能被與每個(gè)這種方法測(cè)試器85相關(guān)的應(yīng)用程序60處理的可能性。每個(gè)方法測(cè)試器85中采用的特定測(cè)試的編程是本領(lǐng)域的技術(shù)人員所熟知的。
方法測(cè)試器85產(chǎn)生的可能性分?jǐn)?shù)被從應(yīng)用程序封裝80傳遞回對(duì)象映射器120,在此它被暫時(shí)存儲(chǔ)并與從被查詢的其它注冊(cè)的應(yīng)用程序封裝80接收的可能性分?jǐn)?shù)進(jìn)行比較。一旦在應(yīng)用程序封裝注冊(cè)矢量125中列出的所有應(yīng)用程序封裝80被對(duì)象映射器120查詢,對(duì)象映射器120采用一種判斷算法以確定哪個(gè)應(yīng)用程序60被認(rèn)定為補(bǔ)充應(yīng)用程序68。這種判斷算法之一是高分取勝類型的判斷算法。其它實(shí)用的判斷算法的例子包括,選擇高于一定閾值的最高可能性分?jǐn)?shù),或在分?jǐn)?shù)相等的情況下提示用戶選擇應(yīng)用程序60。應(yīng)注意,沒有可能性分?jǐn)?shù)高到可以表示有其它任何一個(gè)應(yīng)用程序60可以適合處理目標(biāo)對(duì)象70的情況是可能的;在這種情況下,動(dòng)態(tài)對(duì)象鏈接可能會(huì)失敗。
通過判斷算法對(duì)應(yīng)用程序60的選擇識(shí)別一個(gè)補(bǔ)充應(yīng)用程序68。對(duì)象映射器120使補(bǔ)充應(yīng)用程序68激活并接收目標(biāo)對(duì)象70的一個(gè)拷貝。最好是,對(duì)象映射器120指示應(yīng)用程序封裝80激活它相關(guān)的主應(yīng)用程序83,即補(bǔ)充應(yīng)用程序68的主應(yīng)用程序83,并給它傳遞目標(biāo)對(duì)象70的一個(gè)拷貝。應(yīng)用程序封裝80可以在產(chǎn)生另一個(gè)之前首先檢查它的相關(guān)主應(yīng)用程序83是否已經(jīng)被激活。之后,補(bǔ)充應(yīng)用程序68處理,并可能修改,目標(biāo)對(duì)象70的拷貝。
例如,假設(shè)由對(duì)象映射器120識(shí)別的補(bǔ)充應(yīng)用程序68是一個(gè)電話撥號(hào)應(yīng)用程序,而目標(biāo)對(duì)象70如前所述是可被解釋成電話號(hào)碼的7位數(shù)字文本串。一旦被激活,電話撥號(hào)應(yīng)用程序接收7位電話號(hào)碼并嘗試撥號(hào)并與建立該電話號(hào)碼方的連接。
補(bǔ)充應(yīng)用程序68還允許改變或修改目標(biāo)對(duì)象70的拷貝。為說明這一點(diǎn),考慮另一種可能的情況,電話撥號(hào)應(yīng)用程序接收了7位數(shù)字文本串對(duì)象后,搜索關(guān)于商業(yè)客戶信息和他們相關(guān)的電話號(hào)碼的客戶聯(lián)系數(shù)據(jù)庫(kù)。對(duì)數(shù)據(jù)庫(kù)的搜索表明與目標(biāo)對(duì)象70電話號(hào)碼串相關(guān)的客戶最近有一個(gè)新的電話號(hào)碼。在作出這個(gè)評(píng)定后,電話撥號(hào)應(yīng)用程序嘗試撥打新的電話號(hào)碼并建立與相關(guān)客戶的聯(lián)系。之后,電話撥號(hào)應(yīng)用程序還修改目標(biāo)對(duì)象70以反映電話號(hào)碼的修改。
當(dāng)被選的應(yīng)用程序完成了它的任務(wù)后,被潛在修改的目標(biāo)對(duì)象70的拷貝被傳遞到動(dòng)態(tài)鏈接控制110。為了引用方便,這個(gè)被潛在修改的目標(biāo)對(duì)象70的拷貝稱為返回對(duì)象75。之后,動(dòng)態(tài)鏈接控制110傳遞返回對(duì)象70至主機(jī)激活應(yīng)用程序,在此返回對(duì)象75替換目標(biāo)對(duì)象70。
以上的討論假設(shè)方法測(cè)試器85被包含在應(yīng)用程序封裝80中。但是,應(yīng)注意方法測(cè)試器85可以存在在應(yīng)用程序封裝80以外。如果是這樣,本發(fā)明的動(dòng)態(tài)對(duì)象鏈接接口的運(yùn)行不需要有應(yīng)用程序封裝80。取而代之的是,對(duì)象映射器120可以直接查詢方法測(cè)試器85和啟動(dòng)補(bǔ)充應(yīng)用程序68。但是,本發(fā)明的最佳實(shí)施例包括應(yīng)用程序封裝80。
還應(yīng)注意,不是所有的應(yīng)用程序60都向?qū)ο笥成淦?20注冊(cè)。如果一個(gè)應(yīng)用程序60沒有注冊(cè),則不可使用該應(yīng)用程序的動(dòng)態(tài)對(duì)象鏈接。
這個(gè)動(dòng)態(tài)對(duì)象鏈接接口策略的結(jié)構(gòu)是功能很強(qiáng)且非常靈活的,因?yàn)樗梢耘c任意對(duì)象一起運(yùn)行并不需要或要求對(duì)象與應(yīng)用程序之間的預(yù)定義鏈接。該動(dòng)態(tài)對(duì)象鏈接接口結(jié)構(gòu)還允許第三方應(yīng)用程序開發(fā)者提供他們自己的評(píng)估他們的應(yīng)用程序可以操作一個(gè)對(duì)象的可能性的算法,因而使系統(tǒng)可以支持較復(fù)雜的推理能力。
當(dāng)然本發(fā)明可以以與上述不同的方式實(shí)現(xiàn)而不背離本發(fā)明的精神和實(shí)質(zhì)。因而本發(fā)明的實(shí)施例在任何方面都是解釋性的而不是限制本發(fā)明,而且所有包含在權(quán)利要求
書的意義和等效范圍中的所有變化都包含在本發(fā)明中。
權(quán)利要求
1.一種在有多個(gè)用戶應(yīng)用程序的計(jì)算機(jī)系統(tǒng)中將來自主應(yīng)用程序的目標(biāo)對(duì)象動(dòng)態(tài)地鏈接到另一個(gè)用戶應(yīng)用程序的過程,包括a)用方法測(cè)試器為多個(gè)用戶應(yīng)用程序計(jì)算可能性分?jǐn)?shù),每個(gè)可能性分?jǐn)?shù)表示相應(yīng)的用戶應(yīng)用程序處理目標(biāo)對(duì)象的適合程度;b)基于所述可能性分?jǐn)?shù)在對(duì)象映射器中標(biāo)識(shí)一個(gè)補(bǔ)充應(yīng)用程序;并且c)從所述方法測(cè)試器傳遞所述目標(biāo)對(duì)象至所述補(bǔ)充應(yīng)用程序。
2.如權(quán)利要求
1的過程,進(jìn)一步包括啟動(dòng)所述補(bǔ)充應(yīng)用程序的一個(gè)實(shí)例。
3.如權(quán)利要求
1的過程,進(jìn)一步包括由所述補(bǔ)充應(yīng)用程序修改目標(biāo)對(duì)象以產(chǎn)生一個(gè)返回對(duì)象。
4.如權(quán)利要求
3的過程,進(jìn)一步包括其后傳遞所述返回對(duì)象至主應(yīng)用程序。
5.如權(quán)利要求
1的過程,其中補(bǔ)充應(yīng)用程序的所述標(biāo)識(shí)包括比較所述多個(gè)所述可能性分?jǐn)?shù)以標(biāo)識(shí)最高的所述可能性分?jǐn)?shù)。
6.如權(quán)利要求
1的過程,其中標(biāo)識(shí)一個(gè)補(bǔ)充應(yīng)用程序包括標(biāo)識(shí)多個(gè)候選應(yīng)用程序,提示用戶選擇所述候選應(yīng)用程序之一并基于所述用戶的輸入而選擇所述候選應(yīng)用程序之一作為補(bǔ)充應(yīng)用程序。
7.一種在有多個(gè)用戶應(yīng)用程序的計(jì)算機(jī)系統(tǒng)中將來自主應(yīng)用程序的目標(biāo)對(duì)象動(dòng)態(tài)地鏈接到另一個(gè)用戶應(yīng)用程序的過程,包括a)由一個(gè)對(duì)象映射器獲得目標(biāo)對(duì)象的一個(gè)拷貝;b)從所述對(duì)象映射器傳遞目標(biāo)對(duì)象的一個(gè)拷貝至多個(gè)方法測(cè)試器,每個(gè)方法測(cè)試器與一個(gè)相應(yīng)的用戶應(yīng)用程序相關(guān)聯(lián);c)由所述方法測(cè)試器計(jì)算多個(gè)可能性分?jǐn)?shù),每個(gè)可能性分?jǐn)?shù)表示相應(yīng)的用戶應(yīng)用程序處理目標(biāo)對(duì)象的適合程度;d)基于所述可能性分?jǐn)?shù)在對(duì)象映射器中標(biāo)識(shí)一個(gè)補(bǔ)充應(yīng)用程序;e)從所述方法測(cè)試器傳遞所述目標(biāo)對(duì)象的一個(gè)拷貝至補(bǔ)充應(yīng)用程序。
8.如權(quán)利要求
7的過程進(jìn)一步包括a)由補(bǔ)充應(yīng)用程序基于目標(biāo)對(duì)象產(chǎn)生一個(gè)返回對(duì)象;b)傳遞所述返回對(duì)象至主應(yīng)用程序。
9.如權(quán)利要求
7的過程,其中補(bǔ)充應(yīng)用程序的所述標(biāo)識(shí)包括比較所述多個(gè)所述可能性分?jǐn)?shù)以標(biāo)識(shí)最高的所述可能性分?jǐn)?shù)。
10.如權(quán)利要求
7的過程,其中標(biāo)識(shí)一個(gè)補(bǔ)充應(yīng)用程序包括標(biāo)識(shí)多個(gè)候選應(yīng)用程序,提示用戶選擇所述候選應(yīng)用程序之一并基于所述用戶輸入而選擇所述候選應(yīng)用程序之一作為補(bǔ)充應(yīng)用程序。
11.一種由有多個(gè)用戶應(yīng)用程序的計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)的對(duì)象鏈接接口,用于將主應(yīng)用程序中的一個(gè)目標(biāo)對(duì)象動(dòng)態(tài)地鏈接至所述計(jì)算機(jī)上可用的一個(gè)補(bǔ)充應(yīng)用程序,包括a)一個(gè)或多個(gè)方法測(cè)試器,每個(gè)與一個(gè)相應(yīng)的用戶應(yīng)用程序相關(guān)聯(lián),用于測(cè)試目標(biāo)對(duì)象并產(chǎn)生一個(gè)表示相關(guān)的用戶應(yīng)用程序處理目標(biāo)對(duì)象的適合程度的可能性分?jǐn)?shù);和b)一個(gè)對(duì)象映射器,用于查詢所述方法測(cè)試器,基于所述可能性分?jǐn)?shù)識(shí)別一個(gè)補(bǔ)充應(yīng)用程序,并傳遞所述目標(biāo)對(duì)象至所述補(bǔ)充應(yīng)用程序;和c)動(dòng)態(tài)鏈接由用戶激活的控制以初始化對(duì)象映射器。
12.如權(quán)利要求
11的對(duì)象鏈接接口,其中所述對(duì)象映射器傳遞所述目標(biāo)對(duì)象至所述方法測(cè)試器。
13.如權(quán)利要求
12的對(duì)象鏈接接口,其中動(dòng)態(tài)鏈接控制獲得從主應(yīng)用程序所述目標(biāo)對(duì)象并傳遞所述目標(biāo)對(duì)象至所述對(duì)象映射器。
14.一種由計(jì)算機(jī)實(shí)現(xiàn)的對(duì)象鏈接接口,用于將一個(gè)目標(biāo)對(duì)象動(dòng)態(tài)地鏈接至所述計(jì)算機(jī)上可用的一個(gè)補(bǔ)充應(yīng)用程序,包括a)一個(gè)由用戶激活的動(dòng)態(tài)鏈接控制,用于獲得目標(biāo)對(duì)象的一個(gè)拷貝;b)一個(gè)對(duì)象映射器,用于從動(dòng)態(tài)鏈接控制接收目標(biāo)對(duì)象并補(bǔ)充一個(gè)補(bǔ)充應(yīng)用程序處理所述目標(biāo)對(duì)象;c)一個(gè)或多個(gè)應(yīng)用程序封裝,每個(gè)通過應(yīng)用程序封裝注冊(cè)矢量與相應(yīng)的應(yīng)用程序相關(guān)聯(lián),從對(duì)象映射器接收目標(biāo)對(duì)象,所述應(yīng)用程序封裝包括一個(gè)方法測(cè)試器,用于測(cè)試目標(biāo)對(duì)象并產(chǎn)生一個(gè)表示相關(guān)用戶應(yīng)用程序處理目標(biāo)對(duì)象的適合程度的可能性分?jǐn)?shù);和d)所述對(duì)象映射器用于查詢每個(gè)所述方法測(cè)試器以獲得所述可能性分?jǐn)?shù),以識(shí)別一個(gè)補(bǔ)充應(yīng)用程序,用于處理所述目標(biāo)對(duì)象,并傳遞目標(biāo)對(duì)象至所述補(bǔ)充應(yīng)用程序。
15.如權(quán)利要求
14的對(duì)象鏈接接口,其中應(yīng)用程序封裝控制相關(guān)應(yīng)用程序的配置,啟動(dòng)和終止。
專利摘要
一種對(duì)象鏈接接口,用于計(jì)算機(jī)系統(tǒng)動(dòng)態(tài)地鏈接主應(yīng)用程序中的被選目標(biāo)對(duì)象和第二個(gè)用戶應(yīng)用程序。運(yùn)行環(huán)境包括多個(gè)方法測(cè)試器,每個(gè)與特定的用戶應(yīng)用程序相關(guān),和一個(gè)對(duì)象映射器。方法測(cè)試器被傳遞一個(gè)目標(biāo)對(duì)象的拷貝并測(cè)試相關(guān)的應(yīng)用程序處理目標(biāo)對(duì)象的適合程度并產(chǎn)生一個(gè)相應(yīng)的可能性分?jǐn)?shù)。對(duì)象映射器查詢每個(gè)方法測(cè)試器以獲得可能性分?jǐn)?shù)并基于所述可能性分?jǐn)?shù)識(shí)別一個(gè)或多個(gè)適合處理該目標(biāo)對(duì)象的應(yīng)用程序。
文檔編號(hào)G06F9/46GKCN1118751SQ98808998
公開日2003年8月20日 申請(qǐng)日期1998年8月20日
發(fā)明者B·G·莫恩, B·班克勒爾 申請(qǐng)人:艾利森公司導(dǎo)出引文BiBTeX, EndNote, RefMan