分布式處理系統和方法
2023-06-09 01:32:06 2
專利名稱:分布式處理系統和方法
本發明涉及一種分布式處理系統和方法。在這種系統中,使用多個處理機,以分布方式執行順序處理,用以有效地實現故障檢測,並能以識別屬於相同處理的重複數據。
在本發明人剛剛提出申請的美國專利4,627,055中,敘述了一種分布式處理方法。該方法用於通過使用多個由傳輸線聯結的處理機,以分布方式執行的順序處理。在這種方法中,把程序分布並存貯在各個處理機中,去執行順序處理的各個區段;並且,當執行該程序所需要的所有數據通過傳輸線全部被接收到適當的處理機中去時,進行每個處理機的程序啟動。雖然這種方法通過各個處理機的分布處理能夠完成順序處理,而且這些處理機中的每一個實際上都執行該處理的一個區段而無需為控制整個系統的控制處理機,但是它不能給出在發生故障時,用於分析(指導故障檢測)故障原因所必要的收集該系統操作全過程歷史數據的裝置。因此,這就給該系統的維修帶來了困難。
另外,某些常用作業系統(os),在一些情況下,具有收集系統操作全過程歷史數據的功能,但收集的對象僅僅包括裝有適當的OS的處理機操作歷史過程。然而,這在使用多個處理機以分布方式執行順序處理的分布式處理系統中要完成故障檢測是遠遠不夠的。
日本專利特許公開57-175239公開了一種方法。在這種方法中,當存在有多個處理機執行同樣的處理時,不是通過從這些處理機的各個處理執行結果中,採用選中的真值去操作,而是只將真值送往傳輸網絡,這些處理執行結果送往傳輸網格時,無需在其上進行任何引導操作,而且在接收方的每個處理機從網絡消息中選擇屬於相同處理的消息,並用於適當的處理機,以致根據大多數判斷邏輯在接收方的處理機中選擇真值。根據這種方法,在一個確定的信息計數時間周期內,把具有相同內容代碼(指數據內容)的消息收集起來。所以,這種收集是根據計數的結果,因此它是根據大多數判斷邏輯來判斷真值的。上述的發明提供了一種靈活的選中方法。該方法不需要提前確定一個處理機,把它的輸出接收過來,再送給所選中的處理機。
在現有技術採用的方法中,消息包括指示其內容的代碼,根據大多數判斷邏輯,從收集這些消息起始的一段時間周期內,把與代碼相匹配的那些消息收集起來,認為它們是屬於相同處理的消息。然而,在這種方法中,由於屬於相同處理的消息,僅僅由指示每個消息的代碼來識別,所以在一個比用於收集消息的時間周期更短的一段時間周期內,由不同的觸發器來起動用於執行相同處理的處理機時,就出現了不能識別出與不同的觸發器相聯結的輸出消息的問題。
因此,本發明的目的是提供一種分布式處理系統和方法,並且它是採用相互對應的處理機,以分布形式執行各個順序處理,而不需要控制處理機控制整個系統,從而有效地實現故障檢測並能夠識別屬於相同處理的重複數據。
為實現該目的,根據本發明,採用通過傳輸通路聯結的多個處理機以分布型處理作業的順序執行的分布式處理系統,包括一個向傳輸通路傳送含有與分布處理系統相聯結的處理機所指定的內容代碼信息的步驟,一個把帶有內容代碼信息的傳輸通路上的信息送到處理機上去的步驟,以及一個為在每一個存有內容代碼的存貯數據和每一個處理機中的程序之間建立起對應關係的步驟,以此取得與順序處理流程相對應的信息。此外,本發明的特徵是把所接收到的消息中的事件數和在先接收到的消息中的事件數進行比較,並藉此測定屬於相同處理的重複消息。
本發明通過對附圖的下述詳細說明將會得到更加清楚的理解。其中,圖1表示本發明實施方案的系統結構方框圖。
圖2,圖4(b)和圖10(a)表示在該實施方案中所傳輸信息的信息格式。
圖3和圖4(a)是根據本發明描述的處理機結構及處理流程的方框圖。
圖5(a)和圖5(b)表示根據本發明的操作流程圖。
圖6(a)-8(b)是用於解釋根據本發明的處理記錄方法的說明圖。
圖9,圖10(a)和10(b)表示處理記錄模塊的處理流程圖。
圖11(a)-11(c)是根據本發明說明整個操作流程的說明性操作圖。
圖12是表示使用本發明的系統結構圖。
圖13是表示根據本發明所傳輸消息的消息格式圖。
圖14(a)-14(b)是用於解釋表結構的說明性附圖,以及圖15-18是表示根據本發明在每個處理機中說明處理流程的流程圖。
下面參照附圖詳細描述本發明的第一個實施方案。圖1是該第一個實施方案完整的系統結構圖。在該實施方案中,雖然是利用環路傳輸線為例解釋聯結各個處理機的傳輸通路,但在通常情況下,既使採用任何傳輸媒介的網絡,其處理也是一樣的。
圖1所示系統包括處理機11-16,其中的每個處理機都在存貯器中存貯了一個將被執行的應用程式,以及能夠作雙向傳輸的雙向環路傳輸線1。標示號1001-1006指示用於在傳輸線上控制數據傳輸的網絡控制處理機(NCP)。這些NCP1001-1006及處理機11-16彼此可以雙向聯絡。把處理機11-16的處理結果(數據)通過NCP1001-1006傳送到傳輸線1。這些NCP1001-1006中的每個處理機判斷流經傳輸線1的數據對於連接到它那裡的處理機來說,是否是必須要的數據。僅僅當判斷該數據是必須要的數據時,才把該數據送往連接到NCP的處理機。當把執行應用程式所必要的全部數據完全收集起來時,處理機11-16中的每個處理機才啟動存貯在之中的應用程式。所啟動的程序採用這些數據執行它自己的處理。
在這個實施方案中,假設本發明的數據記錄操作是用處理機14完成的,而且把CRT控制臺14000和數據記錄文件14001連接到處理機14上。此外,把外部輸入設備1000和外部輸出設備1002連接到處理機11上。這樣,通過外部輸入設備1000從外部處理中取得數據,通過外部輸出設備1002把數據再傳送給外部處理。
圖2表示通過傳輸線1的數據格式。內容代碼FC202是對應於數據的內容或功能的代碼。每個NCP根據內容代碼判斷確定對於連接到NCP的處理機來說所接收的數據是否是必要的數據。SA203指示傳送過來的數據的NCP地址(源地址),而C204是對於傳輸來講必要的序列數號,數據206是應用程式,FCS207指示用於錯誤檢測的數據,F201和F208分別是指示消息開始和結束的標誌。另外,EN205是處理等級的序號,它包括處理機序號和數據生成的序號,下面將它稱為事件號。
圖3的方框圖表示圖1所示處理機11的內部裝置。處理機12-16也具有相同的配置。採用傳輸控制單元101完成NCP1001和處理機11之間的數據傳輸,並且把從NCP1001中接收到的數據存貯在接收緩衝器102之中。當把數據從發送緩衝器103送往NCP時,在發送緩衝器103中的這個數據對於其固有處理機中的應用程式來講是必要的情況下,該數據也同時放入接收緩衝器102。用處理單元104控制應用程式1081-1083的執行。固有處理機號存貯區域106是用於存貯唯一分配給每個處理機號的區域,而序號區域107用作數據生成計數器。另外,外部輸入控制單元109是接收其中來自外部設備10001輸入的單元。此外,此表110相對應的外部輸入FC是一個用於存貯外部輸入數據內容代碼的區域。輸入/輸出數據存貯區域105用來存貯用於每個應用程式的輸入/輸出數據。配備外部輸出控制單元111在處理機11和外部輸出設備10002之間提供接口,藉助這個接口,向外部輸出設備10002輸出數據。
圖4(a)示出輸入/輸出數據存貯區域105的內容。該區域的第一行1051存貯用於應用程式1081的輸入/輸出數據。其中,欄位10511和10513分別存貯輸入和輸出數據。
此外,啟動程序區域10512指示將要由存貯在欄位10511中的輸入數據啟動的程序(即1081)。第二行1052用來存貯用於應用程式1082中的輸入/輸出數據。在其他的行中,類似地,把這些輸入/輸出數據存貯區域和啟動程序區域分配給各個應用程式。
圖4(b)的方框圖示出輸入/輸出數據存貯區域10511的格式。首先把輸入數據的內容代碼送到區域105111。用區域105112作為指示數據是否已經存貯的標誌,安排區域105113存貯事件數號,而區域105114實際存貯數據。並且,輸出數據存貯區域也具有相同的格式。
圖5(a)示出處理單元(圖3的104)中的處理內容。數據從接收緩衝器(圖3的102)中取出,然後事件號(EN)和數據欄位(數據)存貯在輸入/輸出數據存貯區域(圖3的105)中的輸入數據存貯區域(圖3的105)之中;為此,將置入輸入數據存貯區域的FC和數據(501)中的FC相匹配。接著,該系統判斷是否存在可執行的應用程式,也就是說,判斷是否已經把執行該應用程式所必要的全部數據存入到這個輸入數據存貯區域(502)之中了。如果是這種情況,即直接把對應於該應用程式的輸入數據存貯區域中的事件號區域(EN)的內容存入相應於該程序的輸出數據存貯區域的事件號區域(EN)之中了。在這種情況下,對於將要由具有不同事件號的多個輸入數據來啟動的一個應用程式來講,在輸出數據存貯區域中,就有已分配了的一個事件號區域的予先確定號;這樣,就要把所有輸入數據的事件號都存貯在輸出數據存貯區域的事件號區域之中。然而,在區域的予先確定號過大的情況下,則根據予先確定的標準進行處理,例如刪除從最早事件號開始的事件號。在把應用程式的輸出數據已經存入輸出數據存貯區域的情況下,則把該事件號置入發送緩衝器。
圖5(b)示出外部輸入控制單元(圖3的109)進行處理的示意圖。在發生外部輸入的時候,該外部輸入控制單元根據外部輸入FC對應表(圖3的110)判斷輸入數據的內容代碼,並且把由輸入數據內容及外部輸入FC表(550)判斷出來的內容代碼置入發送緩衝器(圖3的103)。接著,再把固有處理機號區域(圖3的106)的內容及序號區域(圖3的107)的內容置成偶數。然後,再把序號區域的內容加1(552)。
以下參照圖6(a)-10描述本發明的處理記錄方法。圖6(a)示出要在處理機(圖1的14)中被加載的記錄模塊的結構。該記錄模塊是由用於存貯記錄數據的文件14001,用於在文件內存貯記錄數據的程序EA1(601)及用於檢索數據的程序EA2(602)構成的。圖6(b)示出輸入數據存貯區域(40511-405t1)及處理機14的輸入/輸出數據存貯區域的啟動程序區域(40512-405t2)的內容。由於要求程序EA1通過傳輸線接收並記錄數據,所以要把在系統中用到的所有內容代碼(FC1-FCn)都置入輸入數據存貯區域40511-405n1,並且把程序EA1寄存到分別對應於內容代碼的啟動程序區域40512-405n2上去。此外,程序EA2由包括功能代碼FCt的數據啟動,從而輸出該記錄結果(405t1-405t2)。
下面,參照圖7-10描述圖6所示的記錄模塊的處理內容。
圖7示出記錄數據文件14001的內容。如下所述之,這個文件是提前予置的。這個文件包括表示該系統中程序結構的結構表7000及用於每個FC的記錄區域7500。結構表7000指示置入各個處理機的應用程式及在應用程式之間的輸入/輸出關係。
結構表包括用於各個處理機的表701-706。表701-706對應於各處理機(分別為圖1中的11-16),並且由對它們指定的序號(處理機序號)來鑑別。下面描述表701的結構。表702-706也具有相同的結構。表701包括指定給處理機11(圖1)的用於存貯處理機序號的區域7011,用於存貯置入處理機11的程序號的區域7012,以及用來存貯用於各個程序輸入/輸出數據的區域7013,7014等。記錄區域7500由用於存貯在該系統中所使用的FC(FC1-FCn)這些數據的緩衝器7501-7502構成。每個緩衝器都具有循環緩衝器的結構,並且被指定一個序號(記錄序號)。下面說明在結構表中的輸入數據信息70131及輸出數據信息70132的內容。輸入數據信息70131包括輸入FC701310,上流指示器701311,以及FC記錄區域指示器101312。上流指示器指示在輸出該輸入FC701310的程序結構表中的一個位置,並且它包括處理機序號及上流程序位置的模塊序號。FC記錄區域指示器701312指示緩衝器的位置。在該緩衝器中,記錄輸入FC701310,更具體地說,是向該緩衝器置入記錄序號。此外,輸出數據信息70132,同樣地,也包括有輸出FC701320,下流程序指示器701321,以及FC記錄區域指示器701322。這裡,下流程序指示器701321指示在輸入該輸出FC701320的程序結構表中的位置,並且它與上流程序指示器的情況相類似,也包括一個處理機序號及模塊序號。利用這個文件,這些程序確定每個程序的上流及下流,也就是說,可以取得程序之間的關係,並且同時還可以參照用於每個程序的輸入/輸出數據上的記錄區域。
圖8(a)-8(b)示出與本系統相結合的應用程式的一個例子。圖8(a)示意性地說明了程序間的關係。具有輸入設備i10001的處理機輸出包括內容代碼FC1和事件號E1的數據851,並且把這個數據輸入給程序A1802和程序A2803。程序A1處理數據851,並將其輸出作為包括內容代碼FC2和事件號E1的結果數據852。程序A2通過使用數據851-852實現處理並輸出包括內容代碼FC3和事件號E1的數據853。把數據853再輸入給程序A3804及程序A4805。程序A3直接在它的文件中存貯輸入數據。程序A4輸出包括內容代碼FC4的數據,而後把這個數據通過輸出設備O 10002,向外部傳送。圖8(b)表示在具有該程序結構的系統中,實際的數據流程。在此,把程序A1加到圖1所示的處理機12上,並且把程序A2,A3和A4分別加到處理機13,15和16上。此外,把記錄程序EA1和EA2加到處理機14上。在該圖中,程序EA1由流程傳輸線的數據851-854啟動,並在記錄文件14001中存貯每個數據。
進而,例如,在響應來自CRT14000的操作者請求當中,程序EA1則向CRT14000輸出記錄文件14001的內容。程序EA1及EA2的處理內容,將參照圖9-10進行說明。
圖9表示程序EA1(圖6的601)的處理內容。當啟動時,程序EA1判斷輸入數據的內容代碼(901),並把該數據存貯在記錄區域內(圖7的7500)含有對應內容代碼的循環緩衝器之中(902)。
圖10(a)-10(c)表示程序EA2(圖6的602)的處理內容。首先,圖10(a)表示數據欄位及程序EA2數據(圖2的206)的格式。數據欄位包括處理機號2061,輸入FC2062,以及作為在系統中指定程序的信息的輸出FC2063。圖10(b)-10(c)用於解釋程序EA2的處理。由圖10(a)中的數據啟動的程序EA2,首先指定在其啟動數據(1101)的數據欄位中所指出的程序結構表(圖7的7000)裡的一個位置,而後再向計數器K置1。接著,程序EA2根據結構表進行判斷,從而確定對於在程序步1101上所指定的程序來講是否存在有輸入數據(1103)。如果存在有輸入數據,那麼,程序EA2則把在緩衝器中對應於數據內容代碼的FC記錄區域(圖7的7500)中的第K項數據取入固有區域(1104)。此外,指定就目標程序而言,定位成上流的程序;並根據結構表來判斷用於該程序的輸入數據是否存在(1106)。如果這個輸入數據存在,那麼就在對應於該數據內容代碼的FC記錄區域緩衝器之中搜索其事件號等於在該程序步1104上所取數據事件號的那個數據,並且把所獲得的數據取入固有區域(1107)。處理程序步1105-1107反覆執行,直到對於該程序來講,不存在有輸入數據為止;也就是說,從在開始啟動數據中指定的程序開始,就檢查上流程序,從而在該系統中順序地存貯數據。當在程序步1106上不存在輸入數據時,則控制返回到圖10(c)的處理1108上。也就是說,根據結構表來判斷對於在開始數據中指出的程序而言,是否存在有輸出數據。如果這個輸出數據存在,那麼就在對應於該數據內容代碼的FC記錄區域緩衝器中搜索其事件號等於該程序步1104上所取數據事件號的那個數據,並且把所獲得的數據取入固有區域(1109)。進而,指定確定為目標程序下流的程序(1110),並根據結構表來判斷是否存在有輸出數據(1111)。如果存在有輸出數據,那麼就在對應於該數據內容代碼的FC記錄區域緩衝器中搜索其事件號等於該程序步1104上所取數據事件號的那個數據,並把所獲得的數據取入固有區域(1112)。處理程序步1110-1112反覆執行,直到不出現有輸出數據的程序為止。也就是說,從在啟動數據中指出的程序開始,在下流方向上實現檢查的過程中,把數據按順序地存貯在系統中。當在程序步1111上不存在輸出數據時,則就其在啟動數據中指出的程序而言,將存貯在固有區域中的數據向上流及下流方向擴展,並籍此在CRT上顯示數據或把數據輸出給印表機(圖10(b)的1113)。接著,把計數器K加1(1114),而後處理程序步1103-1114反覆執行,直到K值大於在緩衝器中對應於FC記錄區域內啟動數據程序的輸入數據內容代碼的那個數據數號為止。
通過上述處理,該系統可以取得記錄數據。在這種記錄數據中,由從其程序EA2的啟動數據中指定的程序裡輸出的數據所啟動的下流程序輸出的數據和在上流方向上取得的數據是彼此相關的。
在該實施方案中,雖然假設程序EA2的啟動數據是由操作人員從CRT鍵控敲入的,但是當處理機檢測其本身的程序故障時,可以把圖10(a)格式的數據送到傳輸線上。在這種情況下,進行故障檢測的同時,就已識別出故障的程序而言,上流及下流的數據,都記錄下來了。
在該實施方案中,對於要由多個數據啟動的模塊來講,假設每個輸入數據的事件號均是相同的;然而,事件號彼此可以是不相同的。在這種情況下,對於每個事件號來講,僅僅需要在上流方向執行處理,但處理的內容是不變的。
並且,除了僅用於程序信息的記錄的參數之外,還可以在程序EA2的起始數據中置入例如僅用於是上流、不用於下流和在上流和下流方向上直到第i項的記錄的參數。這樣就能獲得僅僅是順序處理必要部分的記錄結果。
在這個實施例中,雖然假定把數據記錄程序安裝在處理機14中,但是這個程序也可以被包括在一個任選的處理機中;此外可以安裝任選數量的數據記錄程序。
儘管已經說明了本發明的數據記錄方法的實施例,但是本發明不會受到這個實施例的限制,即當具有有效操作的程序段用對其加一個內容編碼的方法進行處理時,該程序段可以以相同的方式用信息匯集方法進行處理,因此本發明通常還適用於匯集信息和知識的方法。
根據本發明,該系統不但能匯集簡單的時序記錄,而且能匯集對應順序處理流程的,並且其中輸入/輸出關係彼此相關的信息和數據記錄。並且利用這種信息,可以有效地進行故障查找,這樣就改進了該系統的可維護性。
在本發明的第二個實施例中,每個連接到傳輸通路的處理機由下列裝置構成(1)用於從外部輸入設備接收的數據,產生具有標頭欄位和數據欄位的信息的裝置,標頭欄位含有指示從處理機本身和外部設備接收數據的數據接收順序的信息(稱為「事件號」),數據欄位含有從配備的外部設備接收的數據的內容;(2)對於從傳輸通路接收的消息,用於根據消息的內容引起一個處理和用於把輸入信息的標頭欄位內容(事件號)轉換成作為該處理的結果的要被輸出到傳輸通路的消息的標頭欄位的裝置。
因為用裝置(1)和(2)對相應的外部輸入數據(觸發)設置了不同的事件號,所以可以通過判斷事件號來識別與不同的觸發相關的消息。
下面將參看圖11至圖18對本發明的第二個實施例進行說明。參看圖12和圖13,對本發明所適用的系統的配置進行說明。在下述的實施例中,雖然連接處理機的公用傳輸線用單迴路傳輸線進行說明,但是既使當採用雙迴路型、總線型、環形迴路型的網絡或通常採用具有任何傳輸方式的網絡時,該處理也不改變。
在圖12中,參考號11至14表示處理機,這些處理機象在第一個實施例中的處理機一樣用於把應用程式存儲在其內部存儲器中以便執行,參考號1是用於按箭頭所指方向傳輸的單向迴路傳輸線,參考號21至24表示用於控制在傳輸線上傳輸數據的網絡控制處理機(NCP)。網絡控制處理機21至24中的每一個都雙向連接到處理機11至14中的每一個上。處理機11至14的處理結果(消息)通過網絡控制處理機21至24判斷在傳輸線上傳送的消息對連接到傳輸線上的處理機是否必需發送,如果必需就把這個消息發送給該處理機。當所有執行應用程式必需的信息全部匯集時,處理機11至14中的每一個處理機就啟動其存儲的該應用程式。利用這些數據,一個起始程序執行處理,並且把一個消息作為該處理的結果輸出。此外,在本實施例中,採取把處理機11連接到外部輸入/輸出設備10001上的方式,以便通過外部設備執行輸入/輸出操作。
圖13表示在傳輸線上傳送的消息的格式。FC32是對應數據的內容和操作的內容編碼。每個網路控制處理機都根據該內容編碼來判斷接收的數據對連接到那裡的處理機是否必需。SA33是發出該數據的網絡控制處理機的地址(原地址),C34是傳輸所需的序號Data36表示由每個應用程式執行的處理結果的內容,FCS37是用於故障檢測的數據,F31和F38分別是表示消息開始和結束的標記。此外,EN35是根據本發明設置的處理層次的序號,以下稱為事件號。事件號區域包括處理機編號3511、3521等的予定編號和與消息形成系列編號3512、3522等的相同編號。每一對處理機編號和消息形成號(用1和351,2和352等等)為一個單元,該單元以下稱為事件號單元。
除去當外部輸出設備10002不必要時可以把外部輸出控制器111省去之外,圖12的處理機11至14中每一個的內部配置都和圖3中所示的配置相似。
圖14(a)表示如圖14輸入/輸出數據存儲區域105的內容。該區域的第1行1051用於存儲與應用程式1081相關的輸入/輸出消息。區域10511和10513分別存儲輸入消息和輸出消息。起始程序區域10512指示一個要被存儲在區域10511中的輸入消息起動的程序(即1081)。有多少個配置的欄位,事件號存儲區域10514就對應輸入消息的內容編碼存儲多少個在先輸入消息的事件號,也就是說在任何情況下,從事件號存儲區域10514的頂層開始都存儲著予定數量的在先接收到的輸入消息事件號。第2行1052是用予存儲應用程式1082的輸入/輸出消息的區域。對於其後的區域,輸入/輸出存儲區域以相同方式分配給每一個應用程式。圖14(b)示出了輸入消息存儲區域105111的格式。對於區域10511,已經予先設置了輸入消息的內容編碼。區域105112用作指示輸入消息是否已經存儲的標記,區域105113存儲一個事件號,而區域105114存儲該消息數據欄位的內容。在一個應用程式由多個輸入消息起動的情況下,對於每個消息都分配區域105111至105114。附帶指出,輸出數據存儲區域具有相同的格式。
參看圖15至圖18,下面將根據本發明說明重複信息處理方法。
圖15示出了當消息輸入到圖3中的處理部件104時的處理流程圖。根據本發明,處理機一旦接收到來自圖3中接收緩衝器102的消息就首先執行重複消息處理(9601)。然後檢驗是否存在可執行應用程式,也就是說檢驗對執行應用程式所必需的所有輸入消息是否都已經存儲在圖3的輸入/輸出數據存儲區域105中(9602)如果沒有這樣的可執行程序,該處理立即結束。如果有一個可執行程序,對應該程序在圖14的輸入數據存儲區域中的事件號區域EN中的內容就直接存儲到對應該程序在輸出數據存儲區域中的事件號區域EN之中(9603)。
對於要由具有不同事件號的多個輸入消息起動的一個應用程式,在輸入消息中置入各自的事件號區域的事件號單元被全部置入輸出數據存儲區域中的事件號區域。但是如果輸入消息的事件號單元的總量超過事件號區域的容量,就根據予定的規則執行處理,例如從具有最小序號的事件號單元開始刪除事件號單元。處理9603結束之後,起動可執進程序(9604),並且在該程序的執行完成之後,對輸入數據存儲區域中的標記欄位(參看圖14)的內容進行復位。
被起動的應用程式利用輸入消息執行其本身的處理,把處理結果置入輸出數據存儲區域的數據欄位(數據),並且將指示該數據已經置入的標記置「1」。此外,如果該數據已被置入輸出數據存儲區域的數據欄位,處理機就把FC、EN和數據欄位的內容置入圖3中發送緩衝器103的相應區域。
圖16是外部輸入控制單元的處理流程圖。有外部輸入時,圖3的外部輸入控制器109對應圖3的表10根據外部輸入FC判斷該輸入數據的內容編碼,並且把該外部輸入數據-其內容和對應表根據外部輸入FC判斷出的一個內容編碼置入圖3的發送緩衝器103中(9701、9702)。接著根據圖3的處理機本身的編號區域106和序號區域107的內容產生一形成事件號單元,並把該事件號單元作為輸出消息的事件號置入發送緩衝器(9703)。然後序號區域的內容加1(9704)。
圖17是圖15的重複消息處理9601的具體處理流程圖。該系統判斷從接收緩衝器接收的消息中的事件號是否與一個在先的消息的事件號相等,該在先的消息具有與目標消息相同的內容編碼(9801)。更具體地說,對輸入/輸出數據存儲區域〔圖14(a)〕進行檢索,以便把在輸入數據存儲區域〔圖14(b)〕的FC欄位中置有等於剛接收的消息內容編碼的編碼的一行查找出來。然後該系統判斷剛接收消息的事件號的值是否存儲在找到的那一行的事件號存儲區域中。如果情況是這樣,因為對於一個在先輸入的消息來說剛輸入的消息是多餘的,所以該件理立即結束,不把從接收緩衝器接收的消息置入輸入數據存儲區域(9802)。即因為該消息對於在先接收的消息來說是多餘的,所以把它刪去了。另一方面,如果失去這種滿足相等條件的消息,就認為該消息是第一次被接收,因此要把該消息的事件號欄位(EN)和數據欄位(Data)的內容置入數據存儲區域的EN和Data欄位〔圖14(b)〕,並把相應消息的內容編碼置入該輸入數據存儲區域。並且對標記欄位置「1」(9803)。接著把剛接收輸入消息的事件號的內容作為最新消息的事件號加到輸入/輸出數據存儲區域的事件號存儲區域。在這種情況下,如果存儲的事件號的數量超過預定的數量,就把最舊的事件號從在先存儲的那些事件號中刪除(9804)。
本發明的重複消息處理是通過上述的處理實現的。下面參看圖11(a)和圖11(b)說明該處理的總流程圖。圖11(a)示出了系統配置和處理流程圖,圖11(a)中的系統配置與圖2中的系統配置相同。假定在處理機11-14中包括應用程式108、108′和108″,而且處理機12和13的程序108′和108″分別是完全相同的。在這裡假定處理機11從外部輸入設備10001接收數據。處理機11把內容編碼FC和事件號EN1置入來自外部輸入設備的數據中,以圖1B的格式形成消息9001,並把該消息發送到傳輸線1上。附帶指出,該格式與圖3中所示的格式一致。處理機12接收消息9001,然後啟動自身的應用程式108′,該應用程式利用消息9001執行其處理,並輸出DATA2和內容編碼FC2作為結果。該處理機把輸入消息9001的事件號E1加到從應用程式輸出的FC2和DATA2上,產生具有圖1B中所示格式的消息9002,並把該消息發送到傳輸線1上。處理機13也以與處理機12完全相同的方式接收消息9001,啟動其自身的應用程式108″,產生消息9003作為結果,並把該消息發送到傳輸線1上。在這種情況下,因為應用程式108′至108″是完全相同的,所以各自輸出的消息都包括相同的內容編碼FC2和數據欄位的相同的內容DATA2。並且因為這些程序都是通過消息9001起動的,所以輸出消息都包括事件號EN1。即根據本發明消息9002至9003是重複信息。現在假定消息9003首先被處理機14接收,那麼處理機14就接收消息9003,並起動其應用程式108″。接著假定消息9002被處理機14接收,那麼處理機14就接收消息9002;但是因為該消息的內容編碼FC2和事件號EN1與在先接收的消息9003的內容編碼和事件號相等,所以該消息被刪去不用。在消息9002先傳到處理機14的情況下,在相同的處理中在後接收的消息9003相反被刪去。
如上所述,根據本發明當在傳輸系統中有多個多餘的消息,而這些重複的消息之一最先被接收時,每個處理機都可以執行本身的程序處理;並且在這之後可不顧其後的重複消息。
上述的方法根據消息的接收順序僅從重複消息之中選擇出一個消息。相反,每個處理機都可以配有定時器和多餘消息存儲區域,此外圖15中步驟9601的重複消息處理部分中可以包括一個多數決定判斷邏輯,以便匯集重複的消息,並根據多數決定邏輯選擇出一個要使用的消息。圖9更具體地示出了對應圖15中步驟9601的處理的流程圖。對從接收緩衝器接收的消息,根據圖14(a)中的事件號存儲區域處理機實現事件號檢驗(9601)。該處理和圖17中步驟9801的處理相同。作為步驟9601中校驗的結果,如果得到多餘的消息,該處理立即結束。而作為步驟9601中校驗的結果,如果得到的消息不是多餘的消息,該系統判斷該消息的事件號是否與已經匯集在數據存儲區域的消息的事件號相等(9603)。如果它們彼此相等,該消息就直接存儲到數據存儲區域中(9905);否則就置位定時器(9904),然後再把該消息存儲到數據存儲區域中(9905)。此外,在步驟9904中置位的定時器報告超時的那個時間點,在多餘消息存儲區域中的對應多餘消息之中進行多數決定判斷(9906)。選擇出的消息被置入輸入數據存儲區域(9907),並且該消息的事件號被置入事件號存儲區(9908)。處理步驟9907至9908與圖17中的步驟9803至9804相同。
在這種方法中,雖然多數決定判斷是在發生超時的那一時刻產生的,但是多數決定判斷也可以在匯集了一個予定編號的多餘消息那一時刻進行。
在使用上述的多數決定判斷方法的情況下,如果至少提供執行相同處理程序的三個處理機,那末就可以確定一個引起產生異常消息的處理機。
根據本發明,每一個連接到網絡上的處理機都在通過網絡傳送的冗長信息之中對多餘消息進行識別,並且能根據其本身的邏輯去選擇一個多餘的消息,從而執行其過程。因此,通過把本發明的方法結合到構成分布式處理系統的每個處理機中,根據任意的重複程度,任何處理機都可以是重複的,從而使這些處理機實現無人監視運轉,這樣就大大地改進了該系統的不間斷運行的性能和可靠性。
權利要求
1.一種利用通過傳輸通路連接的多個處理機以分布方法執行順序處理作業的分布式處理系統的方法,其中包括用於把一個具有由與該分布式處理相關的處理機指定的內容編碼的消息發送到傳輸通路的步驟;用於把流過傳輸通路的該消息與其內容編碼一起接收到一個處理機中的步驟;和用於在對每個內容編碼進行匯集得到的匯集數據和每個處理機中的程序之間建立對應關係的步驟,以便對應順序處理的流程獲得消息。
2.根據權利要求
1所述的方法,其中要獲得的消息是作為數據記錄對每個內容編碼進行匯集的。
3.根據權利要求
1所述的方法,其中輸出在順序處理流程中指定部分的數據,對於每個程序,上述數據記錄與輸入數據以及與該輸入數據相關的輸出數據相對應。
4.根據權利要求
1所述的方法,其中相對於程序的關係是通過一個事件號獲得的。
5.一種利用通過傳輸通路連接的多個處理機以分布方式執行順序處理作業的分布式處理系統,其中包括用於把一個具有由與該分布式處理相關的處理機指定的內容編碼的消息發送到傳輸通路的裝置;用於把流過傳輸通路的該消息與其內容編碼一起接收到一個處理機中的裝置;和用於在對每個內容編碼進行匯集得到的匯集數據和每個處理機中的程序之間建立對應關係的裝置,以便對應處理序列的流程獲得消息。
6.根據權利要求
5所述的分布式處理系統,其中包括用於輸出在順序處理流程中確定區段的數據邏輯的裝置;對於每個程序,上述數據記錄與輸入數據以及與該輸入數據相關的輸出數據相對應。
7.根據權利要求
5所述的分布式處理系統,其中相對於程序的關係是通過一個事件號獲得的。
8.一種在利用傳輸網絡彼此連接的多個處理機的分布式處理系統中的重複消息處理方法,其中包括下述步驟把一個具有事件號的消息發送到傳輸網絡;從傳輸網絡接收該消息;和把接收的消息的事件號與在先接收的消息的事件號進行比較,以便檢測出屬於相同處理的重複消息。
9.根據權利要求
8所述的方法,其中在上述的發送步驟中,所說發射步驟是一種步驟,在該步驟中,已經從外部設備接收到數據的處理機產生一個消息,並把該消息發送到傳輸網絡,該產生的消息具有一個指示從處理機本身和外部設備接收數據的數據接收順序的事件號以及外部接收的數據;或者是另一種步驟,在該步驟中,已經從傳輸網絡接收到消息的處理機把該消息的事件號根據該消息的內容加到一個要輸出的消息上作為執行的處理結果,並把該產生的消息發送到傳輸網絡。
10.根據權利要求
9所述的方法,其中每一個處理機僅利用來自檢測出的屬於相同處理的消息中最先接收的一個信息執行其本身的處理。
11.根據權利要求
9所述的方法,其中每一個處理機都在一個予定的時間周期裡匯集檢測出的屬於相同處理的多餘消息,並且在匯集時間周期結束時根據多數決定邏輯選擇出一個已匯集的消息,由此執行其本身的處理。
12.一種在具有利用傳輸網絡彼此連接的多個處理機的分布式處理系統中的重複消息處理系統,其中包括用於把一個具有事件號的消息發送到傳輸網絡的裝置;用於從傳輸網絡接收該消息的裝置;用於把接收的消息的事件號與在先接收的消息的事件號進行比較的裝置,以便檢測出屬於相同處理的重複消息。
13.根據權利要求
12所述的系統,其中上述的發送裝置或者是一種裝置,該裝置使已經從外部設備接收到數據的處理機產生一個消息,並把該消息發送到傳輸網絡,該產生的消息具有一個指示從處理機本身和外部設備接收數據的數據接收順序的事件號以及外部接收的數據;或者是另一種裝置,該裝置使已經從傳輸網絡接收到消息的處理機把該消息的事件號根據該消息的內容加到一個要輸出的消息上作為執行的處理結果,並把該產生的消息發送到傳輸網絡。
專利摘要
對任選的處理機配置一種功能,使其接收通過傳輸通路傳送的消息和數據,並且根據對應模塊之間處理的聯繫指示模塊之間輸入/輸出關係的消息獲得該接收的數據。需要時把獲得的消息和記錄結果中的必要區段抽出,以便可以對應順序處理的流程通過建立顯示或列印模塊不僅匯集時序數據記錄,而且匯集消息或數據記錄。
文檔編號G06F15/18GK87104490SQ87104490
公開日1988年1月20日 申請日期1987年4月3日
發明者織茂昌之, 森欣司, 鈴木靖雄, 小泉稔, 河野克己, 中井耕三, 笠廣和 申請人:株式會社日立製作所導出引文BiBTeX, EndNote, RefMan