專(zhuān)利名稱(chēng):用于注冊(cè)連接的系統(tǒng)和方法、計(jì)算機(jī)可讀媒體和自動(dòng)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在第一軟件模塊和第二軟件模塊之間注冊(cè)連接的系統(tǒng)。
本發(fā)明進(jìn)一步涉及用于在第一軟件模塊和第二軟件模塊之間注冊(cè)連接的方法。
本發(fā)明進(jìn)一步涉及一種計(jì)算機(jī)可讀媒體,其中存儲(chǔ)了用于使一個(gè)或更多處理單元執(zhí)行上述方法的指令。
本發(fā)明進(jìn)一步涉及包括上述系統(tǒng)的一個(gè)自動(dòng)設(shè)備。
背景技術(shù):
EP0940747中公開(kāi)了上述系統(tǒng)和方法的一個(gè)實(shí)施例。其中公開(kāi)了在程序運(yùn)行的過(guò)程中,可以通過(guò)系統(tǒng)管理器添加、改變或移動(dòng)軟件系統(tǒng)的種類(lèi)。至此,包括了有關(guān)模塊化計(jì)算機(jī)系統(tǒng)中的模塊中的子系統(tǒng)的信息。類(lèi)是一種軟件結(jié)構(gòu),其包括了一個(gè)或多個(gè)屬性以及用于操作上述屬性的方法。子系統(tǒng)是類(lèi)的實(shí)例,其提供了明確定義的功能。其它子系統(tǒng)可以使用由該子系統(tǒng)提供的接口,以使用其功能。模塊是包含了一個(gè)或更多子系統(tǒng)的軟件實(shí)體。模塊是可動(dòng)態(tài)地鏈接的實(shí)體。模塊由系統(tǒng)管理器在內(nèi)部使用。當(dāng)下載了一個(gè)模塊時(shí),系統(tǒng)管理器調(diào)用該模塊以得到關(guān)于該模塊包含了哪個(gè)子系統(tǒng)的信息。當(dāng)需要一個(gè)子系統(tǒng)時(shí),發(fā)送一個(gè)請(qǐng)求到系統(tǒng)管理器,以找到需要的子系統(tǒng)的位置。系統(tǒng)管理器找到了包含該子系統(tǒng)的模塊,命令該模塊啟動(dòng)該子系統(tǒng),并返回需要的子系統(tǒng)的位置。因而只要有需要就可以直接地使用子系統(tǒng)。直到需要找到下一個(gè)子系統(tǒng)時(shí),才會(huì)需要系統(tǒng)管理器。然而,如果不存在相應(yīng)于請(qǐng)求的子系統(tǒng),系統(tǒng)管理器不能提供需要的子系統(tǒng)的位置,并且因而不能訪問(wèn)需要的子系統(tǒng)的接口。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目標(biāo)是根據(jù)在兩個(gè)軟件模塊之間以改進(jìn)的方式注冊(cè)連接的開(kāi)始段落,而提供一個(gè)系統(tǒng)。要實(shí)現(xiàn)上述目標(biāo),該系統(tǒng)的第一軟件模塊包括第一接口裝置,并且該系統(tǒng)的第二軟件模塊包括第二接口裝置;第一接口裝置設(shè)定為連接到第二接口裝置,并且第二接口裝置設(shè)定為連接到第一接口裝置;第一接口裝置包括注冊(cè)裝置,該注冊(cè)裝置設(shè)定為將第二接口裝置注冊(cè)成要與其連接的一個(gè)接口;并且第二軟件模塊包括通知裝置,其設(shè)定為將作為要與其連接的接口的第二接口裝置的可用性的改變通知給第一接口裝置。
軟件模塊是用于實(shí)現(xiàn)功能性的各個(gè)段的構(gòu)件塊。例如,軟件模塊可以實(shí)現(xiàn)例如傳感器、激勵(lì)器、圖象算法、控制行為、狀態(tài)計(jì)算機(jī)等功能性。軟件模塊可以作為操作系統(tǒng)中一個(gè)可執(zhí)行的個(gè)體而啟動(dòng)。軟件模塊具有輸入和/或輸出接口以共享數(shù)據(jù),并且其包含一個(gè)處理數(shù)據(jù)的算法。來(lái)自一個(gè)模塊的接口可以連接到來(lái)自另一個(gè)模塊的接口,因而在兩個(gè)模塊之間創(chuàng)建了連接。來(lái)自一個(gè)模塊的接口可以連接到不同模塊的不同接口。通過(guò)在每個(gè)接口中注冊(cè)它可以連接的接口,接口自身具有哪些接口能夠與其連接的信息。因此,接口本身可以被通知關(guān)于能夠與其連接的接口的可用性的改變。然后接口可以根據(jù)通知消息的內(nèi)容采取合適的行動(dòng)。
在權(quán)利要求2中描述了根據(jù)本發(fā)明的系統(tǒng)的一個(gè)實(shí)施例。仍然是通過(guò)注冊(cè)已建立了連接的接口,軟件模塊能夠明了期望與其建立連接的接口,以及已經(jīng)建立了連接的接口。因此,軟件模塊會(huì)具有是否至今已建立了其所有的連接的信息。
權(quán)利要求3中描述了根據(jù)本發(fā)明的系統(tǒng)的另一個(gè)實(shí)施例。通過(guò)包括關(guān)于期望與其建立連接的一個(gè)接口的創(chuàng)建的信息,被通知的接口可以采取適合的行動(dòng),如創(chuàng)建一個(gè)到已創(chuàng)建的接口的連接。而且,通過(guò)包括關(guān)于已建立連接的接口的消除的信息,被通知的接口對(duì)于該事件采取合適的行動(dòng)。例如,被通知的接口可以關(guān)閉該連接,并且將被消除的接口注冊(cè)到要連接的接口的注冊(cè)中。此外,在重新創(chuàng)建被消除的接口的情況下,可以要求包含該被消除的接口的軟件模塊添加到該軟件模塊的注冊(cè)中,作為要被通知的接口。
本發(fā)明的另一個(gè)目標(biāo)是根據(jù)在兩個(gè)軟件模塊之間以改進(jìn)的方式注冊(cè)一個(gè)連接的開(kāi)始段落,而提供一個(gè)方法。要實(shí)現(xiàn)上述目標(biāo),該方法的第一軟件模塊包括第一接口裝置,并且該方法的第二軟件模塊包括第二接口裝置;第一接口裝置設(shè)定為連接到第二接口裝置,并且第二接口裝置設(shè)定為連接到第一接口裝置;該方法進(jìn)一步包括,通過(guò)第一接口裝置,將第二接口裝置注冊(cè)成要與其連接的一個(gè)接口;通過(guò)第二軟件模塊,將作為一個(gè)接口要與其連接的第二接口裝置的可用性的改變通知給第一接口裝置。
在權(quán)利要求5和權(quán)利要求6中描述了該方法的實(shí)施例。
通過(guò)參照下面附圖所示的實(shí)施例,本發(fā)明的上述和其它方面會(huì)非常明顯。
附圖1示意性地示出了一個(gè)模塊結(jié)構(gòu);附圖2示出了注冊(cè)一個(gè)軟件模塊的方法步驟;附圖3示出了創(chuàng)建一個(gè)模塊的方法步驟;附圖4示出了創(chuàng)建一個(gè)連接接口的方法步驟;附圖5以示意性的方式示出了根據(jù)本發(fā)明的系統(tǒng)的主要部分。
具體實(shí)施例方式
模塊是計(jì)算機(jī)可讀代碼,其共同形成了用于實(shí)現(xiàn)功能性的各個(gè)段的構(gòu)件塊。例如,軟件模塊可以實(shí)現(xiàn)傳感器、激勵(lì)器、圖象算法、控制行為、狀態(tài)計(jì)算機(jī)、自動(dòng)設(shè)備等。模塊是獨(dú)立的軟件程序,其可以相對(duì)于在例如一個(gè)自動(dòng)設(shè)備中的其它模塊而異步地運(yùn)轉(zhuǎn)。操作系統(tǒng)可以提供模塊所需的資源,例如處理器時(shí)間和存儲(chǔ)器。軟件模塊可以作為操作系統(tǒng)中一個(gè)可執(zhí)行的個(gè)體而啟動(dòng)。此外,模塊可以與其它模塊相對(duì)獨(dú)立地執(zhí)行。
附圖1示意性地示出了一個(gè)模塊結(jié)構(gòu)。模塊100包括輸出接口104,模塊102包括輸入接口106以及輸出接口108。模塊100的輸出接口104通過(guò)連接110連接到模塊102的輸入接口106。彼此連接的輸入接口和輸出接口共享數(shù)據(jù)。模塊包含處理該數(shù)據(jù)的算法。如果接口的屬性匹配,在運(yùn)行時(shí)間內(nèi)接口可以彼此連接。接口具有以下的屬性接口類(lèi)型、數(shù)據(jù)類(lèi)型、緩沖類(lèi)型和觸發(fā)類(lèi)型。
-接口類(lèi)型有三種類(lèi)型的接口。第一種類(lèi)型是輸入接口。該接口用于從其它模塊讀出數(shù)據(jù)。第二種類(lèi)型是輸出接口。該接口用于向其它模塊寫(xiě)入數(shù)據(jù)。從該接口的讀出和寫(xiě)入是異步進(jìn)行的。也就是說(shuō),如果一個(gè)模塊向另一個(gè)模塊寫(xiě)入數(shù)據(jù),它不會(huì)等到數(shù)據(jù)已經(jīng)被接收,相反它會(huì)繼續(xù)執(zhí)行其算法。第三種類(lèi)型是雙向接口,從中可以讀也可以寫(xiě)。第三種類(lèi)型允許同步通信。
-數(shù)據(jù)類(lèi)型接口優(yōu)選為只支持一種數(shù)據(jù)類(lèi)型。共享相同數(shù)據(jù)類(lèi)型的接口可以彼此連接。不同的數(shù)據(jù)類(lèi)型,例如字符串、字節(jié)、整數(shù)和浮點(diǎn)數(shù)、或者上述類(lèi)型的陣列等可以在該結(jié)構(gòu)中使用。
-緩沖類(lèi)型由于輸入接口和輸出接口可以異步運(yùn)轉(zhuǎn),可以將數(shù)據(jù)發(fā)送到輸出接口,而其還沒(méi)有正在讀取。因此,緩沖類(lèi)型是由接口定義的。第一種緩沖類(lèi)型是“保持最新”緩沖,其存儲(chǔ)已到達(dá)的新數(shù)據(jù)項(xiàng)目,并且移除舊的數(shù)據(jù)。第二種緩沖類(lèi)型是“保持最先”緩沖,其保持最先未經(jīng)讀取的數(shù)據(jù)項(xiàng)目,并且移除最新到達(dá)的數(shù)據(jù)項(xiàng)目。第三種緩沖類(lèi)型是“保持全部”緩沖,其存儲(chǔ)所有接收并未讀取的數(shù)據(jù)項(xiàng)目。
-觸發(fā)類(lèi)型有兩種類(lèi)型的機(jī)制來(lái)觸發(fā)接口之間數(shù)據(jù)的傳送。第一種機(jī)制是推送機(jī)制(push mechanism)。當(dāng)模塊的算法執(zhí)行寫(xiě)操作時(shí),推送輸出接口將數(shù)據(jù)直接傳送到與其連接的推送輸入接口。這在所連接的模塊的輸入接口處生成了一個(gè)外部事件。第二種是機(jī)制是拉出機(jī)制(pull mechanism)。當(dāng)模塊的算法執(zhí)行讀操作時(shí),拉出輸入接口發(fā)送對(duì)于新數(shù)據(jù)的請(qǐng)求到其連接的拉出輸出接口。這樣在與其連接的模塊的輸出接口生成了一個(gè)外部事件。推送/拉出輸入接口和推送/拉出輸出接口之間的所有組合都是允許的。然而,對(duì)于推送輸入接口和拉出輸出接口的組合來(lái)說(shuō),沒(méi)有能夠初始傳送數(shù)據(jù)的接口。
在不背離本發(fā)明內(nèi)容的情況下,接口還可以具有更多(或更少)的不同類(lèi)型的屬性。
每個(gè)接口都可以連接到多個(gè)其它接口。例如,如果一個(gè)輸出接口連接到多個(gè)輸入接口,那么輸入接口接收正在傳送的數(shù)據(jù)的拷貝。
附圖2示出了注冊(cè)軟件模塊的方法步驟。如上所述,模塊是一個(gè)獨(dú)立的程序。因此,為了使模塊彼此連接,模塊和接口可以“找到”彼此。這是通過(guò)給模塊和接口一個(gè)唯一的名字并且使用注冊(cè)處來(lái)完成的。該注冊(cè)處是一個(gè)程序,其保持所有運(yùn)行模塊的名字的一個(gè)列表。在第一步驟S200中,創(chuàng)建了模塊A,并將其名字和附加信息例如其程序標(biāo)識(shí)發(fā)送到注冊(cè)處以被注冊(cè)。一旦注冊(cè)了該模塊,其可以通過(guò)名字搜索其它模塊。模塊A包含輸出接口oA,其希望連接到另一個(gè)模塊B的輸入接口iB?,F(xiàn)在,在步驟S202中,模塊A向注冊(cè)處詢(xún)問(wèn)具有模塊名B的其它模塊的程序標(biāo)識(shí)。在具有名字B的模塊不可用的情況下,方法進(jìn)行到步驟S204。在具有名字B的模塊可用的情況下,方法進(jìn)行到步驟S206。
在步驟S204中,模塊A要求注冊(cè)處,以注冊(cè)在注冊(cè)處的通知列表中,以便在創(chuàng)建模塊B時(shí)接收到通知。通知列表包括一個(gè)表格,其具有需要通知的模塊的名字,以及需要向其發(fā)送創(chuàng)建通知的模塊的名字。例如
其它表格或集合也是可以考慮的,例如根據(jù)需要通知的模塊的集合或根據(jù)創(chuàng)建的模塊的集合。
在步驟S206,模塊A要求模塊B連接到輸入接口iB。在輸入接口iB不可用的情況下,方法進(jìn)行到步驟S208。在輸入接口iB可用的情況下,方法進(jìn)行到步驟S210。
在步驟S208中,模塊A要求模塊B在模塊B的通知列表中注冊(cè),以在輸入接口iB創(chuàng)建時(shí),接收一個(gè)通知。模塊B將模塊A的名字注冊(cè)到其通知列表中。該通知列表包括在創(chuàng)建或移除一個(gè)接口的情況下,需要通知的所有模塊的名字。通知列表包括需要通知的模塊名字和被創(chuàng)建或移除的接口的映射。通知列表還可以是按照需要通知的模塊名字的接口的集合。此外,輸出接口oA注冊(cè)其到輸入接口iB的連接還未建立。
在步驟S210中,建立模塊A的輸出接口oA和模塊B的輸入接口iB之間的連接。輸出接口oA還包括已與其建立連接的接口的名字的一個(gè)列表,并將輸入接口iB添加到該“已建立”列表中。輸入接口iB隨后與還不能建立連接的接口一起,從輸出接口oA的該列表中移除。而且,輸入接口iB具有其自己的“已建立”列表,并且將輸出接口oA作為已建立連接的一個(gè)接口,添加入該列表。
附圖3示出了模塊創(chuàng)建的方法步驟。在步驟S300中,模塊A試圖建立到模塊B的輸入接口iB的一個(gè)連接。然而,由于模塊B還沒(méi)有在注冊(cè)處注冊(cè),模塊A被添加到該注冊(cè)處的通知列表,以便在創(chuàng)建模塊B時(shí)通知模塊A。
在步驟S302中,啟動(dòng)模塊B,并在注冊(cè)處注冊(cè)模塊B。注冊(cè)處用模塊B的模塊名和其程序標(biāo)識(shí)注冊(cè)模塊B。
在接下來(lái)的步驟S304中,注冊(cè)處檢查其通知列表,并且將模塊B的創(chuàng)建通知給模塊A。
在步驟S306中,模塊A請(qǐng)求模塊B連接到輸入接口iB。在輸入接口iB不可用的情況下,方法如上所述進(jìn)行到步驟S208。在輸入接口iB可用的情況下,方法如上所述進(jìn)行到步驟S210。
附圖4示出了創(chuàng)建一個(gè)連接接口的方法步驟。在步驟S400中,模塊A試圖在模塊A的輸出接口oA和模塊B的輸入接口iB之間建立一個(gè)連接。模塊A向注冊(cè)處請(qǐng)求模塊B的程序標(biāo)識(shí),而且模塊A接收注冊(cè)處的該程序標(biāo)識(shí)。通過(guò)使用該標(biāo)識(shí),模塊A要求模塊B建立一個(gè)到輸入接口iB的連接。然而,輸入接口iB還沒(méi)有創(chuàng)建,而且模塊B將模塊A添加到模塊B的通知列表,以便在創(chuàng)建輸入接口iB時(shí)通知模塊A。
在步驟S402中,模塊B創(chuàng)建名為iB的一個(gè)輸入接口。模塊B檢查其通知列表,并通知模塊A已創(chuàng)建了輸入接口iB。
在下一個(gè)步驟S404中,模塊A的輸出接口oA請(qǐng)求模塊B的輸入接口iB建立一個(gè)連接。
在下一個(gè)步驟S210中,執(zhí)行如上所述的,并且在輸出接口oA和輸入接口iB之間建立一個(gè)連接。
對(duì)于一個(gè)模塊的接口的消除的注冊(cè),模塊和注冊(cè)處也具有一個(gè)通知列表。模塊的“消除”通知列表明了對(duì)于模塊的接口的消除而要通知的所有模塊。注冊(cè)處的“消除”通知列表明了如果一個(gè)模塊停止執(zhí)行時(shí),則需要通知的所有模塊。
當(dāng)前發(fā)明的方法的所述實(shí)施例的順序并不是必須遵循的,本領(lǐng)域技術(shù)人員能夠在不背離當(dāng)前發(fā)明所示的內(nèi)容的情況下,改變步驟的順序,或并行地使用穿線模型、多處理器系統(tǒng)或多個(gè)程序執(zhí)行步驟。
附圖5以示意的方式示出了根據(jù)本發(fā)明的系統(tǒng)的主要部分。系統(tǒng)500包括微處理器502、軟件總線504和存儲(chǔ)器506。存儲(chǔ)器508可以是隨機(jī)存取存儲(chǔ)器(RAM)。存儲(chǔ)器506通過(guò)軟件總線504與微處理器502通信。存儲(chǔ)器506包括計(jì)算機(jī)可讀代碼508、510、512、514、516和518。計(jì)算機(jī)可讀代碼508被設(shè)計(jì)為一個(gè)軟件模塊,其能夠?qū)崿F(xiàn)運(yùn)動(dòng)傳感器的功能。計(jì)算機(jī)可讀代碼514被設(shè)計(jì)為一個(gè)軟件模塊,其能夠?qū)崿F(xiàn)響應(yīng)所感應(yīng)的運(yùn)動(dòng)而產(chǎn)生反應(yīng)的功能。該反應(yīng)可以是運(yùn)動(dòng)、警報(bào)等。計(jì)算機(jī)可讀代碼510被設(shè)計(jì)成實(shí)現(xiàn)如上所述的一個(gè)輸出接口的功能。計(jì)算機(jī)可讀代碼512被設(shè)計(jì)成實(shí)現(xiàn)注冊(cè)還未建立連接的接口的功能。此外,計(jì)算機(jī)可讀代碼512被設(shè)計(jì)成實(shí)現(xiàn)注冊(cè)已建立連接的接口的功能。計(jì)算機(jī)可讀代碼516被設(shè)計(jì)成實(shí)現(xiàn)如上所述的一個(gè)輸入接口的功能。計(jì)算機(jī)可讀代碼518被設(shè)計(jì)成實(shí)現(xiàn)將模塊注冊(cè)的功能,在如上所述一個(gè)接口可用的情況下,該模塊必須被通知。系統(tǒng)500包括在自動(dòng)設(shè)備520中。
值得注意的是上述實(shí)施例旨在解釋而不是限定本發(fā)明,本領(lǐng)域的技術(shù)人員能夠在不背離附加的權(quán)利要求的范圍的情況下,設(shè)計(jì)很多可選實(shí)施例。在權(quán)利要求中,位于圓括號(hào)中的任何附圖標(biāo)記都不能解釋為限定該權(quán)利要求。詞語(yǔ)“包括”并不排除權(quán)利要求中所列之外的部件或步驟的存在。在某個(gè)部件之前的詞語(yǔ)“一個(gè)”并不排除多個(gè)該部件的存在。本發(fā)明可以通過(guò)包括若干各別的部件的硬件實(shí)現(xiàn),也可以通過(guò)適合的程序控制的計(jì)算機(jī)實(shí)現(xiàn)。在系統(tǒng)中權(quán)利要求列舉了若干裝置,上述裝置中的個(gè)別裝置可以由計(jì)算機(jī)可讀軟件或硬件的一個(gè)和相同項(xiàng)目實(shí)現(xiàn)。僅僅憑彼此不同的從屬權(quán)利要求敘述特定方法的事實(shí),并不代表著不能有效地使用上述方法的組合。
權(quán)利要求
1.一種用于在第一軟件模塊(508)和第二軟件模塊(506)之間注冊(cè)一個(gè)連接的系統(tǒng)(500),其中第一軟件模塊(508)包括第一接口裝置(510),而且第二軟件模塊(506)包括第二接口裝置(516),第一接口裝置(510)設(shè)定為連接到第二接口裝置(516),并且第二接口裝置(516)設(shè)定為連接到第一接口裝置(510);第一接口裝置(510)包括注冊(cè)裝置(512),其設(shè)定為將第二接口裝置(516)注冊(cè)為要與其連接的一個(gè)接口;并且第二軟件模塊(506)包括通知裝置(508),其設(shè)定為將作為要與其連接的接口的第二接口裝置(516)的可用性的改變通知給第一接口裝置(510)。
2.根據(jù)權(quán)利要求1的系統(tǒng)(500),其中第一接口裝置(510)的注冊(cè)裝置(512)被設(shè)定為將第二接口裝置(516)注冊(cè)為與其已建立連接的一個(gè)接口。
3.根據(jù)權(quán)利要求1的系統(tǒng)(500),其中第二接口的可用性表示第二接口裝置(516)的創(chuàng)建或第二接口裝置(516)的消除。
4.一種在第一軟件模塊(508)和第二軟件模塊(506)之間注冊(cè)一個(gè)連接的方法,其中第一軟件模塊(508)包括第一接口裝置(510),而且第二軟件模塊(506)包括第二接口裝置(516),第一接口裝置(510)設(shè)定為連接到第二接口裝置(516),并且第二接口裝置(516)設(shè)定為連接到第一接口裝置(510);并且該方法包括由第一接口裝置(510)將第二接口裝置(516)注冊(cè)成要與其連接的一個(gè)接口;由第二軟件模塊(506)將作為要與其連接的接口的第二接口裝置(516)的可用性的改變通知給第一接口裝置(506)。
5.權(quán)利要求4所述的方法,該方法包括,由第一接口裝置(510)將第二接口裝置(516)注冊(cè)為與其已建立連接的一個(gè)接口。
6.權(quán)利要求4所述的方法,其中第二接口的可用性表示第二接口的創(chuàng)建或第二接口的消除。
7.一個(gè)計(jì)算機(jī)可讀媒體,其中存儲(chǔ)的指令可以促使一個(gè)或更多處理單元執(zhí)行權(quán)利要求4至6中的任一個(gè)所述方法。
8.一種自動(dòng)設(shè)備(520),包括權(quán)利要求1至3中任一個(gè)所述的系統(tǒng)(500)。
全文摘要
本發(fā)明公開(kāi)了用于監(jiān)控材料處理系統(tǒng)的改進(jìn)的系統(tǒng)和方法,其中該材料處理系統(tǒng)包括一個(gè)處理工具、連接到處理工具以生成并傳送電數(shù)據(jù)的若干RF響應(yīng)電傳感器、配置為從若干RF響應(yīng)電傳感器接收電數(shù)據(jù)的傳感器接口集合(SIA)。
文檔編號(hào)G05D1/02GK1860442SQ200480004676
公開(kāi)日2006年11月8日 申請(qǐng)日期2004年2月9日 優(yōu)先權(quán)日2003年2月20日
發(fā)明者A·J·N·范布里門(mén) 申請(qǐng)人:皇家飛利浦電子股份有限公司