專利名稱:計算機系統(tǒng)、數(shù)據(jù)處理方法、以及數(shù)據(jù)處理程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機系統(tǒng),特別是涉及容錯系統(tǒng)(fault-tolerant system)的技術(shù)。
背景技術(shù):
設(shè)計成即使系統(tǒng)的一部分產(chǎn)生問題也不會使整體停止發(fā)揮功能而繼續(xù)動作的計算機系統(tǒng)稱為容錯系統(tǒng)(以下稱為“FT系統(tǒng)”)(專利文獻I)。FT系統(tǒng)一般由多個計算機構(gòu)成,通過使各計算機執(zhí)行同一動作來提高耐障礙性。作為實現(xiàn)FT系統(tǒng)的技術(shù)具有“時鐘同步方式”。在“時鐘同步方式”中,針對每個動作步驟在各計算機之間交換信息。由此,能夠在各計算機之間使動作步驟同步。此外,作為實現(xiàn)FT系統(tǒng)的另一技術(shù)具有“虛擬計算機同步方式”。在“虛擬計算機同步方式”中,在一方虛擬計算機上執(zhí)行操作系統(tǒng)(operating system)(以下稱為“OS”)。從該OS向其他虛擬計算機轉(zhuǎn)發(fā)對一方虛擬計算機上的虛擬設(shè)備等的訪問信息。由此,使各虛擬計算機全部以同一方式動作(專利文獻2)。實現(xiàn)FT系統(tǒng)的又一技術(shù)還具有“任務(wù)(task)同步方式”。在“任務(wù)同步方式”中,將應(yīng)用軟件(以下稱為“應(yīng)用”)分割為稱為任務(wù)(例如,進程(process)或線程(thread))的單位。并且,在各計算機同步地執(zhí)行同一任務(wù)(專利文獻3)。另外,還公知了如下內(nèi)容:當(dāng)各計算機的輸出不一致時,遵照多數(shù)決定選擇輸出并輸出到外部(專利文獻I)?,F(xiàn)有技術(shù)文獻專利文獻專利文獻1:日本特開平8-314744號公報專利文獻2:US2010/0107158專利文獻3:日本特開2009-217503號公報
發(fā)明內(nèi)容
發(fā)明要解決的課題“時鐘同步方式”需要使各處理器(processor)的動作步驟同步。因此,需要通過專用硬件來觀測并控制各處理器的動作步驟。但是,近年處理器被高集成化,周邊芯片的功能也被統(tǒng)一到處理器中。觀測并控制這樣復(fù)雜的結(jié)構(gòu)的處理器的動作步驟很困難?!皶r鐘同步方式”中,因為每當(dāng)處理器執(zhí)行動作步驟時需要進行同步處理時,所以在動作時鐘高的處理器中同步處理的開銷(overhead)大?!疤摂M計算機同步方式”在虛擬計算機具有多個虛擬處理器時會產(chǎn)生問題。例如,不得不使一方虛擬計算機中的各虛擬處理器間的動作步驟的關(guān)系、和另一方虛擬計算機中的其他各虛擬處理器間的動作步驟的關(guān)系完全一致。但是,使其完全一致是困難的?!叭蝿?wù)同步方式”中,在計算機具有多個處理器時也會產(chǎn)生問題。例如,在各計算機中,假定在第I處理器來執(zhí)行任務(wù)A,在第2處理器來執(zhí)行任務(wù)B。并且,假定一方計算機的任務(wù)A的執(zhí)行時刻比另一方計算機的任務(wù)A的執(zhí)行時刻早。這時,在一方計算機中任務(wù)A將數(shù)據(jù)寫入存儲器后任務(wù)B從存儲器讀出數(shù)據(jù)。另一方面,在另一方計算機中,在任務(wù)A將數(shù)據(jù)寫入存儲器前任務(wù)B就從存儲器讀出數(shù)據(jù)。因此,在一方計算機和另一方計算機中,任務(wù)B的執(zhí)行結(jié)果不同,由此在計算機間輸出可能不同。所以,本發(fā)明的目的是提供一種計算機系統(tǒng),能夠在多個計算機同步執(zhí)行多個任務(wù)。用于解決課題的手段遵照本發(fā)明的一實施方式的計算機系統(tǒng)是多個計算機節(jié)點經(jīng)通信網(wǎng)絡(luò)而連接的計算機系統(tǒng),其特征在于,多個計算機節(jié)點中的I臺計算機節(jié)點是主導(dǎo)計算機節(jié)點,多個計算機節(jié)點中的除上述主導(dǎo)計算機節(jié)點以外的其他計算機節(jié)點是跟隨計算機節(jié)點,主導(dǎo)計算機節(jié)點和上述跟隨計算機節(jié)點分別執(zhí)行同一任務(wù),主導(dǎo)計算機節(jié)點和跟隨計算機節(jié)點分別具有:通信接口部,其經(jīng)通信網(wǎng)絡(luò)而與其他計算機節(jié)點進行通信;存儲部,其用于存儲數(shù)據(jù);訪問執(zhí)行部,其根據(jù)上述任務(wù)執(zhí)行對上述存儲部的訪問請求;以及輸出判定部,其在所述訪問請求為對終端的輸出的情況下,判定輸出數(shù)據(jù)是否正確,主導(dǎo)計算機節(jié)點在本節(jié)點的外部訪問執(zhí)行部中,根據(jù)由第I任務(wù)請求的第I訪問請求來生成第I輸出數(shù)據(jù),主導(dǎo)計算機節(jié)點在本節(jié)點的輸出判定部中,向跟隨計算機節(jié)點詢問第I輸出數(shù)據(jù)是否正確,當(dāng)從預(yù)定數(shù)量的上述跟隨計算機節(jié)點得到了正確的意思的答復(fù)時,判斷為第I輸出數(shù)據(jù)正確,跟隨計算機節(jié)點在本節(jié)點的外部訪問執(zhí)行部中,根據(jù)由與第I任務(wù)進行同樣的處理的第2任務(wù)請求的第2訪問請求來生成第2輸出數(shù)據(jù),跟隨計算機節(jié)點在本節(jié)點的輸出判定部中,接受來自主導(dǎo)計算機節(jié)點的詢問,判定第I輸出數(shù)據(jù)和第2輸出數(shù)據(jù)是否是同樣的數(shù)據(jù),在判定結(jié)果為肯定時,向主導(dǎo)計算機節(jié)點發(fā)送第I輸出數(shù)據(jù)正確的意思的答復(fù)。由此,能夠?qū)崿F(xiàn)這樣的計算機系統(tǒng):在多個計算機節(jié)點能夠同步地執(zhí)行多個任務(wù)。
圖1是表示第I實施方式的FT系統(tǒng)的結(jié)構(gòu)的一個示例圖。圖2是表示任務(wù)請求信息的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖3是表示訪問信息的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖4是表示訪問信息管理表的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖5是表示輸入信息的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖6是表示輸出管理表的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖7是表示輸出信息的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖8是表示輸出正確與否信息的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖9是執(zhí)行任務(wù)時的流程圖的一個例子。圖10是表示各計算機節(jié)點(node)的任務(wù)經(jīng)訪問執(zhí)行部訪問數(shù)據(jù)存儲部時的時序的圖的一個示例。圖11是表示作為主導(dǎo)(leader)的計算機節(jié)點從外部終端接收數(shù)據(jù)時的時序的圖的一個示例。圖12是表示作為主導(dǎo)的計算機節(jié)點向外部終端發(fā)送數(shù)據(jù)時的時序的圖的一個示例。
圖13是表示訪問執(zhí)行部的處理的一個示例的流程圖。圖14是表示外部訪問執(zhí)行部從外部終端接收數(shù)據(jù)的處理流程的一個示例的圖。圖15是表示外部訪問執(zhí)行部向外部終端發(fā)送數(shù)據(jù)的處理流程的一個示例的圖。圖16是表示追隨可否信息的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖17是表不第2實施方式的訪問信息管理表的一個不例的圖。圖18是表示第2實施方式的跟隨(follower)的訪問執(zhí)行部的處理流程的一個示例的圖。圖19是表示將有可能障礙的計算機節(jié)點從FT系統(tǒng)分離的處理流程的圖。圖20是表示第3實施方式的外部訪問執(zhí)行部的處理流程的一個示例的圖。圖21是表示第4實施方式的主導(dǎo)的輸出數(shù)據(jù)的正確與否判定的處理流程的一個示例的圖。
具體實施例方式(第I實施方式)在本實施方式中,如下所述,成為主導(dǎo)的計算機和成為跟隨的計算機分別執(zhí)行同一任務(wù)。主導(dǎo)的計算機針對自身的任務(wù)輸出數(shù)據(jù)向跟隨的計算機進行詢問。對主導(dǎo)的計算機的執(zhí)行結(jié)果和跟隨的計算機的輸出數(shù)據(jù)進行比較,來判斷能否輸出。圖1是表示FT系統(tǒng)I的結(jié)構(gòu)的一個示例的圖。FT系統(tǒng)I由多臺(例如3臺)計算機節(jié)點10A、10BU0C構(gòu)成。計算機節(jié)點的數(shù)量不限于3,也可以是2或4以上。FT系統(tǒng)I將構(gòu)成該FT系統(tǒng)I的計算機節(jié)點10中的一臺設(shè)為主導(dǎo)、將其他的計算機節(jié)點10設(shè)為設(shè)為跟隨。FT系統(tǒng)I正常運行中,主導(dǎo)的計算機節(jié)點10和跟隨的計算機節(jié)點10不會替換。但是,例如,在主導(dǎo)的計算機節(jié)點10有可能產(chǎn)生某種障礙時,跟隨的計算機節(jié)點10中的一臺成為新主導(dǎo),F(xiàn)T系統(tǒng)I繼續(xù)處理。此外,將有可能產(chǎn)生某種障礙的計算機節(jié)點10從FT系統(tǒng)I中分尚。由此,實現(xiàn)耐障礙性聞的FT系統(tǒng)I。另外,在本實施方式中,將計算機節(jié)點IOA作為主導(dǎo),將計算機節(jié)點IOB和IOC作為跟隨。以下,將計算機節(jié)點IOA簡稱為“主導(dǎo)10A”,分別將計算機節(jié)點IOB和IOC簡稱為“跟隨10B”和“跟隨10C”。還存在將跟隨IOB和跟隨IOC合并稱為“跟隨10”的情況。FT系統(tǒng)I例如經(jīng)LAN (Local Area Newtork)或因特網(wǎng)等通信網(wǎng)絡(luò)16,與I臺以上的終端2連接。并且,F(xiàn)T系統(tǒng)I與終端2進行數(shù)據(jù)的收發(fā)。這里,所謂數(shù)據(jù)例如是,表示各終端2的狀態(tài)的信息的通知,或者是針對對方的動作的請求等。計算機節(jié)點10具有:存儲器11、一個以上的處理器12、外部通信接口(以下稱為“I/F”)14、以及節(jié)點通信I/F15。存儲器11是能夠讀出和寫入數(shù)據(jù)的易失性存儲介質(zhì),從處理器12訪問存儲器11。存儲器 11 例如由 DRAM (Dynamic Random Access Memory)等構(gòu)成。處理器12從存儲裝置13等讀出應(yīng)用20和基礎(chǔ)軟件30等程序,并在存儲器11展開,執(zhí)行該程序。另外,一個計算機節(jié)點10也可以有多個處理器12。外部通信I/F14是用于計算機節(jié)點10經(jīng)通信網(wǎng)絡(luò)16與終端2進行數(shù)據(jù)的收發(fā)的I/F。節(jié)點通信I/F15是計算機節(jié)點10之間用于收發(fā)數(shù)據(jù)的I/F。另外,外部通信I/F14和節(jié)點通信I/F15不需要分別設(shè)置,可以由一個通信I/F進行外部通信和節(jié)點通信I/F的兩種通信。外部通信I/F14和節(jié)點通信I/F15例如由以以太網(wǎng)(ethernet)(注冊商標(biāo))為標(biāo)準(zhǔn)的I/F等構(gòu)成。存儲裝置13是能夠存儲數(shù)據(jù)的非易失性存儲介質(zhì),從處理器12等訪問存儲裝置
13。在存儲裝置13中存儲有在計算機節(jié)點10執(zhí)行的應(yīng)用20和基礎(chǔ)軟件30等各種程序和數(shù)據(jù)。存儲裝置13例如由HDD (Hard Disk Drive,硬盤驅(qū)動器)或閃存(flash memory)等構(gòu)成。接下來,對用處理器12來執(zhí)行的應(yīng)用20和基礎(chǔ)軟件30進行說明。應(yīng)用20是用于實現(xiàn)FT系統(tǒng)I提供的功能的計算機程序。應(yīng)用20由一個以上的任務(wù)21構(gòu)成。任務(wù)21可以具有不被基礎(chǔ)軟件30或其他任務(wù)21參照的固有的存儲區(qū)域。并且,構(gòu)成FT系統(tǒng)I的計算機節(jié)點10分別具有相同的應(yīng)用20。即,相同的應(yīng)用20分別在構(gòu)成FT系統(tǒng)I的多個計算機節(jié)點10中執(zhí)行?;A(chǔ)軟件30是能夠進行多重任務(wù)(multitask)處理的OS,能夠并列地執(zhí)行多個任務(wù)21。基礎(chǔ)軟件30對任務(wù)21提供:對存儲裝置13的訪問功能、經(jīng)外部通信I/F14與終端2進行通信的功能、以及確保和釋放存儲器30的預(yù)定區(qū)域功能等。基礎(chǔ)軟件30例如具有:調(diào)度器(scheduler) 31、任務(wù)請求受理部32、輸出判定部33、追隨判定部34、訪問信息管理表35、訪問執(zhí)行部36、數(shù)據(jù)存儲處理部37、外部訪問執(zhí)行部38、以及輸出管理表39。圖2是表示任務(wù)請求信息40的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。任務(wù)請求受理部32從任務(wù)21收到圖2所示那樣的任務(wù)請求信息40,并將其請求內(nèi)容傳送給訪問執(zhí)行部36。在任務(wù)請求信息40中記載有任務(wù)21訪問數(shù)據(jù)存儲部37時的請求。在任務(wù)請求信息40中例如圖2所示記載有:訪問對象信息41、訪問種類42、數(shù)據(jù)大小43、以及數(shù)據(jù)內(nèi)容44。訪問對象信息41是用于識別任務(wù)21的訪問對象(即,數(shù)據(jù)的讀出目的地,或數(shù)據(jù)的寫入目的地)的信息。例如,訪問對象信息41還可以是表示存儲器11的預(yù)定存儲區(qū)域的地址,還可以是成為訪問對象的存儲裝置的標(biāo)識符,還可以是表示存儲裝置的預(yù)定的存儲區(qū)域的標(biāo)識符,或者也可以是其組合。此外,訪問對象是經(jīng)通信網(wǎng)絡(luò)16連接的終端2時,訪問對象/[目息41還可以是表不終端2的IP地址和端口號碼,也可以是在計算機節(jié)點10內(nèi)用于唯一識別IP地址和端口號碼的組合的會話(session)標(biāo)識符。訪問種類42是用于識別任務(wù)的請求是讀出(read)數(shù)據(jù)還是寫入(write)數(shù)據(jù)的信息。訪問種類42是“write”時,在數(shù)據(jù)大小43以及數(shù)據(jù)內(nèi)容44中分別記載寫入數(shù)據(jù)的數(shù)據(jù)大小和數(shù)據(jù)的內(nèi)容。圖3是表示訪問信息50的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。訪問執(zhí)行部36生成用于向其他計算機節(jié)點10傳送任務(wù)請求信息40的訪問信息50。并且,訪問執(zhí)行部36對數(shù)據(jù)存儲部37的數(shù)據(jù)進行訪問。在訪問信息50中例如圖3所示記載有:訪問對象標(biāo)識符51、計算機節(jié)點標(biāo)識符52、任務(wù)標(biāo)識符53、序號54、狀態(tài)變化標(biāo)記55、以及驗證用信息56。訪問對象標(biāo)識符51是由任務(wù)請求信息40所具有的訪問對象信息41以及數(shù)據(jù)大小43唯一決定的標(biāo)識符。訪問對象標(biāo)識符51例如還可以由訪問對象信息41所包含的訪問對象存儲裝置名、存儲區(qū)域名、或作為訪問對象的通信目的地的裝置的標(biāo)識符(例如,主機名,或IP地址等)決定。此外,在訪問對象存儲區(qū)域分割為多個區(qū)域時,訪問對象標(biāo)識符51也可以由賦予分割出的各個存儲區(qū)域的標(biāo)識符決定。計算機節(jié)點標(biāo)識符52是用于唯一識別生成了訪問信息50的計算機節(jié)點10的標(biāo)識符。例如,因為圖3所示的計算機節(jié)點標(biāo)識符52是“A”,所以可知該訪問信息50是由主導(dǎo)IOA生成的信息。任務(wù)標(biāo)識符53是用于唯一識別任務(wù)21標(biāo)識符,該任務(wù)21為執(zhí)行訪問信息50的主體。例如,因為圖3所示的任務(wù)標(biāo)識符53是“Tl”,所以可知由任務(wù)Tl來執(zhí)行該訪問信息50。序號54是用于表示在訪問信息50在自己的計算機節(jié)點10中被執(zhí)行的順序的值?;緛碚f,從序號小的訪問信息50開始按順序來執(zhí)行。例如,由于圖3所示的序號54是93,所以基本來說,先執(zhí)行序號比其小的訪問信息50。狀態(tài)變化標(biāo)記55是表示訪問信息50的執(zhí)行是否使訪問對象的狀態(tài)變化的信息。例如,當(dāng)從數(shù)據(jù)存儲部37讀出數(shù)據(jù)的讀訪問(read access)時,由于數(shù)據(jù)存儲部37的數(shù)據(jù)沒有變化,所以狀態(tài)變化標(biāo)記55是“無”。另一方面,當(dāng)向數(shù)據(jù)存儲部37寫入數(shù)據(jù)的寫訪問(write access)時,或者是向終端2發(fā)送數(shù)據(jù)的訪問時,狀態(tài)變化標(biāo)記55是“有”。驗證用信息56記載有這樣的數(shù)據(jù):用于在各計算機節(jié)點10中,驗證由同一任務(wù)21交給的任務(wù)請求信息40是相同的。例如,當(dāng)任務(wù)請求信息40是請求“寫入”的信息時,在驗證用信息56中記載有任務(wù)請求信息40的數(shù)據(jù)內(nèi)容44,或者,數(shù)據(jù)內(nèi)容44的錯誤檢測符號數(shù)據(jù)等。圖4是表不訪問信息管理表35的數(shù)據(jù)結(jié)構(gòu)的一個不例的圖。訪問信息管理表35將主導(dǎo)訪問信息52A和跟隨訪問信息52B對應(yīng)起來進行管理。所謂主導(dǎo)訪問信息52A是從主導(dǎo)IOA的訪問執(zhí)行部36發(fā)送的訪問信息。所謂跟隨訪問信息52B是在跟隨10的訪問執(zhí)行部36生成的訪問信息。主導(dǎo)訪問信息52A例如具有:任務(wù)標(biāo)識符53A、序號54A、狀態(tài)變化標(biāo)記55A、驗證用信息56A、以及自節(jié)點執(zhí)行信息57。跟隨訪問信息52B例如具有:任務(wù)標(biāo)識符53B、序號54B、狀態(tài)變化標(biāo)記55B、以及驗證用信息56B。訪問信息管理表35針對主導(dǎo)IOA和跟隨IOB (或跟隨10C),由同一任務(wù)21生成的訪問信息50對應(yīng)起來進行管理。例如,圖4是跟隨IOB的訪問信息管理表35的一個例子??芍涊d于同一行的主導(dǎo)訪問信息52A和跟隨訪問信息52B是對應(yīng)關(guān)系。通過訪問對象標(biāo)識符51和任務(wù)標(biāo)識符52是否都是相同的來判斷對應(yīng)關(guān)系。例如在圖4中,訪問對象標(biāo)識符51是“R1”、且任務(wù)標(biāo)識符53A是“Tl”的主導(dǎo)訪問信息52A與跟隨訪問信息52B是對應(yīng)關(guān)系。訪問信息管理表35將主導(dǎo)訪問信息52A和跟隨訪問信息52B按每個相同訪問對象標(biāo)識符51分組來進行管理。并且,訪問信息管理表35在訪問對象標(biāo)識符51的組內(nèi)按主導(dǎo)訪問信息52的序號從小到大的順序進行管理。在自節(jié)點執(zhí)行信息57中記載有該行所記載的跟隨訪問信息52B是否執(zhí)行完畢。例如如圖4所示那樣的、跟隨訪問信息52B的序號“38”的執(zhí)行完畢時,在同一行的自節(jié)點執(zhí)行信息57中記載有其序號“38”。訪問執(zhí)行部36通過參照自節(jié)點執(zhí)行信息57能夠知道哪個跟隨訪問信息52B執(zhí)行完畢。由于主導(dǎo)訪問信息52A按序號從小到大的順序排列,所以與其是對應(yīng)關(guān)系的跟隨訪問信息52B也按與其相同的順序排列。因此,訪問執(zhí)行部36通過參照自節(jié)點執(zhí)行信息57能夠知道到時序(sequence)的哪個階段的跟隨訪問信息52B為止執(zhí)行完畢。
圖5是表示輸入信息60的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。主導(dǎo)IOA嘗試了從終端2接收數(shù)據(jù)時,外部訪問執(zhí)行部38生成將該執(zhí)行結(jié)果和接收到的數(shù)據(jù)內(nèi)容傳送給跟隨10的輸入信息60。在輸入信息60中例如如圖5所不記載有:訪問對象標(biāo)識符51、外部訪問序號62、輸入結(jié)果標(biāo)記63、數(shù)據(jù)大小64、以及數(shù)據(jù)內(nèi)容65。外部訪問執(zhí)行部38在接收數(shù)據(jù)成功時將“成功”記載到輸入信息60的輸入結(jié)果標(biāo)記63中,失敗時將“失敗”記載到輸入信息60的輸入結(jié)果標(biāo)記63中。當(dāng)接收數(shù)據(jù)成功時,外部訪問執(zhí)行部38將接收的數(shù)據(jù)的數(shù)據(jù)大小和數(shù)據(jù)內(nèi)容分別記載到數(shù)據(jù)大小64和數(shù)據(jù)內(nèi)容65。外部訪問執(zhí)行部38將數(shù)據(jù)發(fā)送給終端2時,將圖7所示的輸出信息70存儲到圖6所不的輸出管理表39中。輸出信息70中例如如圖7所不記載有:訪問對象標(biāo)識符51、夕卜部訪問序號62、以及核對數(shù)據(jù)74。因為訪問對象標(biāo)識符51以及外部訪問序號62與圖5相同所以省略說明。核對數(shù)據(jù)74中例如記載主導(dǎo)IOA的輸出數(shù)據(jù)。圖6是表示輸出管理表39的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。輸出管理表39中例如如圖6所示記載有:訪問對象標(biāo)識符51、外部訪問序號62、數(shù)據(jù)大小64、以及數(shù)據(jù)內(nèi)容65。主導(dǎo)IOA的輸出管理表39中還記載有正確與否標(biāo)記81,該正確與否標(biāo)記81表示跟隨10對主導(dǎo)IOA的輸出數(shù)據(jù)的正確與否的判定。跟隨的輸出管理表39不包含正確與否標(biāo)記。圖7是表示輸出信息70的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。圖8是表示輸出正確與否信息80的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。主導(dǎo)IOA的輸出判定部33在向終端2發(fā)送記載于輸出管理表39的預(yù)定輸出數(shù)據(jù)前,將輸出信息70發(fā)送到跟隨10。主導(dǎo)IOA的輸出判定部33從跟隨10接收例如圖8所示那樣的作為輸出信息70的驗證結(jié)果的輸出正確與否信息80,并根據(jù)該驗證結(jié)果判定是否向終端2發(fā)送上述預(yù)定的輸出數(shù)據(jù)。返回到圖1。數(shù)據(jù)存儲部37根據(jù)來自訪問執(zhí)行部36的請求,將數(shù)據(jù)寫入存儲器11或存儲裝置13的預(yù)定區(qū)域,或從存儲器11或存儲裝置13的預(yù)定區(qū)域讀出數(shù)據(jù)。數(shù)據(jù)存儲部37還可以起到作為高速緩沖存儲器(cache memory)的作用。調(diào)度器31控制多個任務(wù)21的執(zhí)行順序。調(diào)度器31例如以預(yù)定的時間間隔來切換執(zhí)行的任務(wù)21。當(dāng)產(chǎn)生比執(zhí)行中的任務(wù)優(yōu)先級高的任務(wù)21時,調(diào)度器31使該優(yōu)先級高的任務(wù)21先執(zhí)行。追隨判定部34判定跟隨IOB或跟隨IOC是否能夠追隨主導(dǎo)10A。例如,當(dāng)跟隨IOB的輸出數(shù)據(jù)和主導(dǎo)IOA的輸出數(shù)據(jù)不同時,跟隨IOB對主導(dǎo)IOA通知表示不能追隨的意思
的信息。主導(dǎo)IOA的追隨判定部34從少數(shù)跟隨收到表示不能夠追隨的信息時,能夠判定為在該少數(shù)跟隨中可能產(chǎn)生了某種障礙。另一方面,主導(dǎo)IOA的追隨判定部34當(dāng)從多數(shù)跟隨收到表示不能夠追隨的信息時,能夠判定為主導(dǎo)IOA本身可能產(chǎn)生了某種障礙。圖9是表示執(zhí)行任務(wù)21的處理的流程圖的一個示例。調(diào)度器31選擇執(zhí)行的任務(wù)21 (SlOl)0開始執(zhí)行選擇出的任務(wù)21 (S102)。在任務(wù)21的執(zhí)行中產(chǎn)生了對存儲裝置13或終端2的訪問請求時,任務(wù)21將任務(wù)請求信息40交給任務(wù)請求受理部32,請求執(zhí)行訪問處理(S103)。這里,任務(wù)請求受理部32沒有收到任務(wù)請求信息40時(S104:否),前進到步驟S106。任務(wù)請求受理部32從任務(wù)21收到任務(wù)請求信息40時(S104:是),調(diào)度器31判斷能否在預(yù)定時間內(nèi)完成記載于任務(wù)請求信息40的處理(S105)。當(dāng)調(diào)度器31判斷為能夠在預(yù)定時間內(nèi)完成該處理時(S105:是),前進到步驟S106。另一方面,當(dāng)調(diào)度器31判斷為不能在預(yù)定時間內(nèi)完成該處理時(S105:否),調(diào)度器31暫時中斷該處理。然后,調(diào)度器31返回到步驟S101,選擇并執(zhí)行其他的任務(wù)21。對任務(wù)請求受理部32沒有收到任務(wù)請求信息40時(S104:否),或者,調(diào)度器31判斷為能夠在預(yù)定時間內(nèi)完成記載于任務(wù)請求信息40的處理時(S105:是)進行說明。這時,調(diào)度器31判斷當(dāng)前執(zhí)行中的任務(wù)21是否是最優(yōu)先的任務(wù)(S106)。當(dāng)前執(zhí)行中的任務(wù)21是最優(yōu)先的任務(wù)時(S106:是),返回到步驟S103,繼續(xù)該處理。當(dāng)前執(zhí)行中的任務(wù)21不是最優(yōu)先的任務(wù)時(S106:否),返回到步驟S101,選擇并執(zhí)行其他的任務(wù)21。所謂當(dāng)前執(zhí)行中的任務(wù)21不是最優(yōu)先的情況例如是當(dāng)前執(zhí)行中的任務(wù)21的連續(xù)執(zhí)行時間為預(yù)定時間以上的情況,或者是能夠執(zhí)行比當(dāng)前執(zhí)行中的任務(wù)優(yōu)先級高的任務(wù)的情況。另外,當(dāng)計算機節(jié)點10具有多個處理器12時,在各處理器12中分別執(zhí)行這些動作。各處理器12執(zhí)行調(diào)度器31的時刻未必相同。因此,在計算機節(jié)點10之間只不進行“時鐘同步”,各計算機節(jié)點10之間無法使各處理器12的動作完全一致。例如,當(dāng)各計算機節(jié)點10的處理器內(nèi)的高速緩存(cache)動作不同時,有時相同任務(wù)21的開始時刻錯開。此外,當(dāng)各計算機節(jié)點10的基礎(chǔ)軟件30的內(nèi)部狀態(tài)不同時,有時任務(wù)21的執(zhí)行結(jié)果不一致。但是,在實現(xiàn)FT系統(tǒng)I時不允許各計算機節(jié)點10執(zhí)行的任務(wù)21發(fā)生致命的執(zhí)行
結(jié)果的不一致。所謂致命的執(zhí)行結(jié)果的不一致例如是:盡管在多個計算機節(jié)點10之間執(zhí)行了同一任務(wù)21,但是各計算機節(jié)點10做出不同的判定,成為各自不同的執(zhí)行結(jié)果,進行不同的輸出的情況等。因此,在本實施方式中,在多個計算機節(jié)點10執(zhí)行相同任務(wù)21時,不會引起致命的執(zhí)行結(jié)果的不一致。圖10是表示各計算機節(jié)點10的任務(wù)21訪問數(shù)據(jù)存儲部37時的時序的例子。在本例中,在主導(dǎo)IOA中,在任務(wù)21A之后若任務(wù)21a不訪問數(shù)據(jù)存儲部37,則數(shù)據(jù)產(chǎn)生不匹配。另外,在跟隨IOB和IOC中也是同樣。首先,對訪問執(zhí)行部36A的基于在主導(dǎo)IOA執(zhí)行的任務(wù)21A和21a的任務(wù)請求信息40的處理進行說明。從任務(wù)21A受理了第I任務(wù)請求信息40的訪問執(zhí)行部36A生成與第I任務(wù)請求信息40相對應(yīng)的第I訪問信息50(S10a)。訪問執(zhí)行部36A向跟隨IOB的訪問執(zhí)行部36B、和跟隨IOC的訪問執(zhí)行部36C發(fā)送該第I訪問信息50 (Slla、S12a)。接下來訪問執(zhí)行部36A根據(jù)該任務(wù)請求信息40來訪問數(shù)據(jù)存儲部37A的預(yù)定數(shù)據(jù)(S13a)。然后,從任務(wù)21a受理了第2任務(wù)請求信息40的訪問執(zhí)行部36A生成與第2任務(wù)請求信息40相對應(yīng)的第2訪問信息50 (S20a)。以后,訪問執(zhí)行部36A與上述的任務(wù)21A中所描述的Slla S13a同樣地訪問存儲裝置13 (S21a S23a)。S卩,在主導(dǎo)IOA執(zhí)行的訪問執(zhí)行部36A向跟隨IOB的訪問執(zhí)行部36B和跟隨IOC的訪問執(zhí)行部36C發(fā)送用于執(zhí)行同一處理的訪問信息50。接下來,對訪問執(zhí)行部36B的基于在跟隨IOB執(zhí)行的任務(wù)21B以及21b的任務(wù)請求信息40的處理進行說明。這里,將跟隨IOB的訪問執(zhí)行部稱為訪問執(zhí)行部36B,將跟隨IOB的數(shù)據(jù)存儲部稱為數(shù)據(jù)存儲部37B。另外,描述跟隨IOC時也同樣地標(biāo)注符號36C、37C來進行說明。從任務(wù)21B受理了第I任務(wù)請求信息40的訪問執(zhí)行部36B開始處理,但是由于沒有從主導(dǎo)IOA的訪問執(zhí)行部36A收到訪問信息50,所以待機(SlOd)。圖10中用虛線表不正在待機的樣子。訪問執(zhí)行部36B從訪問執(zhí)行部36A收到第I訪問信息50時(Slla),根據(jù)與該第I訪問信息50相對應(yīng)的任務(wù)請求信息40,訪問數(shù)據(jù)存儲部37B的預(yù)定數(shù)據(jù)(Sllb)。然后,任務(wù)21b向訪問執(zhí)行部36B發(fā)行第2任務(wù)請求信息40。這時,訪問執(zhí)行部36B完成從主導(dǎo)IOA的訪問執(zhí)行部36A接收第2訪問信息50 (S21a)。因此,訪問執(zhí)行部36B立刻根據(jù)與該第2訪問信息50相對應(yīng)的任務(wù)請求信息40,訪問數(shù)據(jù)存儲部37B的預(yù)定數(shù)據(jù)(S21b)。接下來,對訪問執(zhí)行部36B的基于在跟隨IOC執(zhí)行的任務(wù)21C以及21c的任務(wù)請求信息40的處理進行說明。任務(wù)21C開始處理。從任務(wù)21C受理了任務(wù)請求信息40的訪問執(zhí)行部36C由于已經(jīng)從主導(dǎo)IOA的訪問執(zhí)行部36A接收了第I訪問信息50(S12a),所以立刻根據(jù)任務(wù)請求信息40訪問數(shù)據(jù)存儲部37C的預(yù)定數(shù)據(jù)(Sllc)。另一方面,任務(wù)21c比任務(wù)21C較早地開始處理(S20c)。但是,由于訪問執(zhí)行部36C還沒有從主導(dǎo)IOA的訪問執(zhí)行部36A接收第2訪問信息50,所以待機。訪問執(zhí)行部36C從訪問執(zhí)行部36A接收第2訪問信息50(S22a)。但是,由于在該時刻還沒有完成與第I訪問信息50相對應(yīng)的訪問處理,所以訪問執(zhí)行部36C保持待機直到完成與第I訪問信息50相對應(yīng)的訪問處理為止。訪問執(zhí)行部36C在完成了與第I訪問信息50相對應(yīng)的訪問處理后,根據(jù)任務(wù)請求信息40來訪問數(shù)據(jù)存儲部37C的預(yù)定數(shù)據(jù)(S21c)。通過以上的處理,即使主導(dǎo)IOA中的任務(wù)啟動順序、跟隨IOB中的任務(wù)啟動順序、以及跟隨IOC中的任務(wù)啟動順序不一致時,在各計算機節(jié)點10中,能夠使各任務(wù)訪問數(shù)據(jù)的順序相同。即,能夠防止在各計算機節(jié)點中進行相同處理的任務(wù)為不同的執(zhí)行結(jié)果。圖11是表示作為主導(dǎo)的計算機節(jié)點IOA接收來自外部終端2的外部訪問請求時的時序的圖的一個示例。首先,對在主導(dǎo)IOA中執(zhí)行的訪問執(zhí)行部36A的處理進行說明。因為訪問執(zhí)行部36A的步驟S30a S31a與圖10中的步驟S20a S21a為同樣的處理所以省略說明。接下來,訪問執(zhí)行部36A指示外部訪問執(zhí)行部38A接收從終端2發(fā)送的數(shù)據(jù)(S33a)。外部訪問執(zhí)行部38A接收到從終端2發(fā)送的數(shù)據(jù)時(S34a),將其意思通知給訪問執(zhí)行部36A (S35a)。這時,夕卜部訪問執(zhí)行部38A向跟隨IOB的外部訪問執(zhí)行部38B、和跟隨IOC的外部訪問執(zhí)行部38C轉(zhuǎn)發(fā)輸入信息60 (S36a、S37a)。接下來,對在跟隨IOB中執(zhí)行的訪問執(zhí)行部36B的處理進行說明。訪問執(zhí)行部36B在開始處理時已經(jīng)從主導(dǎo)IOA的訪問執(zhí)行部36A接收了訪問信息50(S31a)。因此,訪問執(zhí)行部36B指示外部訪問執(zhí)行部38B接受從主導(dǎo)IOA的外部訪問執(zhí)行部38A轉(zhuǎn)發(fā)的輸入信息60 (S31b)。外部訪問執(zhí)行部38B從主導(dǎo)IOA接收到輸入信息60時(S36a),將凈心數(shù)據(jù)信息60所包含的輸入結(jié)果標(biāo)記63、數(shù)據(jù)大小64、以及數(shù)據(jù)內(nèi)容65通知給訪問執(zhí)行部36B (S32b)。另外,跟隨IOC的訪問執(zhí)行部36C也進行與上述同樣的處理(S30c S32c)。如以上那樣,以主導(dǎo)IOA為代表來接收從外部終端2等發(fā)送到FT系統(tǒng)I的數(shù)據(jù),并將這些數(shù)據(jù)轉(zhuǎn)發(fā)給跟隨。然后,在主導(dǎo)IOA和跟隨IOB以及IOC分別執(zhí)行同一處理。由此,跟隨也能夠得到與主導(dǎo)相同的輸入結(jié)果,利用輸入結(jié)果的任務(wù)能夠進行相同的動作。圖12是表示作為主導(dǎo)的計算機節(jié)點IOA向終端2發(fā)送數(shù)據(jù)時的時序的圖的一個示例。首先,對在主導(dǎo)IOA中執(zhí)行的訪問執(zhí)行部36A的處理進行說明。因為訪問執(zhí)行部36A的步驟S40a S42a與圖11中的步驟S30a S32a是同樣的處理所以省略說明。訪問執(zhí)行部36A指示外部訪問執(zhí)行部38A向終端2發(fā)送數(shù)據(jù)(S43a)。外部訪問執(zhí)行部38A將從訪問執(zhí)行部36A交給的數(shù)據(jù)記載到輸出信息70,并將其分別向跟隨IOB的外部訪問執(zhí)行部38B以及跟隨IOC的外部訪問執(zhí)行部38C轉(zhuǎn)發(fā)(S44a、S45a)。外部訪問執(zhí)行部38A從跟隨IOB的外部訪問執(zhí)行部38B以及跟隨IOC的外部訪問執(zhí)行部38C接收表示主導(dǎo)IOA的輸出數(shù)據(jù)是否正確的輸出正確與否信息14 (S42b、S42c)。當(dāng)外部訪問執(zhí)行部38A從多數(shù)(例如,半數(shù)以上)跟隨收到了結(jié)果是正確的意思的通知時,向終端2發(fā)送主導(dǎo)IOA的輸出數(shù)據(jù)(S46a)。對在跟隨IOB中執(zhí)行的訪問執(zhí)行部36B的處理進行說明。在開始處理時訪問執(zhí)行部36B已經(jīng)從主導(dǎo)IOA的訪問執(zhí)行部36A接收了訪問信息50 (S40b)。因此,訪問執(zhí)行部B將輸出數(shù)據(jù)交給外部訪問執(zhí)行部38B。外部訪問執(zhí)行部38B對從訪問執(zhí)行部36B收到的輸出數(shù)據(jù)、和從主導(dǎo)IOA的任務(wù)21A接收到的輸出信息70進行比較。當(dāng)輸出數(shù)據(jù)一致時,夕卜部訪問執(zhí)行部38B將表示一致的意思的“正”的信息記載到輸出正確與否信息80的正確與否標(biāo)記81,并發(fā)送到主導(dǎo)IOA的外部訪問執(zhí)行部38A (S42b)。另一方面,當(dāng)輸出數(shù)據(jù)不一致時,外部訪問執(zhí)行部38B將表示不一致的意思的“否”的信息記載到輸出正確與否信息80的正確與否標(biāo)記81,并發(fā)送到主導(dǎo)A的外部訪問執(zhí)行部38A (S42b)。另外,在跟隨IOC中執(zhí)行的任務(wù)21C也進行與上述同樣的處理(S40c S42c)。通過以上的處理,即使主導(dǎo)IOA的輸出數(shù)據(jù)由于某不良而導(dǎo)致錯誤,也能夠防止向終端2發(fā)送錯誤的輸出數(shù)據(jù)。圖13是表示任務(wù)請求信息的處理的流程圖。訪問執(zhí)行部36根據(jù)任務(wù)請求信息40生成訪問信息50(S201)。訪問執(zhí)行部33判定自己所屬的計算機節(jié)點10是主導(dǎo),還是跟隨(S202 )。以下,將自己所屬的計算機節(jié)點稱為本節(jié)點。對本節(jié)點是主導(dǎo)時的處理進行說明(S202:主導(dǎo))。訪問執(zhí)行部36向跟隨IOB以及IOC發(fā)送訪問信息50 (S203)。訪問執(zhí)行部36判定任務(wù)請求信息40是請求對本節(jié)點內(nèi)部的存儲裝置13的訪問的信息,還是請求對外部終端2的訪問的信息(S210)。訪問請求信息40是請求對本節(jié)點內(nèi)部的數(shù)據(jù)存儲部37的訪問的信息時(S210:內(nèi)部),訪問執(zhí)行部36對數(shù)據(jù)存儲部37的數(shù)據(jù)進行訪問(S211)。另一方面,是請求對終端2的訪問的信息時(S210:外部),外部訪問執(zhí)行部38與終端2進行數(shù)據(jù)的收發(fā)(S212)。接下來,返回到步驟S202,對自己的計算機節(jié)點10是跟隨時的處理進行說明(S202:否)。訪問執(zhí)行部36將在步驟S201中生成的跟隨訪問信息50存儲到訪問信息管理表35中(S204)。訪問執(zhí)行部36將從主導(dǎo)IOA接收的主導(dǎo)訪問信息50存儲到訪問信息管理表35中(S205)。訪問執(zhí)行部36根據(jù)訪問信息管理表35對跟隨訪問信息52B和主導(dǎo)訪問信息52A的對應(yīng)關(guān)系進行核對(S206)。S卩,例如在圖4中,對跟隨訪問信息52B和記載于同一行的主導(dǎo)訪問信息52A進行核對。訪問執(zhí)行部36判定所核對的跟隨訪問信息52B能否立刻執(zhí)行(S207)。在相同的訪問對象標(biāo)識符53的組內(nèi),當(dāng)序號比所核對的跟隨訪問信息52B小的跟隨訪問信息52B全部執(zhí)行完畢時,判定為能夠立刻執(zhí)行。當(dāng)還存在未執(zhí)行的跟隨訪問信息52B時判定為還不能執(zhí)行。通過參照自節(jié)點執(zhí)行信息57能知道是否執(zhí)行完畢。當(dāng)跟隨訪問信息52B全部執(zhí)行完畢時(S207:是),訪問執(zhí)行部36在訪問信息管理表35中,將跟隨訪問信息52B的序號記錄到與所核對的跟隨訪問信息52B相對應(yīng)的自節(jié)點執(zhí)行信息57 (S208)。與從上述的步驟S210到S212同樣地,訪問執(zhí)行部36根據(jù)任務(wù)請求信息40來訪問數(shù)據(jù)存儲部37的預(yù)定數(shù)據(jù)。另一方面,當(dāng)還剩余未執(zhí)行的跟隨訪問信息52B時(S207:否),訪問執(zhí)行部36暫時保留該訪問處理(S209 ),返回到步驟S205。另外,在訪問信息管理表35中還可以具有狀態(tài)變化標(biāo)記55。例如,在訪問信息管理表35中剩余有比執(zhí)行的訪問處理序號小的未執(zhí)行的訪問處理。若為上述處理的話,在步驟S207中,由于剩余有未執(zhí)行的訪問處理,所示判斷為不能執(zhí)行訪問處理。對具有狀態(tài)變化標(biāo)記55的情況進行說明。當(dāng)與某個跟隨訪問信息52B相對應(yīng)的主導(dǎo)訪問信息52A以及比其序號小的主導(dǎo)訪問信息52A的全部狀態(tài)變化標(biāo)記55是“無”,且相對應(yīng)的跟隨訪問信息51B的全部狀態(tài)變化標(biāo)記55也是“無”時,也可以使步驟S207的判定為是。通過管理狀態(tài)變化標(biāo)記55,步驟S207的條件成立的可能性變高。因此,能夠減少保留訪問處理的執(zhí)行的頻率。圖14是表示外部訪問執(zhí)行部38從終端2接收外部訪問請求的處理流程的一個示例的圖。外部訪問執(zhí)行部38對本節(jié)點是主導(dǎo)還是跟隨進行判定(S301)。對本節(jié)點是主導(dǎo)時的處理進行說明(S301:主導(dǎo))。外部訪問執(zhí)行部38經(jīng)外部通信I/F14,從終端2等接收外部訪問請求10,并執(zhí)行該請求(S302)。外部訪問執(zhí)行部38生成包含輸入數(shù)據(jù)的輸入信息60 (S303)。外部訪問執(zhí)行部38向跟隨IOB以及IOC發(fā)送所生成的輸入信息60 (S304)。外部訪問執(zhí)行部38將輸入結(jié)果通知給訪問執(zhí)行部36 (S305)。返回到步驟S301,對本節(jié)點是跟隨時的處理進行說明(S301:跟隨)。外部訪問執(zhí)行部38從主導(dǎo)接收輸入信息60 (S306)。
外部訪問執(zhí)行部38根據(jù)輸入信息60再現(xiàn)主導(dǎo)的輸入結(jié)果(S307),并將再現(xiàn)后的輸入結(jié)果通知給訪問執(zhí)行部36 (S305)。通過以上的處理,跟隨也能夠得到和主導(dǎo)相同的輸入結(jié)果,利用輸入結(jié)果的任務(wù)能夠進行相同動作。圖15是表示外部訪問執(zhí)行部38向終端2發(fā)送輸出數(shù)據(jù)的處理流程的一個示例的圖。外部訪問執(zhí)行部38將輸出數(shù)據(jù)存儲到輸出管理表39中(S401)。外部訪問執(zhí)行部38判定本節(jié)點是主導(dǎo)還是跟隨(S402)。首先,對本節(jié)點是主導(dǎo)時的處理進行說明(S402:主導(dǎo))。外部訪問執(zhí)行部38向跟隨IOB以及IOC發(fā)送輸出信息(S403)。外部訪問執(zhí)行部38從各跟隨接收輸出正確與否信息80 (S404)。然后,外部訪問執(zhí)行部38將接收到的輸出正確與否信息80交給輸出判定部33,并使輸出判定部33判定輸出數(shù)據(jù)是否是正確的。輸出判定部33分別對正確與否標(biāo)記81是“正”的輸出正確與否信息80、和正確與否標(biāo)記是“否”的輸出正確與否信息80的數(shù)量進行匯總。然后,判定“正”的數(shù)量是否是多數(shù)(例如,半數(shù)以上)(S405)。該判定是“真”時(S405:是),輸出判定部33將輸出數(shù)據(jù)是正確的意思的判定返回給外部訪問執(zhí)行部38。外部訪問執(zhí)行部38收到這些后向終端2發(fā)送主導(dǎo)IOA的輸出數(shù)據(jù)。另一方面,該判定是“偽”時(S405:否),輸出判定部33將主導(dǎo)IOA的輸出數(shù)據(jù)有可能不正確的意思的判定返回給外部訪問執(zhí)行部38。外部訪問執(zhí)行部38收到這些后不向終端2發(fā)送在主導(dǎo)IOA執(zhí)行得到的輸出數(shù)據(jù)。想定主導(dǎo)IOA有在本節(jié)點中產(chǎn)生某種障礙的可能性,并停止自己的主導(dǎo)功能,請求跟隨門選出新的主導(dǎo)(S407)。接下來,返回到步驟S402,對本節(jié)點是跟隨時的處理進行說明(S402:跟隨)。外部訪問執(zhí)行部38從主導(dǎo)接收輸出信息70 (S408)。外部訪問執(zhí)行部38使輸出判定部33對從主導(dǎo)接收的輸出數(shù)據(jù)70和自己的輸出數(shù)據(jù)進行比較(S409)。輸出判定部33判定該比較結(jié)果是否一致(S410)。一致時(S410:是),輸出判定部33向主導(dǎo)IOA發(fā)送將“正”記載到了正確與否標(biāo)記81的輸出正確與否信息80 (S411)。另一方面,不一致時(S410:否),輸出判定部33向主導(dǎo)IOA發(fā)送將“否”記載到了正確與否標(biāo)記81的輸出正確與否信息80 (S412)。通過以上處理,對主導(dǎo)的輸出數(shù)據(jù)和跟隨的輸出數(shù)據(jù)進行比較,由此能夠進行可靠性更高的輸出。(第2實施方式)第2實施方式是這樣的實施方式:在第I實施方式中追加了將產(chǎn)生了某種異常的主導(dǎo)10A、跟隨IOB或IOC從FT系統(tǒng)I分離的處理。圖16是表示追隨可否信息90的數(shù)據(jù)結(jié)構(gòu)的一個示例的圖。追隨可否信息90是用于將跟隨10能否與主導(dǎo)IOA —樣地執(zhí)行處理(即,能否追隨主導(dǎo)10A)傳遞給主導(dǎo)IOA的信息。追隨可否信息90例如如圖16所示那樣,具有:計算機節(jié)點標(biāo)識符52、追隨可否標(biāo)記91、以及追隨可否詳細(xì)信息92。追隨可否標(biāo)記91是表示跟隨10能否追隨主導(dǎo)IOA的標(biāo)記。能夠正常地追隨時記載“可”,由于某種障礙不能追隨時記載“不可”。追隨可否詳細(xì)信息92是用于表示正在追隨的訪問信息50的信息。例如,追隨可否詳細(xì)信息92還可以是訪問對象標(biāo)識符51、任務(wù)標(biāo)識符53、以及序號54的組合。追隨可否詳細(xì)信息92也可以是表示“不可”追為的理由的信息。圖17是表示第2實施方式的訪問信息管理表35的一個示例的圖。當(dāng)從跟隨接收到的追隨可否信息90的追隨可否標(biāo)記是“可”時,主導(dǎo)IOA的追隨判定部34在訪問信息管理表35的對應(yīng)的追隨可否標(biāo)記58的項目中記載為“可”。另一方面,當(dāng)不能接收追隨可否信息90時,追隨判定部34在訪問信息管理表35的對應(yīng)的追隨可否標(biāo)記91的項目中不進行任何記載。當(dāng)追隨可否標(biāo)記91是“不可”時,追隨判定部34在訪問信息管理表35的對應(yīng)的追隨可否標(biāo)記91的項目中記載為“不可”。當(dāng)訪問信息管理表35的同一行的追隨可否標(biāo)記91中“可”是多數(shù)(例如,半數(shù)以上)時,主導(dǎo)IOA的追隨判定部34判斷為發(fā)送了“不可”的跟隨可能產(chǎn)生了某種障礙。追隨判定部34從FT系統(tǒng)I分離該跟隨。另一方面,當(dāng)可否標(biāo)記中“不可”是多數(shù)(例如,半數(shù)以上)時,追隨判定部34判斷為主導(dǎo)本身產(chǎn)生了某種障礙的可能性高。追隨判定部34停止主導(dǎo)功能,請求跟隨們選出新的主導(dǎo)。圖18是表示第2實施方式的跟隨的訪問執(zhí)行部36的處理的流程圖。構(gòu)成FT系統(tǒng)I的計算機節(jié)點10通過心跳(heartbeat)等已知方法,相互確認(rèn)基礎(chǔ)軟件30正常執(zhí)行。主導(dǎo)IOA為無響應(yīng)狀態(tài)時,跟隨10彼此發(fā)送將該意思記載到了追隨可否詳細(xì)信息92的追隨可否信息90。圖18的處理流程與圖13的S204 S208的處理流程相符合。因此,省略圖18的步驟S204和S205的說明,從步驟S220開始說明。訪問執(zhí)行部36從訪問信息管理表35核對最早的未執(zhí)行的訪問處理(S220)。訪問執(zhí)行部36對跟隨訪問信息52B的任務(wù)標(biāo)識符53B、和主導(dǎo)訪問信息52A的任務(wù)標(biāo)識符53A進行比較(S221)。任務(wù)標(biāo)識符53 —致時(S221:是),訪問執(zhí)行部36對不依賴于其他計算機節(jié)點10的其他項目、例如訪問對象標(biāo)識符51、狀態(tài)變化標(biāo)記55、以及驗證用信息56進行比較(S222)。其他項目也一致時(S222:是),訪問執(zhí)行部36判斷為能夠追隨主導(dǎo)的訪問,并向主導(dǎo)IOA發(fā)送將追隨可否標(biāo)記91設(shè)為了 “可”的追隨可否信息90 (S223)。追隨可否詳細(xì)信息92中包含主導(dǎo)IOA的訪問信息50的序號54等。然后,執(zhí)行圖13的步驟S208以后的流程。另一方面,其他項目不一致時(S222:否),訪問執(zhí)行部34向主導(dǎo)IOA發(fā)送將追隨可否標(biāo)記91設(shè)為了“不可”的追隨可否信息90 (S227)。然后,執(zhí)行圖13的步驟S209以后的流程。接下來,返回到步驟S221,對任務(wù)標(biāo)識符53不一致時進行說明。任務(wù)標(biāo)識符53不一致時(S221:否),訪問執(zhí)行部34比較訪問對象標(biāo)識符51 (S224)。訪問對象標(biāo)識符51 —致時(S224:是),判定保留與自己的訪問信息50相對應(yīng)的任務(wù)請求信息40的執(zhí)行的時間是否超過了預(yù)定的超時(timeout)時間(S226)。另外,還可以通過自接收主導(dǎo)IOA的訪問信息50其是否超過了預(yù)定的超時時間進行判定。超過了預(yù)定的超時時間時(S226:是),訪問執(zhí)行部36向主導(dǎo)發(fā)送將追隨可否標(biāo)記設(shè)為了“不可”的追隨可否信息90 (S227),并執(zhí)行圖13的步驟S209以后的處理流程。另一方面,沒有超過預(yù)定的超時時間時(S226:否),訪問執(zhí)行部36直接執(zhí)行圖13的步驟S209以后的處理流程。接下來,返回到步驟S224,對訪問對象標(biāo)識符51不一致時(S224:否)進行說明。判定是否存在未核對的訪問信息50 (S225)。存在未核對的訪問信息50時(S224:是),參照下一訪問信息50 (S228),返回到步驟 S205。另一方面,不存在未核對的訪問信息時(S224:否),前進到步驟S226。圖19是表示從FT系統(tǒng)I分離有發(fā)生障礙可能性的計算機節(jié)點10的處理流程的圖。主導(dǎo)IOA的追隨判定部34從各跟隨接收追隨可否信息90 (S501)。追隨判定部34針對一個訪問處理分別對將追隨可否標(biāo)記91設(shè)為了 “可”的跟隨數(shù)量、和將追隨可否標(biāo)記91設(shè)為了“不可”的跟隨數(shù)量進行匯總(S502)。當(dāng)將追隨可否標(biāo)記91設(shè)為了“可”的跟隨的數(shù)量是多數(shù)(例如,半數(shù)以上)(S502:“可”多)時,將追隨可否標(biāo)記91設(shè)為了“不可”的跟隨中有可能產(chǎn)生了某種障礙。因此,主導(dǎo)IOA的追隨判定部34從FT系統(tǒng)I分離該跟隨(S503)。另一方面,在將追隨可否標(biāo)記91設(shè)為了“不可”的跟隨的數(shù)量是多數(shù)(例如,半數(shù)以上)(S502 不可”為多數(shù))時,主導(dǎo)IOA中有可能產(chǎn)生了某種障礙。因此,主導(dǎo)IOA的追隨判定部34請求跟隨們選出新的主導(dǎo),并且從FT系統(tǒng)I分離主導(dǎo)IOA本身(S504)。通過以上處理,能夠從FT系統(tǒng)I分離可能產(chǎn)生了某種障礙的計算機節(jié)點10。并且,F(xiàn)T系統(tǒng)I整體能夠繼續(xù)正確的處理。(第3實施方式)第3實施方式不是像第I實施方式那樣由各跟隨進行輸出的正確與否判定,而是主導(dǎo)IOA進行各跟隨的輸出的正確與否的判定。圖20是表示第3實施方式的外部訪問執(zhí)行部的處理流程的一個示例的圖。首先,對各跟隨的處理流程進行說明。因為步驟S401 S402與圖15的處理流程一樣所以省略說明。本節(jié)點是跟隨時(S402:跟隨),將跟隨本身的輸出數(shù)據(jù)記載到輸出信息70,向主導(dǎo) IOA 發(fā)送(S421)。接下來,對本節(jié)點是主導(dǎo)時進行說明(S402:主導(dǎo))。主導(dǎo)IOA接收輸出信息70(S420)。輸出數(shù)據(jù)比較部33核對主導(dǎo)本身的輸出數(shù)據(jù)和各跟隨的輸出數(shù)據(jù)(S422)。輸出數(shù)據(jù)和主導(dǎo)IOA相同的跟隨的數(shù)量是多數(shù)(例如,半數(shù)以上)時(S423:是),輸出判定部33判斷為主導(dǎo)IOA的輸出數(shù)據(jù)正確,并向終端2發(fā)送該輸出數(shù)據(jù)(S406)。另一方面,輸出數(shù)據(jù)不同的跟隨的數(shù)量是多數(shù)(例如,半數(shù)以上)時(S423:否),輸出判定部33判斷為主導(dǎo)IOA本身有可能產(chǎn)生了某種障礙。因此,輸出判定部33停止主導(dǎo)的功能,請求跟隨們選出新的主導(dǎo)(S407 )。通過以上處理,主導(dǎo)IOA如圖15的處理流程一樣,不需要向跟隨發(fā)送輸出正確與否信息80。因此,能夠減輕計算機節(jié)點間的通信業(yè)務(wù)量。(第4實施方式)
第4實施方式將來自跟隨的追隨可否信息90的可否利用到主導(dǎo)IOA的輸出的正確與否的驗證中。圖21是表示第4實施方式的主導(dǎo)IOA的輸出的正確與否判定處理的流程圖。因為步驟S600 S602的處理與圖19的步驟S500 S502是一樣的處理,所以省略說明。追隨判定部34匯總追隨可否信息90的追隨可否標(biāo)記91,并當(dāng)“可”的追隨可否標(biāo)記91是多數(shù)時(S602 可”多),判斷為主導(dǎo)IOA的輸出數(shù)據(jù)是正確的,將該輸出數(shù)據(jù)發(fā)送給終端2 (S603)。對于判定為“不可”的跟隨,判斷為其有可能產(chǎn)生了某種障礙。因此,追隨判定部34從FT系統(tǒng)I分離該跟隨(S604)。另一方面,“不可”的追隨可否標(biāo)記91是多數(shù)時(S602 不可”多),判斷為主導(dǎo)IOA的輸出數(shù)據(jù)有可能不正確。不向終端2發(fā)送主導(dǎo)IOA的輸出數(shù)據(jù)。追隨判定部34請求跟隨們選出新的主導(dǎo),并且從FT系統(tǒng)I分離作為本節(jié)點的主導(dǎo)IOA (S605)。在以上處理中,由于各跟隨不需要向主導(dǎo)IOA發(fā)送輸出信息70,所以能夠減輕計算機節(jié)點間的通信業(yè)務(wù)量。上述的本發(fā)明的實施方式是用于說明本發(fā)明的示例,不是將本發(fā)明的范圍僅限定于各個實施方式的意思。本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明的宗旨的情況下可以用其他的各種各樣的方式實施本發(fā)明。本實施方式例如能夠以以下方式表現(xiàn)?!N由多個計算機節(jié)點構(gòu)成的計算機系統(tǒng),上述多個計算機節(jié)點中的I個計算機節(jié)點是第I計算機節(jié)點,上述第I計算機節(jié)點具有:執(zhí)行部,其執(zhí)行預(yù)定的請求,并生成輸出數(shù)據(jù);以及輸出判定部,其向其他計算機節(jié)點詢問上述輸出數(shù)據(jù)是否正確,當(dāng)從預(yù)定的數(shù)量的其他計算機節(jié)點得到了正確的意思的答復(fù)時,判定為上述輸出數(shù)據(jù)正確。此外,本實施方式例如還能夠以以下方式表現(xiàn)。—種由多個計算機節(jié)點構(gòu)成的計算機系統(tǒng),上述多個計算機節(jié)點中的I個計算機節(jié)點是第I計算機節(jié)點,上述多個計算機節(jié)點中的除上述第I計算機節(jié)點以外的其他計算機節(jié)點是第2計算機節(jié)點,上述第I計算機節(jié)點和上述第2計算機節(jié)點分別具有:執(zhí)行部,其執(zhí)行預(yù)定的處理,并生成輸出數(shù)據(jù);以及輸出判定部,其判定輸出是否正確,上述第I計算機節(jié)點在本節(jié)點的上述執(zhí)行部中,執(zhí)行預(yù)定的處理并生成第I輸出數(shù)據(jù),上述第I計算機節(jié)點在本節(jié)點的輸出判定部中,向上述第2計算機節(jié)點詢問上述第I輸出數(shù)據(jù)是否正確,當(dāng)從預(yù)定數(shù)量的上述第2計算機節(jié)點得到了正確的意思的答復(fù)時,判斷為上述第I輸出數(shù)據(jù)正確,上述第2計算機節(jié)點在本節(jié)點的上述執(zhí)行部中,執(zhí)行與在上述第I計算機節(jié)點執(zhí)行的預(yù)定處理相同的處理,并生成第2輸出數(shù)據(jù),上述第2計算機節(jié)點在本節(jié)點的輸出判定部中接受來自上述第I計算機節(jié)點的詢問,判定上述第I輸出數(shù)據(jù)和上述第2輸出數(shù)據(jù)是否是同樣的結(jié)果,判定結(jié)果是肯定時,向上述第I計算機節(jié)點傳送上述第I輸出數(shù)據(jù)是正確的意思的答復(fù)。符號說明1:容錯系統(tǒng)2:終端10:計算機節(jié)點IOA:主導(dǎo)10BU0C:跟隨
權(quán)利要求
1.一種計算機系統(tǒng),其是多個計算機節(jié)點經(jīng)通信網(wǎng)絡(luò)而連接的計算機系統(tǒng),其特征在于, 上述多個計算機節(jié)點中的I臺計算機節(jié)點是主導(dǎo)計算機節(jié)點, 上述多個計算機節(jié)點中的除上述主導(dǎo)計算機節(jié)點以外的其他計算機節(jié)點是跟隨計算機節(jié)點, 上述主導(dǎo)計算機節(jié)點和上述跟隨計算機節(jié)點分別執(zhí)行同一任務(wù), 上述主導(dǎo)計算機節(jié)點和上述跟隨計算機節(jié)點分別具有: 通信接口部,其經(jīng)通信網(wǎng)絡(luò)而與其他計算機節(jié)點進行通信; 存儲部,其用于存儲數(shù)據(jù); 訪問執(zhí)行部,其根據(jù)上述任務(wù)執(zhí)行對上述存儲部的訪問請求;以及 執(zhí)行結(jié)果判定部,其用于判定通過上述訪問執(zhí)行部執(zhí)行的執(zhí)行結(jié)果是否正確, 上述主導(dǎo)計算機節(jié)點在本節(jié)點的訪問執(zhí)行部中,根據(jù)由第I任務(wù)請求的第I訪問請求來生成第I輸出數(shù)據(jù), 上述主導(dǎo)計算機節(jié)點在本節(jié)點的輸出判定部中,向上述跟隨計算機節(jié)點詢問上述第I輸出數(shù)據(jù)是否正確,當(dāng)從預(yù)定數(shù)量的上述跟隨計算機節(jié)點得到了正確的意思的答復(fù)時,判斷為上述第I輸出數(shù)據(jù)正確, 上述跟隨計算機節(jié)點在本節(jié)點的訪問執(zhí)行部中,根據(jù)由與上述第I任務(wù)進行同樣的處理的第2任務(wù)請求的第2訪問請求來生成第2輸出數(shù)據(jù), 上述跟隨計算機節(jié)點在本節(jié)點的輸出數(shù)據(jù)判定部中,接受來自上述主導(dǎo)計算機節(jié)點的詢問,判定上述第I輸出數(shù)據(jù)和上述第2輸出數(shù)據(jù)是否是同樣的數(shù)據(jù),在判定結(jié)果為肯定時,向上述主導(dǎo)計算機節(jié)點發(fā)送上述第I輸出數(shù)據(jù)正確的意思的答復(fù)。
2.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其特征在于, 上述多個計算機節(jié)點還具有經(jīng)上述通信接口部從外部裝置接收輸入數(shù)據(jù)的外部訪問執(zhí)行部, 上述主導(dǎo)計算機節(jié)點在本節(jié)點的外部訪問執(zhí)行部中,向上述跟隨計算機節(jié)點發(fā)送所接收到的輸入數(shù)據(jù), 上述跟隨計算機節(jié)點在本節(jié)點的訪問執(zhí)行部中,將從上述主導(dǎo)計算機節(jié)點發(fā)送的輸入數(shù)據(jù)通知給任務(wù)。
3.根據(jù)權(quán)利要求1或2所述的計算機系統(tǒng),其特征在于, 上述主導(dǎo)計算機節(jié)點的訪問執(zhí)行部按預(yù)定順序執(zhí)行多個訪問請求時,上述跟隨計算機節(jié)點的訪問執(zhí)行部按與上述主導(dǎo)計算機節(jié)點的訪問執(zhí)行部相同的順序執(zhí)行與上述主導(dǎo)計算機節(jié)點的訪問執(zhí)行部所執(zhí)行的訪問請求進行同樣的處理的訪問請求。
4.根據(jù)權(quán)利要求1或2所述的計算機系統(tǒng),其特征在于, 當(dāng)從半數(shù)以上的上述跟隨計算機節(jié)點得到輸出數(shù)據(jù)正確的意思的答復(fù)時,上述主導(dǎo)計算機節(jié)點的輸出判定部判斷為該主導(dǎo)計算機節(jié)點的訪問執(zhí)行部所生成的輸出數(shù)據(jù)是正確的。
5.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其特征在于, 上述多個計算機節(jié)點還具有追隨判定部,該追隨判定部對上述跟隨計算機節(jié)點的訪問執(zhí)行部能否與上述主導(dǎo)計算機節(jié)點的訪問執(zhí)行部執(zhí)行同樣的處理進行判定,上述跟隨計算機節(jié)點的追隨判定部對上述跟隨計算機節(jié)點中執(zhí)行的訪問請求和上述主導(dǎo)計算機節(jié)點中執(zhí)行的訪問請求的某一個是否是對應(yīng)關(guān)系進行判定,并當(dāng)判定結(jié)果是肯定時,向上述主導(dǎo)計算機節(jié)點發(fā)送能夠追隨的意思的通知,當(dāng)判定結(jié)果是否定時,向上述主導(dǎo)計算機節(jié)點發(fā)送不能夠追隨的意思的通知。
6.一種數(shù)據(jù)處理方法,其特征在于, 多個計算機節(jié)點經(jīng)通信網(wǎng)絡(luò)而連接,上述多個計算機節(jié)點中的I臺計算機節(jié)點是主導(dǎo)計算機節(jié)點, 上述多個計算機節(jié)點中的除上述主導(dǎo)計算機節(jié)點以外的其他計算機節(jié)點是跟隨計算機節(jié)點, 上述主導(dǎo)計算機節(jié)點和上述跟隨計算機節(jié)點分別執(zhí)行同一任務(wù), 上述主導(dǎo)計算機節(jié)點具有以下步驟: 在本節(jié)點中,根據(jù)由第I任務(wù)請求的第I訪問請求來生成第I輸出數(shù)據(jù);以及在本節(jié)點中,向上述跟隨計算機節(jié)點詢問上述第I輸出數(shù)據(jù)是否正確,當(dāng)從預(yù)定數(shù)量的上述跟隨計算機節(jié)點得到了正確的意思的答復(fù)時,判斷為上述第I執(zhí)行結(jié)果正確, 上述跟隨計算機節(jié)點具有以下步驟: 在本節(jié)點中,根據(jù)由與上述第I任務(wù)進行同樣的處理的第2任務(wù)請求的第2訪問請求來生成第2輸出數(shù)據(jù);以及 在本節(jié)點中,接受來自上述主導(dǎo)計算機節(jié)點的詢問,判定上述第I輸出數(shù)據(jù)和上述第2輸出數(shù)據(jù)是否是同樣的數(shù)據(jù),判定結(jié)果是肯定時,向上述主導(dǎo)計算機節(jié)點發(fā)送上述第I輸出數(shù)據(jù)是正確的意思的答復(fù) 。
7.一種數(shù)據(jù)處理程序,其特征在于, 多個計算機節(jié)點經(jīng)通信網(wǎng)絡(luò)而連接,上述多個計算機節(jié)點中的I臺計算機節(jié)點是主導(dǎo)計算機節(jié)點, 上述多個計算機節(jié)點中的除上述主導(dǎo)計算機節(jié)點以外的其他計算機節(jié)點是跟隨計算機節(jié)點, 上述主導(dǎo)計算機節(jié)點和上述跟隨計算機節(jié)點分別執(zhí)行同一任務(wù), 上述主導(dǎo)計算機節(jié)點中執(zhí)行的計算機程序具有以下步驟: 在本節(jié)點中,根據(jù)由第I任務(wù)請求的第I訪問請求來生成第I輸出數(shù)據(jù);以及在本節(jié)點中,向上述跟隨計算機節(jié)點詢問上述第I輸出數(shù)據(jù)是否正確,當(dāng)從預(yù)定數(shù)量的上述跟隨計算機節(jié)點得到了正確的意思的答復(fù)時,判斷為上述第I輸出數(shù)據(jù)正確, 上述跟隨計算機節(jié)點中執(zhí)行的計算機程序具有以下步驟: 在本節(jié)點中,根據(jù)由與上述第I任務(wù)進行同樣的處理的第2任務(wù)請求的第2訪問請求來生成第2輸出數(shù)據(jù);以及 在本節(jié)點中,接受來自上述主導(dǎo)計算機節(jié)點的詢問,判定上述第I輸出數(shù)據(jù)和上述第2輸出數(shù)據(jù)是否是同樣的數(shù)據(jù),判定結(jié)果是肯定時,向上述主導(dǎo)計算機節(jié)點發(fā)送上述第I輸出數(shù)據(jù)是正確的意思的答復(fù)。
全文摘要
實現(xiàn)在多個計算機中同步地執(zhí)行多個任務(wù)的計算機系統(tǒng)。主導(dǎo)計算機和跟隨計算機分別執(zhí)行同一任務(wù),主導(dǎo)計算機根據(jù)由第1任務(wù)請求的第1訪問請求來生成第1輸出數(shù)據(jù),并向跟隨計算機詢問第1執(zhí)行結(jié)果是否正確,當(dāng)從預(yù)定數(shù)量的上述跟隨計算機得到了正確的意思的答復(fù)時,判斷為第1輸出數(shù)據(jù)正確,跟隨計算機根據(jù)由與第1任務(wù)進行同樣處理的第2任務(wù)請求的第2訪問請求來生成第2輸出數(shù)據(jù),跟隨計算機接受來自主導(dǎo)計算機的詢問,判定第1執(zhí)行結(jié)果和第2輸出數(shù)據(jù)是否是同樣的結(jié)果,判定結(jié)果是肯定時,向上述主導(dǎo)計算機發(fā)送第1輸出數(shù)據(jù)是正確的意思的答復(fù)。
文檔編號G06F11/18GK103180832SQ20118005099
公開日2013年6月26日 申請日期2011年3月23日 優(yōu)先權(quán)日2011年3月23日
發(fā)明者高田有時 申請人:株式會社日立制作所