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