JP4390307B2 - Software automatic distribution system - Google Patents

Software automatic distribution system Download PDF

Info

Publication number
JP4390307B2
JP4390307B2 JP05837999A JP5837999A JP4390307B2 JP 4390307 B2 JP4390307 B2 JP 4390307B2 JP 05837999 A JP05837999 A JP 05837999A JP 5837999 A JP5837999 A JP 5837999A JP 4390307 B2 JP4390307 B2 JP 4390307B2
Authority
JP
Japan
Prior art keywords
machine
distribution
distribution destination
software
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP05837999A
Other languages
Japanese (ja)
Other versions
JP2000259419A (en
Inventor
政樹 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP05837999A priority Critical patent/JP4390307B2/en
Publication of JP2000259419A publication Critical patent/JP2000259419A/en
Application granted granted Critical
Publication of JP4390307B2 publication Critical patent/JP4390307B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、階層別に振り分けた複数のマシンに対してソフトウェアを配布する階層型ソフトウェア自動配布システム、特に何らかの原因で中間階層のマシンへのソフトウェア配布が失敗した場合でも、その階層以下のマシンへのソフトウェア配布を継続できるシステムに関する。
【0002】
【従来の技術】
従来より、複数のマシンを何段階かの階層に振り分けて、ソフトウェアを1台のマシンから配布する階層型ソフトウェア自動配布システムがある。このソフトウェア自動配布システムにおいて、何らかの原因で中間階層のマシンへのソフトウェアの配布に失敗する場合がある。この場合、障害が発生した中間階層のマシンについて人手作業により回復させてから再度ソフトウェア配布を実施するか、あるいは障害が発生したマシンをさけるように人手作業により配布経路を変更してから再度ソフトウェア配布を実施していた。
【0003】
【発明が解決しようとする課題】
しかし、上記従来のシステムでは、人手による作業や監視が必要であり、ソフトウェアの配布を効率よく行うことができなかった。
【0004】
すなわち、いくつかのマシンを仲介する階層型ソフトウェア自動配布システムにおいて、何らかの原因で中間階層のマシンへのソフトウェア配布が失敗した場合において、配布経路を自動的に変更し、配布処理を自動的に継続することが望まれている。
【0005】
そこで、本出願には、特願平10−128643号において、中間マシンに対してソフトウェアの配布が失敗した場合に、障害が発生したマシンの代わりとなる「代替マシン」によって配布経路を自動的に変更し、配布処理を自動的に継続することについて提案した。
【0006】
しかし、この先に提案の方法では、以下のような問題点があった。
【0007】
(i) すべての「代替マシン」に対してソフトウェア配布が失敗し、「代替マシン」の選択において無限ループが発生することがある。
【0008】
(ii) 障害が発生したマシンが最終配布先であった場合、それに対する再送手段がない。
【0009】
本発明は、このような課題を解決するためになされたもので、「代替マシン」の選択において無限ループの発生に対応し、また「障害マシン」が最終配布先であった場合、再送することができるソフトウェア自動配布システムを提供することを目的とする。
【0010】
【課題を解決するための手段】
この発明に係るソフトウェア自動配布システムは、次のような特徴を有するものである。
【0013】
発明は、ソフトウェアの配布が失敗した「障害マシン」が最終配布先であった場合にはその最終配布先のマシンに対して再送する。従って、配布先へのソフトウェアの配布を完了することができる。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【0016】
実施の形態1.
まず最初に、本発明の実施の形態を説明するために関連する用語について定義する。
【0017】
(イ)階層配布
図1に、本発明に係る階層別に振り分けた複数のマシンに対してソフトウェアを配布する階層型ソフトウェア自動配布システムの例を示す。この図1に示すようなシステムにおけるソフトウェアの配布が階層配布である。この例では、階層0にマシン1があり、以下階層1にマシン2,3、階層2にマシン4,5,6,7,8、階層3にマシン9,10が割り付けられている。そして、マシン1は、マシン2,3にソフトウェアを配布し、マシン2は、マシン4,5,6にソフトウェアを配布し、マシン3はマシン7,8にソフトウェアを配布し、マシン5はマシン9,10にソフトウェアを配布する。
【0018】
階層配布は、ソフトウェアを複数のマシンに配布する場合に、1台のマシンからすべてのマシンに直接ソフトウェアを配布するのではなく、図に示すように何段階かマシンを経由してソフトウェアを配布する方法をいう。階層配布は、何段階か階層別に振り分けた複数のマシンに対しソフトウェアを配布する方法であるが、末端の階層のマシンのみにソフトウェアを配布してもよいし、配布経路上のマシンすべてにソフトウェアを配布してもよい。要は、配布経路上のいずれかのマシンにソフトウェアを配布する構成であればよい。また、階層配布は、何段階か階層別に振り分けた1つのマシンに対してソフトウェアを配布するように構成してもよい。
【0019】
(ロ)管理マシン
管理マシンは、階層配布を管理する最上階層のマシンをいう。図1の例ではマシン1が管理マシンである。
【0020】
(ハ)経路情報マスタ
図2に、経路情報マスタを示す。経路情報マスタは、管理マシンのみで定義されている配布システム全体の経路情報を記憶したマスタである。図1の例では管理マシンであるマシン1の経路情報マスタである。
【0021】
例えば、図2の場合、ソフトウェアの配布先がマシン10の場合、配布経路は、マシン1→マシン2→マシン5→マシン10となり、マシン1からマシン2、マシン5を経由してマシン10にソフトウェアが配布される。
【0022】
(ニ)配布先経路情報
配布先経路情報は、あるマシンに着目した際、当該マシンを最上階層とした階層配布の経路情報をいう。ただし、当該マシン及び配布対象外のマシンのレコードは含まない。この情報は管理マシンで定義され、ソフトウェアと同時に配布される。また、配布後に配布先のマシンで不必要なレコードが削除される。
【0023】
さらに、ソフトウェアが正常に配布できない障害が発生した場合は、後述する代替マシンリストに従って情報が修正される。
【0024】
例えば、図1のような階層の場合であって、ソフトウェアをマシン4、マシン5、マシン9に配布する場合、マシン1での配布先経路情報は、図3(A)に示すようになる。例えば、配布先をマシン9とし、最上階層をマシン1としたときの配布先経路は、マシン1→マシン2→マシン5→マシン9となる。
【0025】
また、ソフトウェアをマシン4、マシン5、マシン9に配布する場合、マシン2を最上階層としたときの配布先経路情報は、図3(B)に示すようになり、例えば配布先をマシン9とし、最上階層をマシン2としたときの配布先経路情報は、マシン2→マシン5→マシン9となる。また、ソフトウェアをマシン4、マシン5、マシン9に配布する場合、マシン5を最上階層としたときの配布先経路情報は、図3(C)に示すように、マシン5→マシン9となる。なお、このとき、最上階層としたマシン1、マシン2、マシン5以外のマシンでは、配布先経路情報は作成されない。
【0026】
(ホ)最終配布先
最終配布先は、ソフトウェア配布のターゲットとなるソフトウェアが最終的に配布されるマシンをいう。
【0027】
(ヘ)配布先リスト
配布先リストは、ソフトウェアを配布する最終配布先のリストをいう。このリストは、管理マシン(マシン1)のみで使用される。すなわち、マシン1上で経路情報マスタから配布先経路情報を作成する場合にのみ使用される。一般的には、「マシン1,マシン2,・・・,マシンN」というように、ソフトウェアが配布される配布先のマシン名が順次記述される。例えば、ソフトウェアをマシン4、マシン5、マシン9に配布する場合、配布先リストは、「マシン4,マシン5,マシン9」がマシン名として記述される。
【0028】
(ト)中間配布先リスト
中間配布先リストは、あるマシンに着目した際、最終配布先にソフトウェアを配布するために、当該マシンから直接ソフトウェアを配布するマシンのリストをいう。この中間配布先リストは、着目したマシンにおいて、配布先経路情報の階層1のマシンを取り出して作成される。一般的には、「マシン1,マシン2,・・・,マシンN」というように、注目したマシンから直接ソフトウェア配布するマシン名が記述される。
【0029】
例えば、ソフトウェアをマシン4、マシン5、マシン9に配布する場合、マシン1での中間配布先リストには、マシン2が記載される。また、マシン2での中間配布先リストには、「マシン4,マシン5」がマシン名として記述される。さらに、マシン5での中間配布先リストには、「マシン9」がマシン名として記述される。それ以外のマシンでは中間配布先リストは作成されない。管理マシンは、経路情報マスタを元にソフトウェアを配布するが、ソフトウェアが配布されたマシンは、この中間配布先リストを基に次の階層のマシンへソフトウェアを配布する。
【0030】
(チ)代替マシンリスト
代替マシンリストは、中間配布先のマシンあるいはネットワークに何らかの障害が発生し、ソフトウェアが配布できない場合、その階層以下にソフトウェアを配布するための代替マシンを指定するための情報を記憶するリストをいう。管理マシン以外すべてのマシンに代替マシンが定義されていることを前提とする。例えば、各マシンについて代替マシンが記述される。
【0031】
(リ)完了配布先リスト
完了配布先リストは、ソフトウェアを正常に配布できた最終配布先のリストである。この完了配布先リストは、管理マシンのみで使用される。一般的には、「マシン1,マシン2,・・・,マシンN」というように、配布が完了したマシン名を記述した構造になっている。
【0032】
(ヌ)再送配布先リスト
再送配布先リストは、障害のため、ソフトウェアを正常に配布できなかった最終配布先についてのリストをいう。この再送配布先リストは、管理マシンのみで使用される。一般的には、「マシン1,マシン2,・・・,マシンN」というように、配布できなかったマシン名を記述した構造になっている。
【0033】
ここで、以下に、図1の構成におけるソフトウェア配布動作の一例を説明する。この例では、管理マシンであるマシン1がソフトウェアをマシン4,マシン5,マシン9に配布しようとする。ソフトウェアをマシン2に配布しようとしたが、マシン2へのソフトウェア配布に失敗したため、代替マシンリストから代替マシンとしてマシン3を選択した。次に、マシン3への配布も失敗し、マシン3の代替マシンとして、マシン2を選択した。しかし、マシン2はすでにソフトウェア配布に失敗しているため、マシン2の代替マシンとして最終的に当該マシン「マシン1」を選択し、処理を継続した。
【0034】
ここで、経路情報マスタは、図2に示した通りの配布経路が記述されている。配布先リストには、「マシン4,マシン5,マシン9」が記述されている。代替マシンリストには、代替マシンが記述されている。
【0035】
図3,4は、本発明の関連技術のソフトウェア自動配布システムの処理を示すフローチャートである。
【0036】
まず、当該マシンが、管理マシンか否かを判定する(S1)。この例の場合、まずマシン1からソフトウェアを送信し、この「マシン1」は管理マシンであるのでソフトウェア本体、配布先リスト、代替マシンリストを管理マシン(マシン1)上で定義する(S2)。次に、配布先リストから配布先経路情報を作成する(S3)。配布先経路情報は、図3(A)に示したように、マシン4については、マシン1→マシン2→マシン4、マシン5については、マシン1→マシン2→マシン5、マシン9については、マシン1→マシン2→マシン5→マシン9となる。
【0037】
なお、当該マシンが、管理マシンでなかった場合には、ソフトウェア本体、配布先リスト、代替マシンリストを管理マシン(マシン1)から受け取り(S4)、当該マシンを最上層として配布先経路情報を修正する(S5)。
【0038】
次に、配布先経路情報の階層1のマシンから中間配布先リストを作成する(S6)。この中間配布先リストには、マシン2が記述される。
【0039】
また、中間配布先リストの先頭、すなわち「マシン2」の位置にポインタを位置づける(S7)。次に、初期配布先マシン名にポインタの位置のマシン名を入力する(S8)。これにより、「初期配布先マシン名←マシン2」となる。さらに、配布先マシン名にもポインタの位置のマシン名を入力する(S9)。これにより、「配布先マシン名←マシン2」となる。
【0040】
次に、配布先マシン名がNULL(マシン名の入力がない)を判定する(S10)。配布先マシン名がNULLであれば、ソフトウェアの配布は行われないので、処理を終了する。
【0041】
今回の場合、「配布先マシン名はNULL」ではないので、配布先マシンにソフトウェア本体、配布先経路情報、代替マシンリストを配布する(S11)。この場合、「マシン2」にソフトウェア本体、配布先経路情報、代替マシンリストを配布する。
【0042】
そして、正常に送れたかを判定する(S12)。正常に送れた場合には、ポインタを1つ進めて(S13)、S8に戻る。しかし、この例では、マシン2への配布は失敗するので、配布先マシンに代わる代替マシンを代替マシンリストから取り出す(S14)。この場合、代替マシンリストから「マシン2」の代替マシンは「マシン3」であることを得る。そして、代替マシンが、当該マシンまたは初期配布先マシンかを判定する(S15,16)。この判定で当該マシンであった場合はそのまま、代替マシンが初期配布マシンであった場合には、代替マシン名を当該マシン名として(S17)、中間配布先リストのポインタ位置のマシン名を配布先マシンでの中間配布先リストに置き換える(S18)。
【0043】
一方代替マシンが、当該マシン及び初期配布マシンでなかった場合には、中間配布先リストのポインタ位置のマシン名を代替マシン名に置き換える(S19)。なお、この変更で中間配布先リストのマシン名が重複した場合には、変更したマシン名を削除する。
【0044】
今回の場合、代替マシン「マシン3」は、当該マシン「マシン1」ではなく、また初期配布先マシン「マシン2」でもないので、S18の処理で、中間配布先リストの「マシン2」を「マシン3」とする。
【0045】
次に、S18またはS19により中間配布先リストのポインタ位置を変更した場合には、配布先経路情報中の配布先マシン名を変更する(S20)。この場合も、1つの配布先レコードに対してマシン名が重複した場合には下位の階層のマシン名を削除する。今回の場合に、経路情報中の「マシン2」を「マシン3」と書き換え、S9に戻る。
【0046】
この時点で中間配布先リストはマシン3、配布先経路情報は配布先マシン4についてマシン1→マシン3→マシン4、配布先マシン5についてマシン1→マシン3→マシン5、配布先マシン9についてマシン1→マシン3→マシン5→マシン9となっている。
【0047】
次にS9の処理で「配布先マシン名←マシン3」となる。「配布先マシン名はNULL」ではないので、S11の処理で「マシン3」にソフトウェア本体、配布先経路情報、代替マシンリストを配布する。ここで、S11におけるマシン3への配布も失敗するので、S14の処理で代替マシンリストから「マシン3」の代替マシンは「マシン2」であることを得る。次に、代替マシン「マシン2」は当該マシン「マシン1」ではないが、初期配布先マシン「マシン2」であるので、S17の処理で、「代替マシン←マシン1」となる。次に、S18の処理で、中間配布先リストのポインタ位置のマシン名「マシン3」を配布先マシンでの中間配布先リスト「マシン4、マシン5」に置き換える。次に、S20の処理で、配布先経路情報中の配布先マシン名「マシン3」を代替マシン名「マシン1」に変更する。
【0048】
最終的に中間配布先リストは、マシン4、マシン5となり(ポインタ位置は「マシン4」)、配布先経路情報は配布先マシン4についてマシン1→マシン4、配布先マシン5についてマシン1→マシン5、配布先マシン9についてマシン1→マシン5→マシン9となる。
【0049】
このようにして、代替マシンが当該マシンまたは初期配布先マシンであった場合には、中間配布先リストのポインタ位置のマシン名を配布先マシンでの中間配布先リストに置き換える。そこで、配布ができなかった場合において、すでに選択済みの「代替マシン」を選択した場合、「代替マシン」を経由せずに送付元マシンから直接代替マシンの下層のマシンに配布する。これによって、中間階層マシンについての代替マシンの選択における無限ループの発生を抑制し、その中間階層以下のマシンへのソフトウェア配布が継続できる。
【0050】
次に、他の関連技術のシステムについて、説明する。システム構成は、上記関連技術と同様に、図1の構成である。このにおいては、例えば次のような処理を行う。この例は、上述の例と同様に、ソフトウェアをマシン4、マシン5、マシン9に配布しようとした場合の例である。まず、マシン2に対しソフトウェアを配布しようとするが、このマシン2へのソフトウェア配布に失敗した。このため、代替マシンリストから代替マシンとしてマシン3を選択した。次に、マシン3への配布も失敗し、マシン3の代替マシンとして、マシン2を選択した。しかし、マシン2はすでにソフトウェア配布に失敗している。
【0051】
この場合に、この関連技術では、障害の回復を待つため、一定時間(例えば数時間程度)待つ。そして、代替マシンとして、再度マシン2を選択し、処理を継続する。
【0052】
このように、この関連技術においては、すでに選択済みの「代替マシン」を選択した場合、「代替マシン」の回復を所定時間待つ。従って、所定時間内において障害回復が行われた時に、代替マシンへのソフトウェアの配布が完了し、中間階層以下のマシンへのソフトウェア配布が継続できる。
【0053】
図6、7は、本発明に係る実施の形態2のソフトウェア自動配布システムの処理を示すフローチャートである。
【0054】
まず、当該マシンが、管理マシンか否かを判定する(S31)。この例の場合、まずマシン1からソフトウェアを送信し、この「マシン1」は管理マシンであるのでソフトウェア本体、配布先リスト、代替マシンリストを管理マシン(マシン1)上で定義する(S32)。次に、配布先リストから配布先経路情報を作成する(S33)。配布先経路情報は、図3(A)に示したように、マシン4については、マシン1→マシン2→マシン4、マシン5については、マシン1→マシン2→マシン5、マシン9については、マシン1→マシン2→マシン5→マシン9となる。
【0055】
なお、当該マシンが、管理マシンでなかった場合には、ソフトウェア本体、配布先リスト、代替マシンリストを管理マシン(マシン1)から受け取り(S34)、当該マシンを最上層として配布先経路情報を修正する(S35)。
【0056】
次に、配布先経路情報の階層1のマシンから中間配布先リストを作成する(S36)。この中間配布先リストには、マシン2が記述される。
【0057】
また、中間配布先リストの先頭、すなわち「マシン2」の位置にポインタを位置づける(S37)。次に、初期配布先マシン名にポインタの位置のマシン名を入力する(S38)。これにより、「初期配布先マシン名←マシン2」となる。さらに、配布先マシン名にもポインタの位置のマシン名を入力する(S39)。これにより、「配布先マシン名←マシン2」となる。
【0058】
次に、配布先マシン名がNULL(マシン名の入力がない)を判定する(S40)。配布先マシン名がNULLであれば、ソフトウェアの配布は行われないので、処理を終了する。
【0059】
今回の場合、「配布先マシン名はNULL」ではないので、配布先マシンにソフトウェア本体、配布先経路情報、代替マシンリストを配布する(S41)。この場合、「マシン2」にソフトウェア本体、配布先経路情報、代替マシンリストを配布する。
【0060】
そして、正常に送れたかを判定する(S42)。正常に送れた場合には、ポインタを1つ進めて(S43)、S38に戻る。しかし、この例では、マシン2への配布は失敗するので、配布先マシンに代わる代替マシンを代替マシンリストから取り出す(S44)。この場合、代替マシンリストから「マシン2」の代替マシンは「マシン3」であることを得る。そして、代替マシンが、当該マシンであるかを判定する(S45)。この判定で、代替マシンが当該マシンであった場合には、中間配布先リストのポインタ位置のマシン名を配布先マシンでの中間配布先リストに置き換える(S46)。これによって、すでに選択されたマシンを選択した場合には、その下位の層のマシンが直接選択される。
【0061】
一方、代替マシンが当該マシンでなかった場合には、代替マシンが初期配布先マシンかを判定する(S47)。この判定で当該マシンであった場合はそのまま、代替マシンが初期配布マシンであった場合には、代替マシン名を当該マシン名として一定時間待つ(S48)。すなわち、配布が失敗した中間階層のマシンを飛ばして、配布を行っても未配布のまま残った初期配布先マシンについては、一定時間を待つ。そして、一定時間経過後中間配布先リストのポインタ位置のマシン名を代替マシン名に置き換える(S49)。これによって、代替マシンに対し、もう一度ソフトウェアの配布が行われる。なお、この変更で中間配布先リストのマシン名が重複した場合には、変更したマシン名を削除する。
【0062】
今回の場合、代替マシン「マシン3」は、当該マシン「マシン1」ではなく、また初期配布先マシン「マシン2」でもないので、S49の処理で、中間配布先リストの「マシン2」を「マシン3」とする。
【0063】
次に、S46またはS49により中間配布先リストのポインタ位置を変更した場合には、配布先経路情報中の配布先マシン名を変更する(S50)。この場合も、1つの配布先レコードに対してマシン名が重複した場合には下位の階層のマシン名を削除する。今回の場合に、経路情報中の「マシン2」を「マシン3」と書き換え、S39に戻る。
【0064】
この時点で中間配布先リストはマシン3、配布先経路情報は配布先マシン4についてマシン1→マシン3→マシン4、配布先マシン5についてマシン1→マシン3→マシン5、配布先マシン9についてマシン1→マシン3→マシン5→マシン9となっている。
【0065】
次にS39の処理で「配布先マシン名←マシン3」となる。「配布先マシン名はNULL」ではないので、S41の処理で「マシン3」にソフトウェア本体、配布先経路情報、代替マシンリストを配布する。ここで、S42におけるマシン3への配布も失敗するので、S44の処理で代替マシンリストから「マシン3」の代替マシンは「マシン2」であることを得る。
【0066】
次に、代替マシン「マシン2」は当該マシン「マシン1」ではないが、初期配布先マシン「マシン2」であるので、S48の処理で、一定時間待つ。そして、S49の処理で、中間配布先リストのポインタ位置のマシン名「マシン3」を代替マシンである「マシン2」に置き換える。また、S50の処理で、配布先経路情報中の配布先マシン名「マシン3」を代替マシン名「マシン2」に再び変更し、処理を継続する。
【0067】
このようにして、代替マシンが初期配布先マシンであった場合には、一定時間待って、再度その代替マシンへの配布を繰り返す。。従って、所定時間内において障害回復が行われた時に、代替マシンへのソフトウェアの配布が完了し、中間階層以下のマシンへのソフトウェア配布が継続できる。
【0068】
実施の形態.
次に、実施の形態のシステムについて、説明する。システム構成は、上記関連技術と同様に、図1の構成である。この実施形態においては、例えば次のような処理を行う。この例は、ソフトウェアをマシン2、マシン3に配布しようとしたが、マシン3へのソフトウェア配布に失敗した。マシン3は最終配布先であるため、障害の回復を待つため、一定時間(例えば数時間程度)待ち、再度、マシン3に配布する。従って、配布先へのソフトウェアの配布を完了することができる。
【0069】
図8、9は、本発明に係る実施の形態3のソフトウェア自動配布システムの処理を示すフローチャートである。まず、当該マシンが、管理マシンか否かを判定する(S61)。この例の場合、まずマシン1からソフトウェアを送信し、この「マシン1」は管理マシンであるのでソフトウェア本体、配布先リスト、代替マシンリストを管理マシン(マシン1)上で定義する(S62)。次に、配布先リストから配布先経路情報を作成する(S63)。この例の場合、ソフトウェアの配布先は、マシン2、マシン3であるため、配布先経路情報は、マシン2については、マシン1→マシン2、マシン3については、マシン1→マシン3となる。
【0070】
なお、当該マシンが、管理マシンでなかった場合には、ソフトウェア本体、配布先リスト、代替マシンリストを管理マシン(マシン1)から受け取り(S64)、当該マシンを最上層として配布先経路情報を修正する(S65)。
【0071】
次に、配布先経路情報の階層1のマシンから中間配布先リストを作成する(S66)。この中間配布先リストには、マシン2が記述される。
【0072】
また、中間配布先リストの先頭、すなわち「マシン2」の位置にポインタを位置づける(S67)。次に、配布先マシン名にポインタの位置のマシン名を入力する(S68)。これにより、「配布先マシン名←マシン2」となる。
【0073】
次に、配布先マシン名がNULL(マシン名の入力がない)を判定する(S69)。配布先マシン名がNULLであれば、ソフトウェアの配布は行われないので、処理を終了する。
【0074】
今回の場合、「配布先マシン名はNULL」ではないので、配布先マシンにソフトウェア本体、配布先経路情報、代替マシンリストを配布する(S70)。この場合、「マシン2」にソフトウェア本体、配布先経路情報、代替マシンリストを配布する。
【0075】
そして、正常に送れたかを判定する(S71)。正常に送れた場合には、配布先マシンは、最終配布先かを判定する(S72)。最終配布先であった場合には、配布先マシン名を管理マシンの完了配布先リストに追加する(S73)。S72においてNOの場合及びS73における完了配布先リストへの追加の処理を終了した場合には、ポインタを1つ進め(S74)、S68に戻る。
【0076】
今回の例の場合、マシン2への配布は成功し、マシン2は最終配布先であるため、完了配布先リストに「マシン2」が記録されるとともに、ポインタが1つ進められ、S68に戻る。この場合、ポインタは、「マシン3」に位置しており、S70において、マシン3にソフトウェア本体、配布先経路情報、代替マシンリストを配布し、正常に送れたかを判定する(S71)。
【0077】
今回の例では、マシン3への配布は失敗するので、S71の判定においてNOとなる。この正常に送れなかった場合にも、正常に送れた場合と同様に、配布先マシンは、最終配布先かを判定する(S75)。そして、最終配布先であった場合には、配布先マシン名を管理マシンの再送配布先リストに追加する(S76)。次に、配布先マシンは他の最終配布先の経路かを判定する(S77)。今回の例では、「マシン3」は、他の最終配布先の経路となっていない。
【0078】
しかし、他の最終配布先の経路になっていた場合には、次に配布先マシンに代わる代替マシンを代替マシンリストから取り出す(S78)。例えば、最終配布先として他に「マシン7」、「マシン8」が定義されている場合は「マシン3」は他の最終配布先の経路となっており、S78に進み、代替マシンである「マシン2」が代替マシンとして取り出される。そして、代替マシンが、当該マシンかを判定する(S79)。この判定で当該マシンであった場合は、中間配布先リストのポインタ位置のマシン名を配布先マシンでの中間配布先リストに置き換える(S80)。
【0079】
一方代替マシンが、当該マシンでなかった場合には、中間配布先リストのポインタ位置のマシン名を代替マシン名に置き換える(S81)。なお、この変更で中間配布先リストのマシン名が重複した場合には、変更したマシン名を削除する。
【0080】
他の最終配布先が「マシン7」であった場合には、代替マシン「マシン2」は、当該マシン「マシン1」ではないので、S81の処理で、中間配布先リストの「マシン3」を「マシン2」とする。これによって、マシン2を介し、マシン7への配布を行う。
【0081】
次に、S80またはS81により中間配布先リストのポインタ位置を変更した場合には、配布先経路情報中の配布先マシン名を変更する(S82)。この場合も、1つの配布先レコードに対してマシン名が重複した場合には下位の階層のマシン名を削除する。これによって、配布を失敗した配布先が、他の最終配布先の経路であった場合には、代替マシンを選択して、その代替マシンを介し、他の最終配布先へのソフトウェアの配布を試みる。また、代替マシンが当該マシンであった場合には、当該マシンからその下位の階層のマシンに直接ソフトウェアの配布を行う。
【0082】
今回の例の場合、「マシン3」は、他の最終配布先の経路ではないため、上述のようにS77の判定においてNOとなりS74に進み、このS74においてポインタを1つ進めてS68に戻る。配布先は、「マシン2」「マシン3」の2つだけであり、ポインタを進めることによって、配布先はNULLになる。従って、S69の判定において、YESとなり、図9の処理は終了する。
【0083】
一方、図10に示す管理マシンで動作している別のプロセスでは、まず完了配布先リストと再送配布先リストが初期化される(S91)。次に、完了配布先リストあるいは再送配布先リストへの登録を待つ(S92)。前述したプロセスでは、最初に完了配布先リストとして「マシン2」が登録される。次に、配布先リスト=完了配布先リスト+再配布先リストか否かを判定する(S93)。再配布先リストにマシン3が登録されるまでは、この判定はNOであり、S92に戻り、判定を繰り返す。
【0084】
前述したプロセスでは、再送配布先リストとして、「マシン3」が登録される。これによって、S93の判定において、配布先リスト「マシン2、マシン3」= 完了配布先リスト「マシン2」+ 再送配布先リスト「マシン3」となる。
【0085】
この場合には、再送配布先リスト「マシン3」=NULLか否かを判定する(S94)。配布がすべて完了していれば、この判定でYESとなり、処理を終了する。
【0086】
今回の場合、再送配布リストに「マシン3」が記載されており、S94の判定において、NOとなる。そこで、配布先リストに再送配布先リストの内容をを入力し(S95)、一定時間(例えば、数秒程度)待つ(S96)。この場合は、配布先リストにマシン3が入力される。
【0087】
そして、一定時間を経過したときに、変更された配布先リストを使用して、管理マシンにてソフトウェア配布を開始する(S97)。この場合には、マシン3に再度ソフトウェアの配布がなされる。
【0088】
このように、実施形態においては、ソフトウェアの配布に失敗した「障害マシン」が最終配布先であった場合にはその最終配布先のマシンに対して再送する。従って、配布先へのソフトウェアの配布を完了することができる。
【0089】
特に、すべての配布先への配布が完了(障害も含む)したかを判断するために「完了マシンリスト」と、障害のため再送すべきマシンを記述した「再送マシンリスト」を持ち、階層型ソフトウェア自動配布システムにおいて、「障害マシン」が配布先であった場合、ソフトウェアを再送することができる。
【0090】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
【0091】
(i)本発明は、階層別に振り分けた複数のマシンに対してソフトウェアを配布する階層型ソフトウェア自動配布システムにおいて、すでに選択済みの「代替マシン」を選択した場合、「代替マシン」を経由せずに送付元マシンから直接代替マシンの下層のマシンに配布する機能を有する。これによって、中間階層マシンについての代替マシンの選択における無限ループの発生を抑制し、その中間階層以下のマシンへのソフトウェア配布が継続できる。
【0092】
(ii)また、本発明は、すでに選択済みの「代替マシン」を選択した場合、「代替マシン」の回復を所定時間待つ機能を有する。従って、所定時間内において障害回復が行われた時に、代替マシンへのソフトウェアの配布が完了し、中間階層以下のマシンへのソフトウェア配布が継続できる。
【0093】
(iii)また、本発明は、ソフトウェアの配布が失敗した「障害マシン」が最終配布先であった場合にはその最終配布先のマシンに対して再送する。従って、配布先へのソフトウェアの配布を完了することができる。
【図面の簡単な説明】
【図1】 システムの階層構成を示す図である。
【図2】 経路情報マスタを示す図である。
【図3】 配布先経路情報を示す図である。
【図4】 本発明に係る実施形態1のソフトウェア自動配布システムの処理を示すフローチャートである。
【図5】 本発明に係る実施形態1のソフトウェア自動配布システムの処理を示すフローチャートである。
【図6】 本発明に係る実施形態2のソフトウェア自動配布システムの処理を示すフローチャートである。
【図7】 本発明に係る実施形態2のソフトウェア自動配布システムの処理を示すフローチャートである。
【図8】 本発明に係る実施形態3のソフトウェア自動配布システムの処理を示すフローチャートである。
【図9】 本発明に係る実施形態3のソフトウェア自動配布システムの処理を示すフローチャートである。
【図10】 本発明に係る実施形態3のソフトウェア自動配布システムの処理を示すフローチャートである。
【符号の説明】
1〜10 マシン。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a hierarchical software automatic distribution system that distributes software to a plurality of machines distributed by hierarchy, and in particular, even when software distribution to a middle-tier machine fails for some reason, The present invention relates to a system capable of continuing software distribution.
[0002]
[Prior art]
Conventionally, there is a hierarchical software automatic distribution system that distributes software from a single machine by distributing a plurality of machines into several levels. In this automatic software distribution system, distribution of software to a middle-tier machine may fail for some reason. In this case, either manually recover the failed middle-tier machine and then distribute the software again, or manually change the distribution route to avoid the failed machine and then distribute the software again. Had been implemented.
[0003]
[Problems to be solved by the invention]
However, the conventional system described above requires manual work and monitoring, and software distribution cannot be performed efficiently.
[0004]
In other words, in a hierarchical software automatic distribution system that mediates several machines, if for some reason software distribution to the middle-tier machine fails, the distribution route is automatically changed and distribution processing continues automatically. It is hoped to do.
[0005]
Therefore, in this application, in Japanese Patent Application No. 10-128643, when distribution of software to an intermediate machine fails, the distribution route is automatically set by an “alternative machine” that replaces the failed machine. Proposed to change and continue the distribution process automatically.
[0006]
However, the previously proposed method has the following problems.
[0007]
(I) Software distribution may fail for all “alternative machines” and an infinite loop may occur when selecting “alternative machines”.
[0008]
(Ii) When the machine in which the failure has occurred is the final distribution destination, there is no means for resending it.
[0009]
The present invention has been made to solve such a problem, and copes with the occurrence of an infinite loop in selecting an “alternative machine”, and retransmits when the “failed machine” is the final distribution destination. An object is to provide an automatic software distribution system capable of performing the above.
[0010]
[Means for Solving the Problems]
The software automatic distribution system according to the present invention has the following features.
[0013]
BookAccording to the present invention, when the “failed machine” for which software distribution has failed is the final distribution destination, the information is retransmitted to the final distribution destination machine. Therefore, distribution of software to the distribution destination can be completed.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0016]
Embodiment 1 FIG.
First, related terms are defined to describe the embodiment of the present invention.
[0017]
(B) Hierarchical distribution
FIG. 1 shows an example of a hierarchical software automatic distribution system that distributes software to a plurality of machines distributed by hierarchy according to the present invention. Distribution of software in the system as shown in FIG. 1 is hierarchical distribution. In this example, the machine 1 is assigned to the hierarchy 0, the machines 2 and 3 are assigned to the hierarchy 1, the machines 4, 5, 6, 7, and 8 are assigned to the hierarchy 2, and the machines 9 and 10 are assigned to the hierarchy 3. The machine 1 distributes the software to the machines 2 and 3, the machine 2 distributes the software to the machines 4, 5, and 6, the machine 3 distributes the software to the machines 7 and 8, and the machine 5 , 10 to distribute software.
[0018]
Hierarchical distribution does not distribute software directly from one machine to all machines when distributing software to multiple machines, but distributes software through several stages as shown in the figure. Say the method. Hierarchical distribution is a method of distributing software to multiple machines distributed in several stages. However, software can be distributed only to machines at the end hierarchy, or software can be distributed to all machines on the distribution path. You may distribute it. In short, any configuration may be used as long as software is distributed to any machine on the distribution route. Further, hierarchical distribution may be configured such that software is distributed to a single machine distributed in several levels.
[0019]
(B) Management machine
The management machine is a top-level machine that manages hierarchical distribution. In the example of FIG. 1, the machine 1 is a management machine.
[0020]
(C) Route information master
FIG. 2 shows a route information master. The route information master is a master that stores route information of the entire distribution system defined only by the management machine. In the example of FIG. 1, it is a route information master of the machine 1 which is a management machine.
[0021]
For example, in the case of FIG. 2, when the software distribution destination is the machine 10, the distribution path is machine 1 → machine 2 → machine 5 → machine 10, and the software is transferred from the machine 1 to the machine 10 via the machines 2 and 5. Is distributed.
[0022]
(D) Distribution route information
The distribution destination route information refers to the route information of hierarchical distribution with the machine as the top layer when focusing on a certain machine. However, records of the machine and machines not to be distributed are not included. This information is defined on the managed machine and distributed with the software. In addition, unnecessary records are deleted on the distribution destination machine after distribution.
[0023]
Further, when a failure occurs in which software cannot be normally distributed, the information is corrected according to an alternative machine list described later.
[0024]
For example, in the case of the hierarchy as shown in FIG. 1, when the software is distributed to the machine 4, the machine 5, and the machine 9, the distribution destination route information in the machine 1 is as shown in FIG. For example, when the distribution destination is the machine 9 and the top layer is the machine 1, the distribution destination path is machine 1 → machine 2 → machine 5 → machine 9.
[0025]
In addition, when distributing software to the machine 4, the machine 5, and the machine 9, the distribution destination route information when the machine 2 is the top layer is as shown in FIG. 3B. For example, the distribution destination is the machine 9. When the top layer is the machine 2, the distribution destination route information is machine 2 → machine 5 → machine 9. Further, when distributing software to the machine 4, the machine 5, and the machine 9, the distribution destination route information when the machine 5 is set as the highest layer is changed from the machine 5 to the machine 9, as shown in FIG. At this time, distribution destination route information is not created in machines other than the machine 1, machine 2, and machine 5 at the top layer.
[0026]
(E) Final distribution destination
The final distribution destination refers to a machine to which software targeted for software distribution is finally distributed.
[0027]
(F) Distribution list
The distribution destination list is a list of final distribution destinations to which the software is distributed. This list is used only on the management machine (machine 1). That is, it is used only when the distribution destination route information is created from the route information master on the machine 1. Generally, machine names of distribution destinations to which software is distributed are sequentially described as “machine 1, machine 2,..., Machine N”. For example, when distributing software to the machine 4, the machine 5, and the machine 9, the distribution destination list describes “machine 4, machine 5, machine 9” as the machine name.
[0028]
(G) Intermediate distribution destination list
The intermediate distribution destination list is a list of machines that distribute software directly from the machine in order to distribute software to the final distribution destination when focusing on a certain machine. This intermediate distribution destination list is created by taking out the machines in the hierarchy 1 of the distribution destination route information in the focused machine. In general, the name of a machine that directly distributes software from the machine of interest is described, such as “machine 1, machine 2,..., Machine N”.
[0029]
For example, when distributing software to the machine 4, the machine 5, and the machine 9, the machine 2 is described in the intermediate distribution destination list in the machine 1. In the intermediate distribution destination list in the machine 2, “machine 4, machine 5” is described as the machine name. Further, in the intermediate distribution destination list in the machine 5, “machine 9” is described as the machine name. The intermediate distribution list is not created on other machines. The management machine distributes the software based on the route information master, and the machine to which the software is distributed distributes the software to the next level machine based on the intermediate distribution destination list.
[0030]
(H) Alternative machine list
The alternative machine list is a list that stores information for designating an alternative machine for distributing software below the hierarchy when some failure occurs in the intermediate distribution destination machine or network and software cannot be distributed. It is assumed that an alternate machine is defined for all machines other than the management machine. For example, an alternative machine is described for each machine.
[0031]
(Re) Completed distribution list
The completed distribution destination list is a list of final distribution destinations that have successfully distributed the software. This completed distribution destination list is used only on the management machine. In general, the machine name has a structure in which the names of machines that have been distributed are described, such as “machine 1, machine 2,..., Machine N”.
[0032]
(Nu) Redistribution distribution list
The retransmission distribution destination list is a list of final distribution destinations for which software could not be normally distributed due to a failure. This retransmission distribution destination list is used only on the management machine. In general, the structure is such that “machine 1, machine 2,..., Machine N” describes machine names that could not be distributed.
[0033]
Here, an example of the software distribution operation in the configuration of FIG. 1 will be described below. In this example, the machine 1, which is a management machine, tries to distribute software to the machines 4, 5, and 9. An attempt was made to distribute the software to the machine 2, but since the software distribution to the machine 2 failed, the machine 3 was selected as an alternative machine from the alternative machine list. Next, distribution to the machine 3 also failed, and the machine 2 was selected as an alternative machine to the machine 3. However, since the machine 2 has already failed in software distribution, the machine “Machine 1” was finally selected as an alternative machine to the machine 2 and the processing was continued.
[0034]
Here, in the route information master, the distribution route as shown in FIG. 2 is described. In the distribution destination list, “machine 4, machine 5, machine 9” are described. An alternative machine is described in the alternative machine list.
[0035]
  3 and 4 show the present invention.Related technologyIt is a flowchart which shows the process of a software automatic distribution system.
[0036]
First, it is determined whether or not the machine is a management machine (S1). In this example, first, software is transmitted from the machine 1, and since this "machine 1" is a management machine, a software body, a distribution destination list, and an alternative machine list are defined on the management machine (machine 1) (S2). Next, distribution destination route information is created from the distribution destination list (S3). As shown in FIG. 3A, the distribution destination route information is as follows: for machine 4, machine 1 → machine 2 → machine 4, for machine 5, machine 1 → machine 2 → machine 5, and for machine 9, Machine 1 → machine 2 → machine 5 → machine 9
[0037]
If the machine is not the management machine, the software body, distribution destination list, and alternative machine list are received from the management machine (machine 1) (S4), and the distribution destination route information is corrected with the machine as the top layer. (S5).
[0038]
Next, an intermediate distribution destination list is created from the machine at the level 1 distribution destination route information (S6). Machine 2 is described in this intermediate distribution destination list.
[0039]
Further, the pointer is positioned at the head of the intermediate distribution destination list, that is, at the position of “Machine 2” (S7). Next, the machine name at the position of the pointer is input as the initial distribution destination machine name (S8). As a result, “initial distribution destination machine name ← machine 2” is obtained. Furthermore, the machine name at the position of the pointer is also input to the distribution destination machine name (S9). As a result, “distribution destination machine name ← machine 2” is obtained.
[0040]
Next, it is determined whether the distribution destination machine name is NULL (no machine name is input) (S10). If the distribution destination machine name is NULL, the software is not distributed and the process is terminated.
[0041]
In this case, since the “distribution destination machine name is not NULL”, the software body, distribution destination route information, and alternative machine list are distributed to the distribution destination machine (S11). In this case, the software body, distribution destination route information, and alternative machine list are distributed to “Machine 2”.
[0042]
Then, it is determined whether it has been sent normally (S12). If it is sent normally, the pointer is advanced by 1 (S13), and the process returns to S8. However, in this example, distribution to the machine 2 fails, so an alternative machine that replaces the distribution destination machine is taken out from the alternative machine list (S14). In this case, it is obtained from the alternative machine list that the alternative machine of “Machine 2” is “Machine 3”. Then, it is determined whether the alternative machine is the machine or the initial distribution destination machine (S15, 16). If it is determined in this determination that the machine is the original machine, the alternative machine is the initial distribution machine. If the alternative machine name is the machine name (S17), the machine name at the pointer position in the intermediate distribution destination list is the distribution destination. Replace with the intermediate distribution destination list in the machine (S18).
[0043]
On the other hand, if the alternative machine is not the machine and the initial distribution machine, the machine name at the pointer position in the intermediate distribution destination list is replaced with the alternative machine name (S19). If the machine name in the intermediate distribution destination list is duplicated by this change, the changed machine name is deleted.
[0044]
In this case, since the alternative machine “Machine 3” is not the machine “Machine 1”, nor is the initial distribution destination machine “Machine 2”, “Machine 2” in the intermediate distribution destination list is changed to “Machine 2” in the process of S18. Machine 3 ”.
[0045]
Next, when the pointer position of the intermediate distribution destination list is changed in S18 or S19, the distribution destination machine name in the distribution destination route information is changed (S20). Also in this case, when the machine name is duplicated for one distribution destination record, the machine name of the lower hierarchy is deleted. In this case, “Machine 2” in the route information is rewritten as “Machine 3”, and the process returns to S9.
[0046]
At this point, the intermediate distribution destination list is machine 3 and the distribution destination route information is machine 1 → machine 3 → machine 4 for distribution destination machine 4, machine 1 → machine 3 → machine 5 for distribution destination machine 5, and machine for distribution destination machine 9 1 → Machine 3 → Machine 5 → Machine 9
[0047]
Next, in the process of S9, “distribution destination machine name ← machine 3” is obtained. Since “distribution destination machine name is not NULL”, the software body, distribution destination route information, and alternative machine list are distributed to “machine 3” in the process of S11. Here, since distribution to the machine 3 in S11 also fails, it is obtained in the process of S14 that the alternative machine of “Machine 3” is “Machine 2” from the alternative machine list. Next, although the alternative machine “machine 2” is not the machine “machine 1”, but is the initial distribution destination machine “machine 2”, “alternative machine ← machine 1” is obtained in the process of S17. Next, in the process of S18, the machine name “machine 3” at the pointer position in the intermediate distribution destination list is replaced with the intermediate distribution destination list “machine 4, machine 5” at the distribution destination machine. Next, in the process of S20, the distribution destination machine name “machine 3” in the distribution destination route information is changed to the alternative machine name “machine 1”.
[0048]
Finally, the intermediate distribution destination list is machine 4 and machine 5 (pointer position is “machine 4”), and the distribution destination route information is machine 1 → machine 4 for distribution destination machine 4 and machine 1 → machine for distribution destination machine 5. 5. The distribution destination machine 9 is machine 1 → machine 5 → machine 9.
[0049]
In this way, when the alternative machine is the machine or the initial distribution destination machine, the machine name at the pointer position in the intermediate distribution destination list is replaced with the intermediate distribution destination list in the distribution destination machine. Therefore, when the distribution cannot be performed and the already selected “alternative machine” is selected, the distribution is performed directly from the transmission source machine to the lower-level machine of the alternative machine without going through the “alternative machine”. As a result, it is possible to suppress the occurrence of an infinite loop in selecting an alternative machine for an intermediate hierarchy machine, and to continue software distribution to machines below that intermediate hierarchy.
[0050]
Next, other related technologiesThe system will be described. The system configuration isWith the related technologySimilarly, it is the structure of FIG. thisExampleFor example, the following processing is performed. This exampleExample aboveIn the same manner as in the example, the software is distributed to the machine 4, the machine 5, and the machine 9. First, an attempt was made to distribute software to the machine 2, but distribution of the software to the machine 2 failed. For this reason, the machine 3 is selected as an alternative machine from the alternative machine list. Next, distribution to the machine 3 also failed, and the machine 2 was selected as an alternative machine to the machine 3. However, machine 2 has already failed to distribute software.
[0051]
  In this case,This related technologyThen, in order to wait for the recovery of the failure, a certain time (for example, several hours) is waited. Then, the machine 2 is selected again as an alternative machine, and the process is continued.
[0052]
  in this way,This related technologyWhen the “alternate machine” that has already been selected is selected, the recovery of the “alternate machine” is waited for a predetermined time. Therefore, when the failure recovery is performed within a predetermined time, the distribution of the software to the alternative machine is completed, and the software distribution to the machines below the intermediate layer can be continued.
[0053]
6 and 7 are flowcharts showing processing of the software automatic distribution system according to the second embodiment of the present invention.
[0054]
First, it is determined whether or not the machine is a management machine (S31). In this example, first, software is transmitted from the machine 1, and since this "machine 1" is a management machine, a software body, a distribution destination list, and an alternative machine list are defined on the management machine (machine 1) (S32). Next, distribution destination route information is created from the distribution destination list (S33). As shown in FIG. 3A, the distribution destination route information is as follows: for machine 4, machine 1 → machine 2 → machine 4, for machine 5, machine 1 → machine 2 → machine 5, and for machine 9, Machine 1 → machine 2 → machine 5 → machine 9
[0055]
If the machine is not a management machine, the software body, distribution destination list, and alternative machine list are received from the management machine (machine 1) (S34), and the distribution destination route information is corrected with the machine as the top layer. (S35).
[0056]
Next, an intermediate distribution destination list is created from the machine of the distribution destination route information layer 1 (S36). Machine 2 is described in this intermediate distribution destination list.
[0057]
In addition, the pointer is positioned at the top of the intermediate distribution destination list, that is, at the position of “Machine 2” (S37). Next, the machine name at the position of the pointer is input as the initial distribution destination machine name (S38). As a result, “initial distribution destination machine name ← machine 2” is obtained. Furthermore, the machine name at the position of the pointer is also input to the distribution destination machine name (S39). As a result, “distribution destination machine name ← machine 2” is obtained.
[0058]
Next, it is determined whether the distribution destination machine name is NULL (no machine name is input) (S40). If the distribution destination machine name is NULL, the software is not distributed and the process is terminated.
[0059]
In this case, since the “distribution destination machine name is not NULL”, the software body, distribution destination route information, and alternative machine list are distributed to the distribution destination machine (S41). In this case, the software body, distribution destination route information, and alternative machine list are distributed to “Machine 2”.
[0060]
Then, it is determined whether it has been sent normally (S42). If it is sent normally, the pointer is advanced by one (S43), and the process returns to S38. However, in this example, distribution to the machine 2 fails, so an alternative machine that replaces the distribution destination machine is taken out from the alternative machine list (S44). In this case, it is obtained from the alternative machine list that the alternative machine of “Machine 2” is “Machine 3”. Then, it is determined whether the alternative machine is the machine concerned (S45). In this determination, if the alternative machine is the machine, the machine name at the pointer position in the intermediate distribution destination list is replaced with the intermediate distribution destination list in the distribution destination machine (S46). As a result, when a machine that has already been selected is selected, the lower-layer machine is directly selected.
[0061]
On the other hand, if the alternative machine is not the machine, it is determined whether the alternative machine is the initial distribution destination machine (S47). If it is determined that the machine is the machine, the alternative machine is the initial distribution machine. If the alternative machine is the initial distribution machine, the machine waits for a certain time with the machine name as the machine name (S48). In other words, a middle-tier machine that has failed to be distributed is skipped, and an initial distribution destination machine that remains undistributed even after distribution is waited for a certain period of time. Then, after a predetermined time has elapsed, the machine name at the pointer position in the intermediate distribution destination list is replaced with an alternative machine name (S49). As a result, the software is distributed again to the alternative machine. If the machine name in the intermediate distribution destination list is duplicated by this change, the changed machine name is deleted.
[0062]
In this case, since the alternative machine “Machine 3” is not the machine “Machine 1” and is not the initial distribution destination machine “Machine 2”, “Machine 2” in the intermediate distribution destination list is changed to “Machine 2” in the process of S49. Machine 3 ”.
[0063]
Next, when the pointer position of the intermediate distribution destination list is changed in S46 or S49, the distribution destination machine name in the distribution destination route information is changed (S50). Also in this case, when the machine name is duplicated for one distribution destination record, the machine name of the lower hierarchy is deleted. In this case, “Machine 2” in the route information is rewritten as “Machine 3”, and the process returns to S39.
[0064]
At this point, the intermediate distribution destination list is machine 3 and the distribution destination route information is machine 1 → machine 3 → machine 4 for distribution destination machine 4, machine 1 → machine 3 → machine 5 for distribution destination machine 5, and machine for distribution destination machine 9 1 → Machine 3 → Machine 5 → Machine 9
[0065]
Next, in the process of S39, “distribution destination machine name ← machine 3” is obtained. Since “distribution destination machine name is not NULL”, the software body, distribution destination route information, and alternative machine list are distributed to “machine 3” in the process of S41. Here, since the distribution to the machine 3 in S42 also fails, it is obtained in the process of S44 that the alternative machine of “Machine 3” is “Machine 2” from the alternative machine list.
[0066]
Next, although the alternative machine “Machine 2” is not the machine “Machine 1”, but is the initial distribution destination machine “Machine 2”, the process waits for a certain time in the processing of S48. In step S49, the machine name “machine 3” at the pointer position in the intermediate distribution destination list is replaced with “machine 2” which is an alternative machine. In S50, the distribution destination machine name “machine 3” in the distribution destination route information is changed again to the alternative machine name “machine 2”, and the processing is continued.
[0067]
In this way, when the alternative machine is the initial distribution destination machine, after waiting for a predetermined time, the distribution to the alternative machine is repeated again. . Therefore, when the failure recovery is performed within a predetermined time, the distribution of the software to the alternative machine is completed, and the software distribution to the machines below the intermediate layer can be continued.
[0068]
  Implementation formstate.
Next, the form of implementationStateThe system will be described. The system configuration isRelated technologiesSimilarly to FIG. This implementationStateFor example, the following processing is performed. In this example, software distribution to the machine 2 and the machine 3 was attempted, but distribution of the software to the machine 3 failed. Since the machine 3 is the final distribution destination, in order to wait for the recovery of the failure, the machine 3 waits for a certain time (for example, about several hours) and distributes it to the machine 3 again. Therefore, distribution of software to the distribution destination can be completed.
[0069]
8 and 9 are flowcharts showing processing of the software automatic distribution system according to the third embodiment of the present invention. First, it is determined whether the machine is a management machine (S61). In this example, first, software is transmitted from the machine 1, and since this "machine 1" is a management machine, a software body, a distribution destination list, and an alternative machine list are defined on the management machine (machine 1) (S62). Next, distribution destination route information is created from the distribution destination list (S63). In this example, since the software distribution destinations are machine 2 and machine 3, the distribution destination route information is machine 1 → machine 2 for machine 2 and machine 1 → machine 3 for machine 3.
[0070]
If the machine is not a management machine, the software body, distribution destination list, and alternative machine list are received from the management machine (machine 1) (S64), and the distribution destination route information is corrected with the machine as the top layer. (S65).
[0071]
Next, an intermediate distribution destination list is created from the machine of the distribution destination route information layer 1 (S66). Machine 2 is described in this intermediate distribution destination list.
[0072]
In addition, the pointer is positioned at the top of the intermediate distribution destination list, that is, at the position of “Machine 2” (S67). Next, the machine name at the position of the pointer is input to the distribution destination machine name (S68). As a result, “distribution destination machine name ← machine 2” is obtained.
[0073]
Next, it is determined whether the distribution destination machine name is NULL (no machine name is input) (S69). If the distribution destination machine name is NULL, the software is not distributed and the process is terminated.
[0074]
In this case, since “distribution destination machine name is not NULL”, the software body, distribution destination route information, and alternative machine list are distributed to the distribution destination machine (S70). In this case, the software body, distribution destination route information, and alternative machine list are distributed to “Machine 2”.
[0075]
Then, it is determined whether it has been sent normally (S71). If the distribution is successful, the distribution destination machine determines whether it is the final distribution destination (S72). If it is the final distribution destination, the distribution destination machine name is added to the completed distribution destination list of the management machine (S73). In the case of NO in S72 and when the process of adding to the completed distribution destination list in S73 is completed, the pointer is advanced by one (S74), and the process returns to S68.
[0076]
In the case of this example, distribution to the machine 2 succeeds and the machine 2 is the final distribution destination, so “machine 2” is recorded in the completed distribution destination list, the pointer is advanced by one, and the process returns to S68. . In this case, the pointer is located at “Machine 3”. In S70, the software main body, distribution destination route information, and alternative machine list are distributed to the machine 3, and it is determined whether or not the transmission is successful (S71).
[0077]
In this example, distribution to the machine 3 fails, so that the determination in S71 is NO. Even when the transmission is not successful, the distribution destination machine determines whether it is the final distribution destination as in the case of normal transmission (S75). If it is the final distribution destination, the distribution destination machine name is added to the retransmission distribution destination list of the management machine (S76). Next, the distribution destination machine determines whether it is another final distribution destination route (S77). In this example, “Machine 3” is not another final distribution destination route.
[0078]
However, if the route is another final distribution destination, an alternative machine to replace the distribution destination machine is taken out from the alternative machine list (S78). For example, if “Machine 7” and “Machine 8” are defined as the final distribution destination, “Machine 3” is the route of the other final distribution destination, and the process proceeds to S78, where “Machine 7” and “Machine 8” are alternative machines. Machine 2 "is taken out as an alternative machine. Then, it is determined whether the alternative machine is the machine (S79). If it is determined that the machine is the machine, the machine name at the pointer position in the intermediate distribution destination list is replaced with the intermediate distribution destination list in the distribution destination machine (S80).
[0079]
On the other hand, if the alternative machine is not the machine, the machine name at the pointer position in the intermediate distribution destination list is replaced with the alternative machine name (S81). If the machine name in the intermediate distribution destination list is duplicated by this change, the changed machine name is deleted.
[0080]
If the other final distribution destination is “Machine 7”, the alternative machine “Machine 2” is not the machine “Machine 1”. Therefore, in the process of S81, “Machine 3” in the intermediate distribution destination list is changed. Let it be “Machine 2”. As a result, distribution to the machine 7 is performed via the machine 2.
[0081]
Next, when the pointer position of the intermediate distribution destination list is changed in S80 or S81, the distribution destination machine name in the distribution destination route information is changed (S82). Also in this case, when the machine name is duplicated for one distribution destination record, the machine name of the lower hierarchy is deleted. As a result, if the distribution destination that failed to distribute is the route of another final distribution destination, an alternative machine is selected and distribution of the software to the other final distribution destination is attempted through the alternative machine. . If the alternative machine is the machine, the software is directly distributed from the machine to the lower level machine.
[0082]
In this example, since “machine 3” is not another final distribution destination route, the determination in S77 is NO as described above, and the process proceeds to S74. In S74, the pointer is advanced by one and the process returns to S68. There are only two distribution destinations, “Machine 2” and “Machine 3”. By advancing the pointer, the distribution destination becomes NULL. Therefore, the determination in S69 is YES, and the process of FIG. 9 ends.
[0083]
On the other hand, in another process operating on the management machine shown in FIG. 10, first, the completed distribution destination list and the retransmission distribution destination list are initialized (S91). Next, it waits for registration in the completed distribution destination list or retransmission distribution destination list (S92). In the process described above, “Machine 2” is first registered as a completed distribution destination list. Next, it is determined whether or not distribution destination list = completed distribution destination list + redistribution destination list (S93). This determination is NO until the machine 3 is registered in the redistribution destination list, and the process returns to S92 to repeat the determination.
[0084]
In the process described above, “Machine 3” is registered as a retransmission distribution destination list. Accordingly, in the determination of S93, the distribution destination list “machine 2, machine 3” = completed distribution destination list “machine 2” + retransmission distribution destination list “machine 3”.
[0085]
In this case, it is determined whether or not the retransmission distribution destination list “machine 3” = NULL (S94). If the distribution has been completed, the determination is YES, and the process ends.
[0086]
In this case, “Machine 3” is described in the retransmission distribution list, and NO is determined in S94. Therefore, the contents of the retransmission distribution destination list are input to the distribution destination list (S95), and a predetermined time (for example, about several seconds) is waited (S96). In this case, the machine 3 is input to the distribution destination list.
[0087]
When a predetermined time has elapsed, software distribution is started on the management machine using the changed distribution destination list (S97). In this case, software is distributed to the machine 3 again.
[0088]
In this way, the implementationStateIn this case, if the “failed machine” that has failed to distribute software is the final distribution destination, it is retransmitted to the final distribution destination machine. Therefore, distribution of software to the distribution destination can be completed.
[0089]
In particular, it has a "complete machine list" to determine whether distribution to all distribution destinations has been completed (including failures) and a "retransmission machine list" that describes the machines that should be retransmitted due to failures. In the automatic software distribution system, when the “failed machine” is the distribution destination, the software can be retransmitted.
[0090]
【The invention's effect】
Since the present invention is configured as described above, the following effects can be obtained.
[0091]
(I) In the hierarchical software automatic distribution system in which software is distributed to a plurality of machines distributed by hierarchy, the present invention does not go through the “alternative machine” when the already selected “alternative machine” is selected. It has the function of distributing directly from the sending machine to the machine below the alternative machine. As a result, it is possible to suppress the occurrence of an infinite loop in selecting an alternative machine for an intermediate hierarchy machine, and to continue software distribution to machines below that intermediate hierarchy.
[0092]
(Ii) Further, the present invention has a function of waiting for a predetermined time for recovery of an “alternative machine” when an already selected “alternative machine” is selected. Therefore, when the failure recovery is performed within a predetermined time, the distribution of the software to the alternative machine is completed, and the software distribution to the machines below the intermediate layer can be continued.
[0093]
(Iii) Further, according to the present invention, when a “failed machine” for which software distribution has failed is a final distribution destination, the information is retransmitted to the final distribution destination machine. Therefore, distribution of software to the distribution destination can be completed.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a hierarchical configuration of a system.
FIG. 2 is a diagram illustrating a route information master.
FIG. 3 is a diagram showing distribution destination route information.
FIG. 4 is a flowchart showing processing of the software automatic distribution system according to the first embodiment of the present invention.
FIG. 5 is a flowchart showing processing of the software automatic distribution system according to the first embodiment of the present invention.
FIG. 6 is a flowchart showing processing of the software automatic distribution system according to the second embodiment of the present invention.
FIG. 7 is a flowchart showing processing of the software automatic distribution system according to the second embodiment of the present invention.
FIG. 8 is a flowchart showing processing of the software automatic distribution system according to the third embodiment of the present invention.
FIG. 9 is a flowchart showing processing of the software automatic distribution system according to the third embodiment of the present invention.
FIG. 10 is a flowchart showing processing of the software automatic distribution system according to the third embodiment of the present invention.
[Explanation of symbols]
1-10 machines.

Claims (1)

最上位の階層にありソフトウェアの送付元マシンとなる管理マシンと、上位階層からのソフトウェアの配布を受ける時に配布先マシンとなり下位階層のマシンにソフトウェアを配布する時に送付元マシンとなる中間階層マシンと、上位階層からソフトウェアの配布を受ける配送先マシンとなる最下位階層マシンとを含み、階層別に振り分けた複数のマシンに対してソフトウェアを配布する階層型ソフトウェア自動配布システムにおいて、
管理マシンは、それぞれ自己の下位のマシンであって配布先マシンとなるマシンについての配布先経路情報と、配布が失敗したときに代わりに配布することができるマシンついての代替マシン情報を含む代替マシンリストを有しており、
中間階層マシンは、それぞれ自己の下位のマシンであって配布先マシンとなるマシンについての配布先経路情報と、配布が失敗したときに代わりに配布することができるマシンついての代替マシン情報を含む代替マシンリストを、上層のマシンから受け取ることにより有しており、
管理マシンおよび中間階層マシンは、
配布先マシンへのソフトウェア配布が失敗した時に、
その配布が失敗した配布先マシンが最終配布先マシンかを判定し、最終配布先マシンであった場合には、当該マシンを前記管理マシンの再配布先マシンリストに追加し、
この追加を行った場合および配布が失敗したマシンが最終配布先であった場合に、その配布が失敗した配布先マシンが他の最終配布先マシンの経路かを判定し、他の最終配布先の経路であった場合には代替マシンリストから代替マシンを取り出し、取り出された代替マシンを配布先マシンとして、ソフトウェアの配布を行い、
前記管理マシンは、
配布先マシンへのソフトウェア配布が失敗した時に、
再配布先リストに記載されている最終配布先であるマシンに対し、一定時間たった後にソフトウェアを再送することを特徴とするソフトウェア自動配布システム。
A management machine at the highest level that will be the software source machine, an intermediate level machine that will be the destination machine when receiving software distribution from the upper level, and the source machine when distributing software to lower level machines In a hierarchical software automatic distribution system that distributes software to a plurality of machines distributed by hierarchy, including the lowest hierarchy machine that is a delivery destination machine that receives software distribution from the upper hierarchy,
Management machine can alternatively each include a distribution destination path information about machine to be self-subordinate machine in a by distribution destination machine, the alternate machine information about the machine can be distributed instead when distribution fails Has a machine list,
The middle-tier machine is an alternative that contains distribution destination route information about the machine that is its own lower-level machine that is the distribution destination machine, and alternative machine information about the machine that can be distributed instead when distribution fails. Have a machine list by receiving it from the upper machine,
Management machines and middle-tier machines
When software distribution to the distribution destination machine fails,
It is determined whether the distribution destination machine whose distribution has failed is the final distribution destination machine, and if it is the final distribution destination machine, the machine is added to the redistribution destination machine list of the management machine,
If this addition is made, or if the machine that failed to distribute is the final distribution destination, it is determined whether the distribution destination machine that failed to distribute is the path of the other final distribution destination machine. If it is a route, take out the substitute machine from the substitute machine list, distribute the software using the taken out substitute machine as the distribution destination machine,
The management machine is
When software distribution to the distribution destination machine fails,
An automatic software distribution system which resends software after a predetermined time to a machine which is a final distribution destination described in a redistribution destination list.
JP05837999A 1999-03-05 1999-03-05 Software automatic distribution system Expired - Fee Related JP4390307B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05837999A JP4390307B2 (en) 1999-03-05 1999-03-05 Software automatic distribution system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05837999A JP4390307B2 (en) 1999-03-05 1999-03-05 Software automatic distribution system

Publications (2)

Publication Number Publication Date
JP2000259419A JP2000259419A (en) 2000-09-22
JP4390307B2 true JP4390307B2 (en) 2009-12-24

Family

ID=13082707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05837999A Expired - Fee Related JP4390307B2 (en) 1999-03-05 1999-03-05 Software automatic distribution system

Country Status (1)

Country Link
JP (1) JP4390307B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4690055B2 (en) * 2005-01-14 2011-06-01 三菱電機株式会社 Firmware update method and firmware update system
JP4644569B2 (en) 2005-09-02 2011-03-02 富士通セミコンダクター株式会社 How to start multiple chips
JP2007183714A (en) * 2006-01-04 2007-07-19 Mitsubishi Electric Corp Content distribution system, relay server and relay management server
JP5218820B2 (en) * 2008-03-07 2013-06-26 日本電気株式会社 Software installation system and method

Also Published As

Publication number Publication date
JP2000259419A (en) 2000-09-22

Similar Documents

Publication Publication Date Title
US7584174B2 (en) Update dependency control for multi-master replication
Birrell et al. Grapevine: An exercise in distributed computing
CN101535977B (en) Consistency within a federation infrastructure
US7822718B1 (en) Restoration of archived configurations for a network device
CN100485676C (en) Apparatus, system, and method for file system serialization reinitialization
WO1991014230A1 (en) Message communication processing system
JPH11327912A (en) Automatic software distribution system
US6526417B1 (en) System and method for change accumulation unmerged update reduction
US20140201484A1 (en) Data access and management system as well as a method for data access and data management for a computer system
CN106302709A (en) A kind of method and system of network file management
JP4390307B2 (en) Software automatic distribution system
JPH11127149A (en) Object movement processing unit and method in stored exchange type electronic conference system and medium recorded with movement processing program
JP3802977B2 (en) Information contradiction judgment, correction apparatus and method, and information contradiction judgment and correction program in storage exchange type electronic conference system
CN102136936B (en) Method, node and system for preventing control plane faults from influencing operation of forward data plane
JP3933770B2 (en) Destination conflict determination, correction device, destination conflict determination, and computer-readable recording medium recording a correction program in a storage and exchange type electronic conference system
US7051113B1 (en) Method and apparatus for computing a primary path while allowing for computing an alternate path by using a blocked list
KR101672724B1 (en) Middle-tier, data processing system including the same, and method of database transferring
JP2003060708A (en) Device, method and program for providing mail information
JP3679429B2 (en) File resource management system and method
JP3860385B2 (en) Dynamic linkage information takeover method, linkage process control device, and program recording medium thereof
JPH11127188A (en) Information transmission system and method in store and forward exchange type electronic conference system and medium stored with information transfer program
CN113254159B (en) Migration method and device of stateful service, computer equipment and storage medium
JP2938860B1 (en) Distributed data management system
JP2001014228A (en) System and method for file distribution, and recording medium
JPH11127148A (en) Recovery processing unit and method for registration information in stored exchange type electronic conference system and medium recorded with recovery processing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060119

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091006

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091006

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees