專利名稱:多協(xié)議環(huán)境中的自動工具管理的制作方法
技術領域:
本發(fā)明涉及以下共同擁有的共同未決美國專利申請臨時申請序號60/216,819,申請日期2000年7月7日,并且申請依據(jù)35 U.S.C.119(e)的最早申請日權利;以及申請序號09/496,009,“基于Web的工具管理裝置和方法”(代理審查號21183-P001US),申請日期2000年2月1日,本申請為該申請的繼續(xù)部分。
本發(fā)明涉及生產(chǎn)工藝,更確切地說,涉及提供一種在多協(xié)議環(huán)境中控制生產(chǎn)設備的機制。
現(xiàn)代生產(chǎn)設備依賴高度自動化的工具實現(xiàn)生產(chǎn)工藝。例如,半導體制造(“fab”)設備安裝高度自動化的成套工具生產(chǎn)半導體片。通過一組軟件方法調(diào)停過程控制和監(jiān)控,其中調(diào)用軟件方法實現(xiàn)加工和監(jiān)控??刂坪捅O(jiān)控軟件在工具服務器上運行,以點對點方式,經(jīng)由許多端口將工具服務器連接到工具,各端口連接工具服務器和特定工具。作為選擇,工具服務器中的工具可以駐留在局域網(wǎng)(LAN)上。為了控制生產(chǎn)工藝,用戶必須能夠通過駐留在LAN上的用戶系統(tǒng),或者通過與工具服務器通信,與工具服務器通信。特別地,在現(xiàn)有范圍內(nèi),為控制和監(jiān)控工具狀態(tài)而遠程訪問工具服務器,需要開發(fā)在提供遠程訪問的各種平臺上實現(xiàn)的專用代碼。然而,現(xiàn)代數(shù)據(jù)處理系統(tǒng)通常提供各種各樣的先前存在的軟件應用程序,如瀏覽器和電子表格軟件,這些軟件包括面向?qū)ο蟮膽瞄g或進程(過程)間通信的功能。這些功能有助于跨越不同平臺和軟件環(huán)境的進程間通信。因此,需要一種使接口連接應用軟件適應生產(chǎn)設備的系統(tǒng)和方法,其中接口連接應用軟件使用各種各樣的面向?qū)ο蟮倪^程間通信協(xié)議。另外,此類接口連接系統(tǒng)和方法應適應傳統(tǒng)工具控制、監(jiān)控應用以及實施安全策略。
在某些實施方式中,通過推動使用各種各樣的面向?qū)ο蟮倪M程間通信協(xié)議的生產(chǎn)設備在不同平臺和軟件環(huán)境中的進程間通信,至少部分解決上述問題。
在一種實施方式中,用于自動工具管理的過程包括以下步驟,使用應用程序的用戶以各種方式,如廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)等,根據(jù)面向?qū)膽瞄g協(xié)議,或(等效的對象到對象協(xié)議),如組件對象模型(COM)、JavaTM遠程方法調(diào)用(RMI)、公用對象請求代理體系結構(CORBA)、簡單對象訪問協(xié)議(SOAP)或諸如超文本傳輸協(xié)議(HTTP)之類的網(wǎng)絡傳輸協(xié)議,發(fā)出消息。該消息可以為執(zhí)行特定操作的請求,如,從工具中抽取特定信息,將與工具對象有關的變量或參數(shù)設置為某個特定值。與工具有關的對象可以定義工具的狀態(tài)。
由相應的應用程序接口單元接收該消息??梢耘渲脩贸绦蚪涌趩卧赃B接諸如OBEM之類的設備模型和用戶。也可以進一步配置應用程序接口單元以抽取所接收的消息的內(nèi)容,接收的消息包括所請求的操作需要的數(shù)據(jù)。該消息可以包括設備模型中對象的指針,其中設備模型表示要在其上執(zhí)行操作的工具。應用程序接口單元可以調(diào)用消息中的指針指向的對象的方法,并向該方法傳送組成消息內(nèi)容的數(shù)據(jù)。該方法可以提供遠程對象訪問,而遠程對象訪問允許執(zhí)行遠程診斷和修修理。
設備模型可以獲得與消息中所請求的操作和數(shù)據(jù)有關的數(shù)值。亦即,可以將該數(shù)值與某個工具的消息中請求的特定信息聯(lián)系起來,如,溫度、壓力、狀態(tài)或通知用戶發(fā)生事件(警報解除)的通告。設備模型可以根據(jù)用戶應用提供的地址向正確用戶傳送該數(shù)值。
以上概括介紹了本發(fā)明的特征和技術優(yōu)勢,目的是更好地理解本發(fā)明的詳細說明書。以下說明構成本發(fā)明之權利要求主題的本發(fā)明的附加特征和優(yōu)點。
通過連同附圖考慮以下詳細說明書,將更好地理解本發(fā)明,其中附圖為
圖1表示根據(jù)本發(fā)明配置的系統(tǒng)的一種實施方式;圖2表示本發(fā)明的工具服務器的一種實施方式;圖3表示為在多協(xié)議環(huán)境中提供自動工具管理而配置的本發(fā)明的程序的軟件體系結構的一種實施方式;圖4表示根據(jù)本發(fā)明配置的設備模型的統(tǒng)一建模語言(UML)圖;圖5表示根據(jù)本發(fā)明配置的典型設備模型的圖形用戶界面(GUI);圖6表示根據(jù)本發(fā)明配置的另一種典型GUI的一部分;圖7是一個流程圖,表示通過設備模型從工具中檢索信息和/或向工具發(fā)出服務請求的方法;圖8是一個流程圖,表示用于工具訪問控制的方法;以及圖9表示本發(fā)明的安全封裝器體系結構的一種實施方式。
在以下說明中,闡述了大量的特定細節(jié)以便全面理解本發(fā)明。例如,提到了特殊的消息格式和應用間通信協(xié)議,然而,一般技術人員理解,可以在沒有此類特定細節(jié)的情況下實現(xiàn)本發(fā)明。在其他實例中,以框圖形式表示熟知電路,以防止在不必要的細節(jié)中混淆本發(fā)明。
以下參照附圖,其中并未按比例表示所有元件,并且在所有附圖中用相同的參考號數(shù)表示相同或相似元件。
圖1表示本發(fā)明的系統(tǒng)100的一種實施方式,配置系統(tǒng)100以便提供允許一個或多個用戶101A-C通過工具服務器102與一個或多個工具103A-C進行通信的機制。將用戶101A-C共同或單獨稱為用戶10L將工具103A-C共同或單獨稱為工具103。請注意,系統(tǒng)100可以包括任意數(shù)目的用戶101和工具103,并且圖1是說明性的。另外請注意,用戶101和工具服務器102之間的連接以及工具服務器102和工具103之間的連接,可以為任意介質(zhì)類型,如,無線、有線。此外請注意,用戶101可以為任何設備類型的用戶,該設備能夠連接到工具服務器102,從而能夠與工具103進行通信,設備類型如,無線、個人數(shù)字助理(PDA)、蜂窩電話、個人計算機、工作站、因特網(wǎng)裝置。
可以配置工具服務器102,以便從工具103中抽取特定信息,如溫度。通過經(jīng)由工具服務器向工具發(fā)送請求消息,可以獲得信息,工具也可以經(jīng)由工具服務器返回信息,作為恢復消息。此外,工具也可以經(jīng)由工具服務器向用戶發(fā)送通知。例如,通知消息可以提醒用戶工具中預先選擇的條件出現(xiàn)??梢愿鶕?jù)特定通信協(xié)議格式化消息內(nèi)容。例如,在半導體制造工具中,通信協(xié)議可以為SEMI通信標準(SECS),特別是SECS-II(SECS是由國際半導體設備暨材料協(xié)會(SEMI)頒布的SEMI設備標準公布的)。(一般技術人員理解,本發(fā)明并不限于半導體制造行業(yè),本發(fā)明的原理適用于其他制造領域內(nèi)的工具自動系統(tǒng),如汽車工業(yè),并且此類實施方式同樣屬于本發(fā)明的實質(zhì)和范圍。)根據(jù)本發(fā)明的原理(以下說明),用戶101能夠控制工具103,并且能夠從工具103中抽取特定信息,其方法是,從各種各樣的應用程序中向工具服務器102發(fā)送消息,其中應用程序如,電子表格、瀏覽器或使用面向?qū)ο蟮膽瞄g通信協(xié)議的工具控制傳統(tǒng)應用程序,應用間通信協(xié)議如組件對象模型(COM)、JavaTM遠程方法調(diào)用(RMI)、公用對象請求代理體系結構(CORBA)、簡單對象訪問協(xié)議(SOAP)或諸如超文本傳輸協(xié)議(HTTP)之類的網(wǎng)絡傳輸協(xié)議。(請注意,正如一般技術人員理解的那樣,此類協(xié)議可以是分層的,例如,SOAP定義用于以XML文檔格式封裝消息的應用間消息傳遞協(xié)議,而根據(jù)HTTP傳送XML文檔。)消息可以為一個抽取特定信息的請求,如抽取溫度、狀態(tài)、壓力,或者為一個服務請求,如啟動/停止某一個或某幾個工具103的工具操作,工具103為半導體制造設備中使用的設備。例如,用戶101可以發(fā)出一個消息,請求特定燃燒室的溫度,其中特定燃燒室表示生產(chǎn)工藝,即半導體工藝中的工具103。圖5詳細說明用戶101經(jīng)由工具服務器102獲取工具103的信息。以下詳細說明工具服務器102。
現(xiàn)在參照圖2,該圖表示本發(fā)明之工具服務器102的一種實施方式。參照圖2,工具服務器102包括一個中央處理器(CPU)210,通過系統(tǒng)總線212連接CPU210和各種其他組件。操作系統(tǒng)240在CPU210上運行,控制并協(xié)調(diào)圖2所示的各種組件的功能。應用程序250,例如,圖5所示的用一個或多個工具103進行通信控制和數(shù)據(jù)管理的程序,圖7所示的為訪問工具服務器102的用戶101提供安全性的程序,與操作系統(tǒng)240一起運行,操作系統(tǒng)240實現(xiàn)由應用程序250執(zhí)行的各種功能。將只讀存儲器(ROM)216連接到系統(tǒng)總線212,ROM216包括一個基本輸入/輸出系統(tǒng)(BIOS),后者控制工具服務器102的某些基本功能。同時,將隨機訪問存儲器(RAM)214、磁盤適配器218和通信適配器234連接到系統(tǒng)總線212。請注意,將包括操作系統(tǒng)240和應用程序250的軟件組件加載到RAM214中,后者為計算機系統(tǒng)的主存儲器。磁盤適配器218可以為小型計算機系統(tǒng)接口(SCSI)適配器,該適配器與諸如磁盤驅(qū)動器之類的磁盤機220通信。請注意,可以將圖5所示的從一個或多個工具103中檢索信息的本發(fā)明的程序,存儲到磁盤機220中,然后在啟動或需要時,由操作系統(tǒng)從磁盤機中檢索該應用程序,并加載到RAM中。另外請注意,可以將圖7所示的為訪問工具服務器102的用戶101提供安全性的本發(fā)明的程序,存儲到磁盤機220中,然后在啟動或需要時,由操作系統(tǒng)從磁盤機中檢索該應用程序,并加載到RAM中。
通信適配器234互連總線212與外部網(wǎng)絡,外部網(wǎng)絡使得工具服務器102通過諸如以太網(wǎng)、令牌環(huán)、ARCnet之類的局域網(wǎng)(LAN)或諸如因特網(wǎng)之類的廣域網(wǎng)(WAN),與其他此類系統(tǒng)通信。
本發(fā)明的實現(xiàn)方式包括計算機系統(tǒng)和計算機程序產(chǎn)品,其中對計算機系統(tǒng)進行編程以執(zhí)行本文所述的方法。根據(jù)計算機系統(tǒng)實現(xiàn),將執(zhí)行該方法的指令集駐留在按上述方式配置的一個或多個計算機系統(tǒng)的隨機訪問存儲器214中。當工具服務器102需要時,也可以以計算機程序產(chǎn)品的形式將該指令集存儲到另一臺設備中,如,磁盤驅(qū)動器220(包括諸如光盤或軟盤之類的可更換存儲器,以供磁盤驅(qū)動器220最后使用)。另外,也可以在另一臺計算機中存儲該計算機程序產(chǎn)品,并且在需要時,通過網(wǎng)絡或諸如因特網(wǎng)之類的外部網(wǎng)絡傳送到用戶的工作站。熟練技術人員可以理解,物理存儲的指令集以物理方式改變存儲該指令集的介質(zhì),從而該介質(zhì)攜帶有計算機可讀的信息。以上改變可以是電氣、磁性、化學或某些其他物理改變。
圖3表示本發(fā)明的程序的軟件體系結構300的一種實施方式,按圖5所示方式配置本發(fā)明的程序,以便從一個或多個工具103中檢索信息。軟件體系結構300可以包括一個或多個應用程序接口單元301A-C,設備模型302,以及一個或多個工具接口單元303A-C。將應用程序接口單元301A-C共同或單獨稱為應用程序接口單元310。將工具接口單元303A-C共同或單獨稱為工具接口單元303。請注意,軟件體系結構300可以包括許多應用程序接口單元301和工具接口單元303,并且圖3是說明性的。
可以配置應用程序接口單元301,以連接應用模型302和用戶101。可以配置設備模型302,以提供工具103的邏輯表示,從而允許用戶101與工具103通信。亦即,設備模型302可以提供工具103與物理設備的邏輯映射,其中工具是由物理設備組成的。工具供應商可以將設備分解設備模型的對象,以便將物理設備映射為諸如設備模型302之類的設備模型的對象的特性。一種設備模型為SEMI頒布的面向?qū)ο蟮脑O備模型(OBEM),該設備模型作為SEMI臨時說明書SEMI E98-1000,這里引用作為參考。請注意,可以與本發(fā)明一起使用其他設備模型,并且一般技術人員了解此類實施方式屬于本發(fā)明的實質(zhì)和范圍。圖4說明用于實例化設備模型302的模型模式。以下結合圖5說明一種典型的設備模型。
圖4表示可與本發(fā)明一起使用的設備模型模式402的統(tǒng)一建模語言(UML)。設備對象模型模式402可以是一個面向?qū)ο蟮哪P停笳甙ㄔS多對象。根據(jù)面向?qū)ο蟮能浖w系結構,對象可由子對象組成,子對象可以繼承超對象的屬性和方法。設備模型模式402可包括一個集合層404,和一個接口繼承層406。集合層404中的對象可以為具體對象,而繼承層406中的對象可以為抽象對象,抽象對象定義具體對象的屬性和方法。(當使用JavaTM編程語言實現(xiàn)本發(fā)明時,繼承層406中的抽象對象可以為接口。)集合層404包括用戶對象408。設備對象410可以包含(利用開菱形表示)零個或多個設備模塊對象412(利用圓圈表示)。另外,設備對象410可以包含零個或多個設備子系統(tǒng)對象414,和設備I/O設備對象416。設備模塊對象412本身可以包含零個或多個設備模塊對象412,設備子系統(tǒng)對象414和設備I/O設備416。同樣,設備子系統(tǒng)對象414可以包含零個或多個設備子系統(tǒng)對象414和零個或多個設備I/O設備416。集合層406可以表示從上層至底層的對象類型的遞減復雜性。
現(xiàn)在參照圖5,該圖表示根據(jù)圖4所示模式的典型設備模型502的圖形用戶界面(GUI)500。模型502表示可與本發(fā)明一起使用的設備模型,并且一般技術人員可以理解,工具模型可以具有與本實施方式的生產(chǎn)設備相對應的不同數(shù)目和類型的對象。
在GUI500中,以分層方式表示模型502,模型502包括一個根節(jié)點。在典型模型502中,設備對象506是一個注入器(implanter)。GUI500的窗格508表示與設備對象504有關的一組屬性510以及對應值512。請注意,集合508中的一個屬性為objType(514),具有值“Equipment(設備)”(516)。另一個屬性為objID(518),具有值“Implanter(注入器)”(520)。通過選擇設備對象506(通過“突出顯示”模型502中的對象標識符“Implanter”),在GUI500中顯示說明屬性集510和屬性值152的窗格508。一般技術人員熟知選擇GUI中的對象的方法,如“鼠標單擊”。
在模型502中,設備模塊對象522是一個離子注入器,并且是設備對象506的一個子對象。通過按照連同設備對象506說明的方式,選擇設備模塊對象522,也可以顯示設備模塊對象的屬性列表以及與屬性相對應的有關值(在圖5中未示出)。
模型502中的其他對象包括子系統(tǒng)對象524和設備I/O對象526。子系統(tǒng)對象524(終端站)是離子注入器(設備模塊對象522)的一個子對象,I/O對象526(法拉第坩堝(Faraday cup))是子系統(tǒng)對象524的一個子對象。
根據(jù)面向?qū)ο蟮能浖?,諸如模型502之類的設備模型的對象是類的實例,類包括數(shù)據(jù)以及處理數(shù)據(jù)的方法。(上文中討論的屬性集為此類數(shù)據(jù)的例子。)因此,一個對象為包含數(shù)據(jù)以及處理該數(shù)據(jù)之代碼的數(shù)據(jù)結構。具體而言,設備模型的對象包括用于返回特定對象的子對象的方法,其中設備模型是生產(chǎn)設備的邏輯表示。換句話說,正如數(shù)據(jù)處理技術中的一般技術人員熟知的那樣,通過按照展開目錄和文件的層次的方式,展開模型502的層次,訪問設備模型的用戶可以瀏覽該模型。這樣,用戶的客戶應用程序獲得模型對象的指針。然后,用戶的客戶應用程序使用這些指針向該工具或其組件發(fā)送消息,以便通過調(diào)停與該工具或其組件之邏輯表示相對應的對象,向該工具請求數(shù)據(jù)或服務。以下與圖7一起說明上述消息傳遞。
圖6表示本發(fā)明之實施方式中使用的另一種典型GUI600的一部分。可以與用戶的客戶電子表格應用程序一起使用GUI600。單元格602A-C包括注入器對象(單元604)的屬性集。在單元格606A-C中顯示對應值。請注意,單元格602A所示的屬性ObjType的值為單元格606A中顯示的值“equipment(設備)”,屬性ObjID的值與設備對象506(圖5)的值“implanter”相對應。請注意,單元格602A-C中的屬性集以及單元格606A-C中的值反映圖5中的屬性集510中的屬性和值集合512。
另外,GUI600包括控制按鈕608。通過選擇控制按鈕608,如用戶利用“鼠標單擊”或進行其他類似操作,可以從電子表格應用程序中發(fā)起一個請求消息,例如,通過設備對象模型從工具中請求所選的屬性值,其中通過使用諸如COM之類的預定的面向?qū)ο蟮倪M程間通信協(xié)議,將該消息傳遞給設備模型。
現(xiàn)在參照圖7,該圖以流程圖的形式,表示通過設備模型在諸如圖1所示的工具103之類的工具之間傳遞消息的方法。
再次參照圖3,可以配置應用程序接口單元301,以在某個用戶101和工具103之間傳遞消息??梢耘渲酶鲬贸绦蚪涌趩卧?01,以便通過用戶應用程序從用戶101接收消息,或傳統(tǒng)的本機消息,如SECS消息,其中用戶應用程序按照一種或多種面向?qū)ο蟮膽瞄g協(xié)議,如COM、RMI、CORBA、SOAP、HTTP進行通信。另外,可以配置各應用程序接口單元301,以便以特定方式,如WAN、LAN或工廠系統(tǒng),從用戶101中接收消息。例如,可以配置應用程序接口單元301A,以便在LAN上以諸如COM、RMI、CORBA、SOAP和XML之類的協(xié)議從用戶101A接收消息??梢耘渲脩贸绦蚪涌趩卧?01B,以便在工廠系統(tǒng)網(wǎng)絡或其他通信鏈路上,以諸如SECS之類的協(xié)議,經(jīng)由諸如MES之類的傳統(tǒng)應用程序,從用戶101B接收消息??梢耘渲脩贸绦蚪涌趩卧?01C,以便通過WAN或因特網(wǎng),以諸如HTTP請求之類的協(xié)議,從用戶101C傳遞消息,或者接收按照HTML或XML文檔之類的文檔封裝的消息。在題目為“基于Web的工具管理裝置和方法”,申請序號為09/496,009的共同未決共同擁有的美國專利,詳細說明了可以在此類應用程序接口單元中使用的方法和裝置,這里全文引用作為參考。
圖7是一個流程圖,表示本發(fā)明之方法700的一種實施方式,方法700用于經(jīng)由設備模型302(如OBEMTM),檢索一個或多個工具103的信息,如溫度、壓力,和/或向一個或多個工具103發(fā)出服務請求,如控制消息。如上所述,工具服務器102中的軟件可以包含構成設備模型(如,OBEM)的軟件體系結構,設備模型實現(xiàn)諸如圖1所示工具103之類的工具的邏輯表示。
在步驟702中,用戶101(如某個用戶101之一101C)可以向特定應用程序接口單元(如應用程序接口單元301A)發(fā)出一個消息,從特定工具103請求消息,如溫度、壓力、狀態(tài),和/或向特定工具103發(fā)出一個服務請求,如控制消息??梢岳枚嗳蝿栈蚨嗵幚憝h(huán)境中的線程,將該消息與特定用戶101聯(lián)系起來。
在步驟704中,由對應的應用程序接口單元301接收該消息。如上所述,用戶101通過使用應用程序訪問特定應用程序接口單元301,其中應用程序以各種方式,如WAN、LAN,根據(jù)面向?qū)ο蟮膽瞄g通信協(xié)議或(等效的對象到對象協(xié)議),如COM、RMI、CORBA、SOAP和HTTP等,傳遞消息。例如,可以配置應用程序接口單元301A,以便通過LAN根據(jù)諸如COM、RMI、CORBA、SOAP和HTTP之類的協(xié)議,從用戶101A接收消息??梢耘渲脩贸绦蚪涌趩卧?01B,以便通過工廠系統(tǒng)網(wǎng)絡根據(jù)諸如SECS之類的本機協(xié)議,從用戶101B接收消息??梢耘渲脩贸绦蚪涌趩卧?01C,以便通過WAN或因特網(wǎng)根據(jù)諸如HTTP之類的協(xié)議,從用戶101C接收消息。
如上所述,為了方便跨越不同數(shù)據(jù)處理平臺的工具和用戶之間的通信,可以通過面向進程間的通信或數(shù)據(jù)交換協(xié)議,交換消息,其中數(shù)據(jù)處理平臺在工具和用戶之間使用各種各樣的應用消息,利用設備模型調(diào)停上述應用消息。例如,協(xié)議包括CORBA、RMI、COM和SOAP。另外,應用程序可以使用諸如SECS之類的本機通信協(xié)議,或HTTP請求或XML/HTML頁面中的消息。
在步驟706中,在步驟704中接收消息的應用程序接口單元301抽取接收到的消息的內(nèi)容,例如,所請求的操作需要的數(shù)據(jù)。如上所述,所接收的消息的內(nèi)容可以為一個或多個工具103的特定信息的請求,如溫度、壓力、狀態(tài);或者為設置特定參數(shù)的請求,如控制調(diào)整點;抑或為請求通知,如請求改變某個參數(shù)的值。該消息包含設備模型中該對象的指針以及所影響的特定變量或參數(shù),其中設備模型表示要在其上執(zhí)行操作的工具103或其組件。
如果該請求既不是一個獲取數(shù)據(jù)或設置數(shù)據(jù)的請求,也不是一個通知請求,則下面討論的步驟710、741和763進入“否”分支,方法700通過適當?shù)墓ぞ呓涌谠诓襟E708中處理該請求,如,諸如啟動或停止該工具之類的服務請求。
否則,如果該請求為獲取數(shù)據(jù)請求、設置數(shù)據(jù)請求或通知請求,則所執(zhí)行的操作依賴于工具103或其組件的特性。
如下所述,工具103可以稱為在步驟706中請求的數(shù)據(jù)的同步源,可變同步源,和/或異步源。同步源表示向請求特定信息(如溫度、壓力、狀態(tài))的用戶101提供值的工具。可變同步源表示可由用戶101設置的工具103設置。設置表示用戶101將特定工具103關聯(lián)的特定變量或參數(shù)設置為特定值。異步源表示事件發(fā)生時(如,值改變時)通知用戶101的特定工具103。可以配置工具接口單元303,以便連續(xù)監(jiān)視有關工具103事件發(fā)生的時間。當事件發(fā)生時,工具接口單元303通知設備模型302事件發(fā)生。接著,配置設備模型302,以便根據(jù)指向用戶101的指針,調(diào)用相應方法通知感興趣的用戶101。
在步驟712中,該方法確定在步驟708中確定的對象之參數(shù)是否具有異步源,其中異步源提供的值為當前值。如果該對象之參數(shù)具有異步源,其中該異步源提供的值為當前值,則從本地對象中檢索當前值,步驟713,然后將該值傳送到適當?shù)膽贸绦蚪涌?,步驟728。在步驟730中,可以配置適當?shù)膽贸绦蚪涌趩卧?01,以便根據(jù)適當協(xié)議,將收到的數(shù)據(jù)值并入到用戶101的返回消息中。在步驟732中,根據(jù)用戶的客戶應用程序以前提供的地址,將該消息傳送到適當用戶101。
參照步驟710,如果特定工具103并不提供具有最新有效數(shù)據(jù)的異步源,則在步驟734中判定特定工具103是否提供同步源。如果特定工具103提供同步源,則在步驟736中,適當?shù)墓ぞ呓涌趩卧?03可以從特定工具103中檢索數(shù)據(jù)值??梢詥舆m當?shù)墓ぞ呓涌趩卧?03,以便根據(jù)設備模型302的本機通信協(xié)議(如SECS),利用設備模型302的方法檢索數(shù)據(jù)值。接著,適當?shù)墓ぞ呓涌趩卧?03在步驟728中將該數(shù)據(jù)值傳送到設備模型302。在步驟728中,按照上文中的方式將該值傳遞給用戶。
如果特定工具103不是同步源,則確定特定工具103是否提供異步源,但該異步源沒有最新的有效數(shù)據(jù),步驟737。假如這樣的話,則請求失敗,步驟739,并且按上述方式,在步驟728-739中向用戶返回失敗響應。
否則,步驟737經(jīng)由“否”分支進入到步驟740,以便從本機對象中檢索數(shù)據(jù)值??梢园瓷鲜龇绞剑诓襟E728-732中向用戶傳遞該值。
回到步驟710,如果該請求不是一個數(shù)據(jù)數(shù)據(jù),則在步驟741中,確定該請求是否是一個修改數(shù)據(jù)元素的請求。假如這樣的話,所執(zhí)行的操作取決于工具103的特性。在步驟751中,按上述方式確定該工具是否提供支持受影響的參數(shù)的可變同步源。假如這樣的話,步驟753通過適當?shù)墓ぞ呓涌谠O置該參數(shù)。在完成此操作后,正如隨后連同步驟765一起說明的那樣,當設置受影響的參數(shù)時,步驟755通知請求通知的所有用戶。然后按照上述方式,在步驟728-732中向用戶返回該請求。
回到步驟751,如果確定該工具不提供正在討論的屬性的可變同步源,則在步驟757中確定該工具是否提供該屬性的同步或異步支持。假如這樣的話,請求失敗,步驟759,并按照上述方式,在步驟728-732中向用戶返回此狀態(tài)。
回到步驟757,如果確定該工具不提供正在通論的屬性的同步或異步支持,則步驟761將本地對象的屬性設置為請求的值,步驟755,通知用戶屬性改變,然后按照上述方式,執(zhí)行后繼步驟。
回到步驟741,如果確定該請求不是一個獲取數(shù)據(jù)值的請求,則步驟763確定該請求是否是一個諸如屬性改變之類的事件發(fā)生時的通知請求。假如這樣的話,則步驟765存儲提出請求的用戶的引用,以及與該引用有關的對象和參數(shù)。然后按照上述方式,在步驟728-732中向用戶返回該請求的應答。
圖8是一個流程圖,表示根據(jù)本發(fā)明之實施方式的工具訪問控制方法800。亦即,方法800用于控制用戶或用戶類對特定工具采取的操作。
在步驟802中,從用戶(如圖1所示的用戶101A-C之一)接收請求消息。該消息可以請求有關工具或工具組件的數(shù)據(jù),或請求工具的服務,其中該消息按上述方式訪問工具或組件。
正如圖9中用戶對象950所示的那樣,在步驟803中,方法800可以創(chuàng)建有關特定用戶101(如用戶101A)的對象。對象950可以包含有關用戶(如用戶101A)的標識符。
圖9表示根據(jù)本發(fā)明之原理的安全封裝器體系結構900。軟件體系結構900可以在封裝層901中包括一個或多個安全封裝對象911A-E,安全封裝對象分別與根對象912A、設備對象912B、模塊對象912C、子系統(tǒng)對象912D和I/O對象912E有關,后者按上述方式邏輯表示工具單元。安全封裝對象911A-E可以共同或單獨表示安全封裝對象911。以下詳細說明安全封裝對象911。請注意,軟件體系結構900可以包括許多安全封裝器911,并且眾多安全封裝器911可以與設備模型302的特定層次結構上的多個對象有關。例如,軟件體系結構900可以包括許多與設備對象912B有關的安全封裝器911。以下連同圖9一起說明圖8。
回到圖8,在步驟804中,訪問包含訪問控制信息的配置文件。特別地,配置文件可以包括有關用戶組或各用戶的訪問控制信息,其中用戶組包括與用戶對象950(圖9)相對應的用戶。另外,也可以將工具本身或其組件視為一個用戶,并且用戶對象950相當于此類工具或組件。響應與用戶對象950有關的用戶相對應的訪問信息,生成封裝層901(圖9)。
在步驟806-816中,利用方法800生成諸如封裝層901(圖9)之類的安全封裝層。在步驟806-816中,可以遞歸生成安全封裝層901。所創(chuàng)建的與設備模型對象相對應的安全封裝對象,取決于所訪問的設備對象的設備模型層次結構的深度。換句話說,根據(jù)用戶的請求消息,按需創(chuàng)建安全封裝器。在步驟806中,創(chuàng)建一個封裝對象,如安全封裝對象911A-E之一。在步驟808中,在步驟806創(chuàng)建的安全封裝對象中,存儲相應設備模型對象(如對象912A-912E之一)的指針。另外,在步驟810中,在安全封裝對象中,存儲工具對象模型訪問的相應特定用戶和工具或工具組件。在步驟812中,確定當前的設備模型對象是否對應于發(fā)出過量請求的對象。不然的話,在步驟814中,過程800轉(zhuǎn)到當前設備模型對象的子對象,然后返回到步驟806,以創(chuàng)建子對象的安全封裝對象。換句話說,步驟806-814展開設備模型層次結構,直至在步驟816中達到發(fā)出訪問請求的對象。在步驟816中,向用戶(亦即發(fā)出訪問請求的用戶的客戶應用程序)返回對應封裝對象的指針。在步驟818中,根據(jù)在步驟810中在該對象中存儲的訪問規(guī)則,確定該用戶能否訪問該數(shù)據(jù)或請求與所接收的消息相對應的服務。假如這樣的話,則在步驟820中,安全封裝對象調(diào)用對應設備模型對象中的方法,以執(zhí)行所請求的操作。否則,拒絕訪問,步驟822。
回到步驟805,如果正在訪問的設備模型對象的安全封裝器存在,則在步驟807中,返回封裝對象的指針,并且在步驟818中,向該方法傳送安全封裝對象的指針,以便執(zhí)行所請求設備對象的特定操作。在步驟820中,根據(jù)相應的安全封裝對象中存儲的訪問控制信息,確定是否允許訪問。如果允許特定操作的訪問,則調(diào)用該設備模型對象的相對應方法,步驟822,否則,拒絕訪問,步驟824。
這樣,諸如圖9所示的安全封裝對象911A-911E之類的安全封裝對象,作為“過濾器”控制對工具或其組件的訪問。請注意,可以根據(jù)配置列表中的控制信息,構造諸如圖9所示的封裝層901之類的附加安全封裝層,以提供附加“過濾處理”。一般技術人員可以理解,按照上述方式構造的第二安全封裝層可以包括與圖9所示的對象911A-911E類似的安全封裝對象,其中存儲第一層中對應安全封裝對象的指針。這樣,逐次過濾特定設備模型對象的訪問請求,正如連同步驟820說明的那樣,該訪問請求向該方法傳送第二層中安全封裝對象的指針,接著,正如連同步驟820說明的那樣,在允許訪問后,該方法傳送第一安全封裝層中的對應安全封裝對象中包含的指針,然后,由該方法傳送的指針指向的第一層中對應安全封裝對象,根據(jù)其中包含的訪問控制信息,確定安全性許可,當允許訪問時,向調(diào)用的該工具的設備對象方法傳送其指針。
盡管連同不同實施方式說明了本發(fā)明的方法、計算機程序產(chǎn)品和系統(tǒng),但是本發(fā)明并不限于本文闡述的特定形式,相反,本發(fā)明意在覆蓋附屬權利要求書定義的本發(fā)明之實質(zhì)和范圍內(nèi)的所有選擇、更改和等價物。請注意,標題僅用于組織目的,而并不限制說明書或權利要求書的范圍。
權利要求
1.一種自動工具管理過程,包括以下步驟用戶發(fā)出所選協(xié)議的消息,其中所述消息包括在所述工具上執(zhí)行所選操作的請求,所述消息包括一個或多個數(shù)據(jù)以及指向所述工具之設備模型中某個對象的指針,所述設備模型包括所述工具的一個邏輯表示;通過面向?qū)ο蟮倪M程間通信,接收所述消息;響應所選指針和所述所選操作,調(diào)用所述對象的方法,其中如果所述消息包含數(shù)據(jù),則向所述方法傳送所述數(shù)據(jù);以及向所述用戶傳送一個值,其中所述值與所述請求操作和所述數(shù)據(jù)有關。
2.權利要求1的方法還包括以下步驟抽取所述接收消息的一個或多個所述數(shù)據(jù)和所述指針。
3.權利要求1的方法,其中如果所述工具是一個異步源并且如果與所述請求操作關聯(lián)的所述值是最新值,則該方法還包括以下步驟利用所述設備模型向應用程序接口單元傳送所述值,其中所述應用程序接口單元連接所述用戶和所述設備模型;將所述值并入所述用戶的返回消息中;以及根據(jù)所述用戶提供的地址,通過面向?qū)ο蟮倪M程間通信,向所述用戶傳送所述返回消息。
4.權利要求1的方法,其中如果所述工具是一個同步源,則該方法還包括以下步驟利用工具接口單元從所述工具中檢索所述值,其中所述工具接口單元連接所述工具與所述設備模型;以及向所述設備模型傳送所述值。
5.權利要求4的方法還包括以下步驟將所述值并入所述用戶的返回消息中;以及根據(jù)所述用戶提供的地址,向所述用戶傳送所述返回消息。
6.權利要求1的方法,其中如果所述工具既不是異步源也不是同步源,或者如果所述工具是一個異步源,但并不提供有關所述請求操作的最新值,則該方法還包括以下步驟從所述設備模型的數(shù)據(jù)庫中檢索所述值。
7.權利要求6的方法還包括以下步驟將所述值并入所述用戶的返回消息中;以及根據(jù)所述用戶提供的地址,向所述用戶傳送所述返回消息。
8.權利要求1的方法,其中所述進程間通信包括從以下協(xié)議中選擇的協(xié)議組件對象模型(COM)、遠程方法調(diào)用(RMI)、CORBA、簡單對象訪問協(xié)議(SOAP)、SECS、GEM、超文本標注語言(HTML)、擴展標注語言(XML)。
9.權利要求1的方法,其中調(diào)用所述對象的所述方法,以遠程訪問所述工具,并以電子方式診斷所述工具。
10.權利要求1的方法,其中所述消息中的所述數(shù)據(jù)是通知數(shù)據(jù)。
11.一種用于自動工具管理的計算機程序產(chǎn)品,該產(chǎn)品具有其上記錄有計算機程序邏輯的計算機可讀介質(zhì),包括供用戶發(fā)出所選協(xié)議之消息的程序,其中所述消息包括在所述工具上執(zhí)行所選操作的請求,所述消息包括一個或多個數(shù)據(jù)以及指向所述工具之設備模型中某個對象的指針,所述設備模型包括所述工具的一個邏輯表示;通過面向?qū)ο蟮倪M程間通信,接收所述消息的程序;響應所選指針和所述所選操作,調(diào)用所述對象的方法的程序,其中如果所述消息包含數(shù)據(jù),則向所述方法傳送所述數(shù)據(jù);以及向所述用戶傳送一個值的程序,其中所述值與所述請求操作和所述數(shù)據(jù)有關。
12.權利要求11的計算機程序產(chǎn)品還包括抽取所述接收消息的一個或多個所述數(shù)據(jù)和所述指針的程序。
13.權利要求11的計算機程序產(chǎn)品,其中如果所述工具是一個異步源并且如果與所述請求操作關聯(lián)的所述值是最新值,則該計算機程序產(chǎn)品還包括利用所述設備模型向應用程序接口單元傳送所述值的程序,其中所述應用程序接口單元連接所述用戶和所述設備模型;將所述值并入所述用戶的返回消息中的程序;以及根據(jù)所述用戶提供的地址,通過所述面向?qū)ο蟮倪M程間通信,向所述用戶傳送所述返回消息的程序。
14.權利要求11的計算機程序產(chǎn)品,其中如果所述工具是一個同步源,則該計算機程序產(chǎn)品還包括利用工具接口單元從所述工具中檢索所述值的程序,其中所述工具接口單元連接所述工具與所述設備模型;以及向所述設備模型傳送所述值的程序。
15.權利要求14的計算機程序產(chǎn)品還包括將所述值并入所述用戶的返回消息中的程序;以及根據(jù)所述用戶提供的地址,向所述用戶傳送所述返回消息的程序。
16.權利要求11的計算機程序產(chǎn)品,其中如果所述工具既不是異步源也不是同步源,或者如果所述工具是一個異步源,但并不提供有關所述請求操作的最新值,則該計算機程序產(chǎn)品還包括從所述設備模型的數(shù)據(jù)庫中檢索所述值的程序。
17.權利要求16的計算機程序產(chǎn)品還包括將所述值并入所述用戶的返回消息中的程序;以及根據(jù)所述用戶提供的地址,向所述用戶傳送所述返回消息的程序。
18.權利要求11的計算機程序產(chǎn)品,其中所述進程間通信包括從以下協(xié)議中選擇的協(xié)議組件對象模型(COM)、遠程計算機程序產(chǎn)品調(diào)用(RMI)、CORBA、簡單對象訪問協(xié)議(SOAP)、SECS、GEM、超文本標注語言(HTML)、擴展標注語言(XML)。
19.權利要求11的計算機程序產(chǎn)品,其中調(diào)用所述對象的所述方法,以遠程訪問所述工具,并以電子方式診斷所述工具。
20.權利要求11的計算機程序產(chǎn)品,其中所述消息中的所述數(shù)據(jù)是通知數(shù)據(jù)。
21.一個系統(tǒng),包括一個處理器;一個存儲計算機程序的存儲部件,該部件存儲用于自動工具管理的計算機程序;以及一條將處理器連接到存儲器的總線系統(tǒng),其中計算機程序能夠執(zhí)行以下程序步驟用戶發(fā)出所選協(xié)議的消息,其中所述消息包括在所述工具上執(zhí)行所選操作的請求,所述消息包括一個或多個數(shù)據(jù)以及指向所述工具之設備模型中某個對象的指針,所述設備模型包括所述工具的一個邏輯表示;通過面向?qū)ο蟮倪M程間通信,接收所述消息;響應所選指針和所述所選操作,調(diào)用所述對象的方法,其中如果所述消息包含數(shù)據(jù),則向所述方法傳送所述數(shù)據(jù);以及向所述用戶傳送一個值的程序,其中所述值與所述請求操作和所述數(shù)據(jù)有關。
22.權利要求21的系統(tǒng),其中計算機程序還能夠執(zhí)行以下程序步驟抽取所述接收消息的一個或多個所述數(shù)據(jù)和所述指針。
23.權利要求21的計系統(tǒng),其中如果所述工具是一個異步源并且如果與所述請求操作關聯(lián)的所述值是最新值,則該計算機程序還能夠執(zhí)行以下程序步驟利用所述設備模型向應用程序接口單元傳送所述值,其中所述應用程序接口單元連接所述用戶和所述設備模型;將所述值并入所述用戶的返回消息中;以及根據(jù)所述用戶提供的地址,通過所述面向?qū)ο蟮倪M程間通信,向所述用戶傳送所述返回消息。
24.權利要求21的系統(tǒng),其中如果所述工具是一個同步源,則該計算機程序還能夠執(zhí)行以下程序步驟利用工具接口單元從所述工具中檢索所述值,其中所述工具接口單元連接所述工具與所述設備模型;以及向所述設備模型傳送所述值。
25.權利要求24的系統(tǒng),其中計算機程序還能夠執(zhí)行以下程序步驟將所述值并入所述用戶的返回消息中;以及根據(jù)所述用戶提供的地址,向所述用戶傳送所述返回消息。
26.權利要求21的系統(tǒng),其中如果所述工具既不是異步源也不是同步源,或者如果所述工具是一個異步源,但并不提供有關所述請求操作的最新值,則該計算機程序還能夠執(zhí)行以下程序步驟從所述設備模型的數(shù)據(jù)庫中檢索所述值。
27.權利要求26的系統(tǒng),其中計算機程序還能夠執(zhí)行以下程序步驟將所述值并入所述用戶的返回消息中;以及根據(jù)所述用戶提供的地址,向所述用戶傳送所述返回消息。
28.權利要求21的系統(tǒng),其中所述進程間通信包括從以下協(xié)議中選擇的協(xié)議組件對象模型(COM)、遠程計算機程序產(chǎn)品調(diào)用(RMI)、CORBA、簡單對象訪問協(xié)議(SOAP)、SECS、GEM、超文本標注語言(HTML)、擴展標注語言(XML)。
29.權利要求21的系統(tǒng),其中調(diào)用所述對象的所述方法,以遠程訪問所述工具,并以電子方式診斷所述工具。
30.權利要求21的系統(tǒng),其中所述消息中的所述數(shù)據(jù)是通知數(shù)據(jù)。
31.一種工具訪問控制方法,包括以下步驟通過面向?qū)ο蟮倪M程間通信,接收用戶發(fā)送的消息,其中所述消息包括在某個工具上執(zhí)行所選操作的請求,所述消息包括指向所述工具之設備模型中的某個對象的指針;生成安全封裝層,其中所述安全封裝層提供所述設備模型的保護層;以及在所述安全封裝層中創(chuàng)建一個安全封裝對象,其中在所述安全封裝對象中存儲對應設備模型對象的指針。
32.權利要求31的方法,其中如果所述對應設備模型對象是與所述請求相對應的所述對象,則向所述用戶傳送所述對應安全封裝對象的指針。
33.權利要求32的方法還包括以下步驟根據(jù)所述對應安全封裝對象中存儲的訪問規(guī)則,確定能否在所述工具上執(zhí)行所述所選操作。
34.權利要求33的方法,其中如果能夠在所述工具上執(zhí)行所述所選操作,則該方法還包括以下步驟利用所述對應安全封裝對象調(diào)用一個方法,以執(zhí)行所述所選操作。
35.一種用于工具訪問控制的計算機程序產(chǎn)品,該產(chǎn)品具有其上記錄有計算機程序邏輯的計算機可讀介質(zhì),包括通過面向?qū)ο蟮倪M程間通信,接收用戶發(fā)送之消息的程序,其中所述消息包括在某個工具上執(zhí)行所選操作的請求,所述消息包括指向所述工具之設備模型中的某個對象的指針;生成安全封裝層的程序,其中所述安全封裝層提供所述設備模型的保護層;以及在所述安全封裝層中創(chuàng)建一個安全封裝對象的程序,其中在所述安全封裝對象中存儲對應設備模型對象的指針。
36.權利要求35的計算機程序產(chǎn)品,其中如果所述對應設備模型對象是與所述請求相對應的所述對象,則向所述用戶傳送所述對應安全封裝對象的指針。
37.權利要求36的計算機程序產(chǎn)品還包括根據(jù)所述對應安全封裝對象中存儲的訪問規(guī)則,確定能否在所述工具上執(zhí)行所述所選操作的程序。
38.權利要求37的計算機程序產(chǎn)品,其中如果能夠在所述工具上執(zhí)行所述所選操作,則該計算機產(chǎn)品還包括利用所述對應安全封裝對象調(diào)用一個方法的程序,以便執(zhí)行所述請求操作。
39.一個系統(tǒng),包括一個處理器;一個存儲計算機程序的存儲部件,該部件存儲用于工具訪問控制的計算機程序;以及一條將處理器連接到存儲器的總線系統(tǒng),其中計算機程序能夠執(zhí)行以下程序步驟通過面向?qū)ο蟮倪M程間通信,接收用戶發(fā)送的消息,其中所述消息包括在某個工具上執(zhí)行所選操作的請求,所述消息包括指向所述工具之設備模型中的某個對象的指針;生成安全封裝層,其中所述安全封裝層提供所述設備模型的保護層;以及在所述安全封裝層中創(chuàng)建一個安全封裝對象,其中在所述安全封裝對象中存儲對應設備模型對象的指針。
40.權利要求39的系統(tǒng),其中如果所述對應設備模型對象是與所述請求相對應的所述對象,則向所述用戶傳送所述對應安全封裝對象的指針。
41.權利要求40的系統(tǒng),其中該計算機程序還能夠執(zhí)行以下程序步驟根據(jù)所述對應安全封裝對象中存儲的訪問規(guī)則,確定能否在所述工具上執(zhí)行所述所選操作。
42.權利要求41的系統(tǒng),其中如果能夠在所述工具上執(zhí)行所述所選操作,則該計算機程序還能夠執(zhí)行以下程序步驟利用所述對應安全封裝對象調(diào)用一個方法,以便執(zhí)行所述所選操作。
全文摘要
用戶向?qū)膽贸绦蚪涌趩卧l(fā)出與面向?qū)ο蟮膽瞄g通信協(xié)議一致的消息。該消息可以為在所選工具上執(zhí)行特定操作的請求。對應的應用程序接口單元抽取消息的內(nèi)容,該消息包含所請求的操作需要的數(shù)據(jù)以及表示該工具的對象的指針。設備模型獲得一個值,其中該值與有關某個工具的消息中請求的特定信息有關,或者是一個通知用戶事件發(fā)生的通告。設備模型向適當用戶傳送該值。
文檔編號G05B19/418GK1386220SQ01802303
公開日2002年12月18日 申請日期2001年7月6日 優(yōu)先權日2000年7月7日
發(fā)明者雷蒙德·W·艾麗斯, 馬克·T·彭德里頓, 查爾斯·M·貝利斯 申請人:多曼羅吉克斯公司