JP4286481B2 - Clustering system - Google Patents

Clustering system Download PDF

Info

Publication number
JP4286481B2
JP4286481B2 JP2001374748A JP2001374748A JP4286481B2 JP 4286481 B2 JP4286481 B2 JP 4286481B2 JP 2001374748 A JP2001374748 A JP 2001374748A JP 2001374748 A JP2001374748 A JP 2001374748A JP 4286481 B2 JP4286481 B2 JP 4286481B2
Authority
JP
Japan
Prior art keywords
job
slave
machine
file
program
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
JP2001374748A
Other languages
Japanese (ja)
Other versions
JP2003177929A (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.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
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 Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2001374748A priority Critical patent/JP4286481B2/en
Publication of JP2003177929A publication Critical patent/JP2003177929A/en
Application granted granted Critical
Publication of JP4286481B2 publication Critical patent/JP4286481B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、比較的安価なコンピュータを組み合わせて高速処理を実現するクラスタリングシステムに関し、特に利用者および管理者の双方にとっての使い勝手を向上させたクラスタリングシステムに関する。
【0002】
【従来の技術】
複数台のコンピュータ、特にパーソナルコンピュータのように比較的安価なコンピュータを用いて、全体として極めて高価なスーパーコンピュータ並みの処理速度を実現するクラスタリングシステムが知られている。従来のクラスタリングシステムは、以下のような特徴を有する。
・管理者等が、クラスタを構成する全コンピュータを事前に登録する。
・管理者等が、登録されているコンピュータに対して、実行プログラムを事前にインストールする。
・各コンピュータ上で実行プログラムを起動し、実行する。
・クラスタリングシステムが、プログラム間通信を行うためのライブラリを提供する。利用者は、予めこのライブラリを用いて通信を行うためのプログラミングを自らして、各実行プログラムは必要とする入力データの配布、および各プログラムが出力したデータの収集を行う。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のクラスタリングシステムでは、以下のような問題点がある。すなわち、上述のように管理者等がクラスタリングシステムを構成する全コンピュータを設定ファイル等に、事前に登録する必要があり、その設定ファイルの維持、管理が面倒である。また、管理者等は、実行プログラムを設定ファイルに登録されている全コンピュータに事前にインストールしなければならないので、手間がかかる上、作業ミスが発生しやすい。さらに、プログラム間通信を行うためのプログラミングを、利用者自らが行う必要があるため、プログラムの作成コストがかかる。
【0004】
そこで、本発明の目的は、利用者のプログラミングの手間を軽減したクラスタリングシステムおよびそれを構成する各コンピュータを提供することである。
【0005】
本発明の別の目的は、管理にかかる手間を軽減したクラスタリングシステムおよびそれを構成する各コンピュータを提供することである。
【0006】
本発明のまた別の目的は、全体での処理性能を向上させるために、効率的に処理を分散することである。
【0007】
【課題を解決するための手段】
本発明の一つの態様に従うクラスタリングシステムは、一のマスタマシンと、該マスタマシンにネットワークを介して接続される複数のスレーブマシンとを有するクラスタリングシステムにおいて、
前記マスタマシンは、
前記各スレーブマシンの通信アドレス、および、ジョブの実行状態を示すステータスを記憶するスレーブ管理手段と、
予め定められたジョブを実行するためのジョブプログラムを一以上記憶するプログラム記憶手段と、
前記ジョブプログラムを前記スレーブマシンのいずれかへ送信するプログラム送信手段と、
実行待ちのジョブを、前記スレーブ管理手段により管理されているスレーブマシンのうち、前記登録されているステータスがジョブを割り当てて実行させることが可能な待機状態にあり、かつ、ジョブの実行に要した所要時間の平均値を指標として、処理能力の高いスレーブマシンから優先して割り当てるジョブ割当処理手段と、
前記ジョブがアクセスするデータを格納するファイルを記憶するためのデータ記憶手段と、
前記スレーブマシンから前記データ記憶手段に格納されているファイルに対するジョブIDとファイル名を含むオープン通知を受けるとオープン通知において指定されたファイル名に該当するファイルをオープンし、オープンされたファイルについて前記スレーブマシンから要求されたリードまたはライトを行い、ジョブIDとファイル名とを含むクローズ通知を受けるとクローズ通知において指定されたファイル名に該当するファイルをクローズし、その結果を返信する入出力処理手段と、を備え、
前記各スレーブマシンは、
前記ジョブプログラムを受信する手段と、
受信したジョブプログラムにより実行されるジョブのデータ入出力要求を処理する入出力処理手段と、を備え、
前記各スレーブマシンの入出力処理手段は、実行中のジョブのデータ入出力要求を検出すると、前記マスタマシンにジョブIDとファイル名とを含むファイルオープンを通知し、ジョブからリードまたはライトの要求を受けると、リードまたはライトの要求を前記マスタマシンに通知し、かつ、ジョブからファイルクローズ要求を受けると、マスタマシンにジョブIDとファイル名とを含むファイルクローズを通知すること、を特徴とする。
【0008】
【発明の実施の形態】
以下、本発明の実施形態について、図面を用いて説明する。
【0009】
本発明を適用した一実施形態であるクラスタリングシステム1の全体構成を図1に示す。本システム1は、マスタマシン10と複数台のスレーブマシン20とを備え、互いにネットワーク9で接続されている。各スレーブマシン20は、それぞれ、割り当てられた処理を実行する。マスタマシン10は、スレーブマシン20および本システムが実行するタスクを管理する。本実施形態のクラスタリングシステム1は、マスタマシン10を一台だけ含んでいるが、二台以上のマスタマシン10を含んでいてもよい。
【0010】
マスタマシン10およびスレーブマシン20は、いずれも、例えば汎用的なコンピュータにより構成され、以下に説明する各マシン内の個々の構成要素または機能は、例えば、コンピュータのハードウェア上でコンピュータプログラムを実行することにより実現される。
【0011】
マスタマシン10は、通信処理部11と、入出力処理部12と、スレーブ管理部13と、ジョブ登録処理部14と、ジョブ割当処理部15と、記憶部17とを備える。記憶部17は、後述するジョブの実行プログラムを記憶するためのプログラム領域17aと、ジョブで使用するデータを格納するためのデータ領域17bとを備える。さらに、マスタマシン10は、CRTや液晶ディスプレイ等の表示装置7と、キーボードやポインティングデバイス等の入力装置8と接続されている。
【0012】
通信処理部11は、ネットワーク9に接続されているスレーブマシン20を自動検出し、検出したスレーブマシン20の通信アドレスをスレーブ管理部13に登録する。例えば、通信処理部11は、ネットワーク上に存在するスレーブマシン20およびそのステータスを確認するための問い合わせをブロードキャストし、これに応答したスレーブマシン20からの返信を受信する。そして、この返信に含まれているスレーブマシン20の通信アドレス、およびスレーブマシン20のステータスをスレーブ管理部13に登録する。通信処理部11は、スレーブ管理部13に登録されているスレーブマシン20との間でデータ送受信等を行う。
【0013】
また、通信処理部11は、通信アドレス及びステータスについてのスレーブマシン20からの自発的な通知を受け付けたときは、スレーブ管理部13内の該当スレーブマシン20に関する情報を更新する。
【0014】
スレーブ管理部13は、ネットワークに接続されているスレーブマシン20を管理する。具体的には、スレーブ管理部13は、図2に示すようなスレーブ管理テーブル40を有する。スレーブ管理テーブル40は、ネットワーク9に接続されているスレーブマシン20の通信アドレス(ここではIPアドレス)41と、各スレーブマシン20のステータス42とを対応付けている。ステータス42は、ジョブプログラムが割り当てられていて、その処理を実行中であることを示す「実行中」と、ジョブの実行中ではなく、ジョブを割り当てて実行させることが可能である「待機中」と、ジョブプログラムを実行するための前処理、または実行後の後処理を行っていて、実行中から待機中または待機中から実行中へ状態を遷移させている最中であることを示す「遷移中」とがある。
【0015】
入出力処理部12は、記憶部17の入出力に関する処理を行う。特に、スレーブマシン20から、データ領域17bに記憶されているファイルに対するアクセス指示を受け付けたとき、その指示に従ってファイルのオープン/クローズ、リード/ライト等を行い、その結果を返信する。ファイルアクセスの詳細については後述する。
【0016】
タスク・ジョブ登録処理部14は、ジョブ管理テーブル50(図4参照)を備え、タスクおよびジョブの登録を受け付けて、ジョブ管理テーブル50に記憶する。ここで、タスクは、一以上のジョブで構成される。一つのジョブは、一つのジョブプログラムで実装される。登録された実行形式のジョブプログラムは、プログラム領域17aに格納される。各ジョブが、それぞれ予め定められた処理を実行することにより、全体として所定の機能(タスク)が達成される。本実施形態では、一つのジョブプログラムが一つのJava(登録商標)プログラムで実現される。本システム1は、例えば、一つのタスクを構成する複数のジョブプログラムのそれぞれを、別々のスレーブマシン20に実行させて、並列分散処理を行ったり、一のタスクを構成する単一のジョブプログラムを複数のスレーブマシン20に実行させて、大量のデータを同時に処理することができる。
【0017】
タスクの登録は、図3に示すタスク・ジョブ登録画面100を表示装置7に表示させ、ユーザが入力装置8から入力することにより行う。登録画面100は、ジョブプログラム単位で入力を受け付けるために、以下の各項目の入力を受け付ける領域101〜107を有する。すなわち、登録画面100は、タスク名101、先行するタスク名102、ジョブプログラムの実行プログラム名103、メインクラス104、VMパラメータ105、ジョブプログラムの引数106、およびランタイムディレクトリ107の各項目の入力を受け付ける。ユーザは、タスク名101にジョブプログラムの属するタスクの名称を入力する。このジョブが属するタスクよりも先行して実行されるべきタスクがあれば、ユーザは先行タスク名102にそのタスク名を入力する。ユーザは、実行プログラム名103にパスを含めた実行形式のプログラム名を入力する。本実施形態ではJavaを用いて実装した場合について示しているので、メインクラス104および必要に応じてVMパラメータ105を指定する。
【0018】
登録画面100から入力された各項目は、図4に示すジョブ管理テーブル50に登録される。ジョブ管理テーブル50は、ジョブID51と、タスク名52と、実行プログラム名53と、実行条件(メインクラス、引数、VMパラメータ、及びランタイムディレクトリ)54と、先行タスク名55と、ジョブのステータス56とを項目として備える。ジョブID51は、実行プログラムを一意に識別する識別情報であり、ジョブ管理テーブル50に登録する際に自動生成される。ジョブステータス56は、マシンの割り当てを待っている「待ち」と、いずれかのスレーブマシン20で処理を行っている「実行中」と、処理が終了した状態を示す「終了」とがある。なお、「終了」には、正常に終了した「終了(正常)」と、異常終了した「終了(異常)」とを含む。
【0019】
ジョブ割当処理部15は、実行待ちのジョブをどのスレーブマシン20で実行させるかを決定する。つまり、ジョブ割当処理部15は、マシンの割当を待っているジョブが存在する場合、スレーブ管理テーブル40を参照して「待機中」のスレーブマシン20へジョブの実行を依頼する。このときの詳細な処理手順については、後述する。
【0020】
各スレーブマシン20は、それぞれ、通信処理部21と、入出力処理部22とを備える。そして、各スレーブマシン20は、マスタマシン10から送信されたジョブプログラムを実行する。
【0021】
通信処理部21は、マスタマシン10との間でデータ等の送受信を行う。例えば、通信処理部21は、マスタマシン10に対して自己の存在を知らせるために、自己の通信アドレス及びステータスの通知を、ネットワーク9に対してブロードキャストする。この通知は、随時行うことができるが、好ましくは、スレーブマシン20の起動時に行う。
【0022】
通信処理部21は、他のスレーブマシン20からこのアドレス及びステータス通知を受けることがあるが、これに対しては応答しない。
【0023】
また、通信処理部21は、マスタマシン10からの問い合わせに対して、自己の通信アドレス及びステータスを返信する。
【0024】
入出力処理部22は、スレーブマシン20上で実行されているジョブが、マスタマシン10のデータ領域17bにアクセスするための処理を行う。以下、ファイルアクセス時の処理について、マスタマシン10の入出力処理部12が行う処理と併せて詳細に説明する。
【0025】
スレーブマシン20の入出力処理部22は、実行中のジョブのデータ入出力要求を検出すると、マスタマシン10へファイルのオープンを通知する。このファイルオープン(またはクローズ)を通知するときのフォーマット例を、図5に示す。すなわち、ファイルオープン/クローズ通知60は、送信先であるマスタマシンのアドレス61と、送信元であるスレーブマシンのアドレス62と、ジョブID63と、アクセスするファイル名64と、オープン/クローズ種別65とを含む。ファイルオープンを通知するときは、オープン/クローズ種別65は、「オープン」とし、ファイルクローズを通知するときは、オープン/クローズ種別65は、「クローズ」とする。マスタマシンのアドレス61は、ジョブプログラムが起動されたときにマスタマシン10から通知される(詳細は後述する)。
【0026】
マスタマシン10の入出力処理部12は、オープン/クローズ通知60のオープン/クローズ種別65が「オープン」のとき、ファイル名64のファイルをオープンする。
【0027】
スレーブマシン20の入出力処理部22が、ジョブからリードあるいはライトの要求を受けると、リードあるいはライトの要求をそのままマスタマシン10へ通知する。
【0028】
マスタマシン10の入出力処理部12は、通知されたリードあるいはライトの要求に従って、オープンされたファイルのリードあるいはライトを行う。
【0029】
スレーブマシン20の入出力処理部22が、ジョブからファイルクローズ要求を受けると、オープン/クローズ種別65を「クローズ」として、ファイルオープン/クローズ通知60をマスタマシン10へ送信する。
【0030】
マスタマシン10の入出力処理部12は、オープン/クローズ通知60のオープン/クローズ種別65が「クローズ」のとき、ファイル名64のファイルをクローズする。
【0031】
なお、本実施形態では、入出力処理部12、及び入出力処理部22は、例えば、Javaの入出力ライブラリとして提供される。
【0032】
上述した通り、スレーブマシン20で実行されるジョブは、入出力処理部22へデータアクセスを依頼すれば、マスタマシン10上にあるデータへアクセスすることができる。これにより、各ジョブプログラムが分散処理を意識せずにプログラミングされたものであっても、本実施形態のクラスタリングシステム1上で正しく動作することができる。すなわち、本システム1の利用者は、プログラム間の通信機能を自らプログラミングする必要がなく、プログラム作成コストが軽減される。
【0033】
次に、本実施形態における分散処理の手順の一例について、図6に示すフローチャートを用いて説明する。
【0034】
ジョブ割当処理部15は、ジョブ登録処理部14のジョブ管理テーブル50を参照し、ジョブステータス56が「待ち」である、マシン割当を待っている実行待ち状態のジョブがあるかどうかをチェックする(S11)。実行待ちのジョブがあれば(S11:Yes)、以下の手順でそのジョブを実行する。なお、先行タスク55が設定されている場合は、その先行タスクが終了していることを条件とする。
【0035】
まず、ジョブ割当処理部15は、スレーブ管理部13のスレーブ管理テーブル40を参照して、ジョブを実行していない「待機中」のスレーブマシン20があるかどうかをチェックする(S12)。待機中のスレーブマシン20があるときは(S12:Yes)、ジョブ割当処理部15は、そのスレーブマシン20のステータス42を「遷移中」にするよう、スレーブ管理部13へ指示する。そして、ジョブ割当処理部15は、そのスレーブマシン20の通信アドレス41を取得して、実行しようとしているジョブの実行プログラム53がすでにそのスレーブマシン20に配布されているかどうかをチェックする(S13)。実行プログラムが配布済みであるかどうかのチェックは、例えば、以下のように行う。すなわち、実行プログラムがスレーブマシン20へ配布されると、スレーブマシン20は、図示しない記憶装置に実行プログラムを格納する。ジョブ割当処理部15は、スレーブマシン20の図示しない記憶装置を参照し、実行プログラムのファイル名とタイムスタンプを用いて、同一の実行プログラムであるかどうかを確認する。
【0036】
実行プログラムが未配布であるときは(S13:No)、ジョブ割当処理部15は、そのスレーブマシン20へ実行プログラムを送信する(S14)。その時のフォーマットを図7(a)に示す。すなわち、実行プログラムの送信データ70は、送信先であるスレーブマシンのアドレス71と、送信元であるマスタマシンのアドレス72と、ジョブID73と、実行プログラム74と、メインクラス75と、引数76とを含む。この送信データ70を受信したスレーブマシン20は、これらのデータを図示しない記憶装置に格納する。
【0037】
そして、スレーブマシン20は、ジョブ割当処理部15からの通知を受けて、実行プログラムを起動してジョブを実行する(S15)。スレーブマシン20に対する実行プログラムの起動通知には、マスタマシン10の通信アドレスが含まれる。スレーブマシン20では、マスタマシン10の通信アドレスを、プログラムの実行が終了するまで図示しない記憶装置に保持する。
【0038】
ジョブ割当処理部15は、実行プログラムを起動したスレーブマシン20の通信アドレスと併せて、実行プログラムが起動されたことをスレーブ管理部13へ通知する。スレーブ管理部13は、ジョブ割当処理部15からの通知を受けて、該当するスレーブマシン20のステータス42を「実行中」へ変化させる。
【0039】
ジョブが終了すると、スレーブマシン20がマスタマシン10へジョブの終了通知を行う。ジョブの終了通知のフォーマットを図7(b)に示す。終了通知80は、送信先であるマスタマシンのアドレス81と、送信元であるスレーブマシンのアドレス82と、ジョブID83と、正常終了であるか異常終了であるかを示す終了状態84とを含む。ジョブの終了通知後、図示しない記憶装置に保持されているマスタマシン10の通信アドレスが破棄される。
【0040】
ジョブ割当処理部15は、スレーブ管理部13およびジョブ登録処理部14に対して、終了通知に含まれるスレーブマシンのアドレス82と、ジョブID83と、終了状態84とを通知する。スレーブ管理部13は、この通知を受けて、該当するスレーブマシン20のステータス42を「待機中」へ変化させる。ジョブ登録処理部14は、この通知を受けて、該当するジョブのジョブステータス56を終了状態84が示す状態に変化させる。
【0041】
これにより、複数のジョブで構成されたタスクを、ジョブごとにスレーブマシンに分散させて実行することができる。特に、本実施形態では、実行プログラムをマスタマシンで一括して登録し、タスクの実行時に、必要に応じて実行プログラムを自動的に配布し、ジョブを分散して実行させる。これにより、本実施形態では、従来のクラスタリングシステムのように、事前に全スレーブマシンへ実行プログラムを配布しておく必要がない。
【0042】
また、ジョブ割当処理部15は、スレーブマシン20ごとに優先順位を付け、その優先順位に従ってジョブの割当を行うようにしてもよい。優先順位の決定方法は任意であるが、以下にその例を示す。
【0043】
まず、第1の方法は、スレーブマシンの処理能力を測定し、その結果、処理能力の高いスレーブマシンから優先してジョブを割り当てる。スレーブマシンの処理能力を示す指標としては、ジョブの実行に要した所要時間の平均値を用いる。この所要時間としては、例えば、ジョブ割当処理部15がスレーブマシンへジョブの実行を指示してから、ジョブの終了通知を受信するまでの時間を用いる。この場合の処理時間は、ネットワーク9の通信速度にも影響を受けるが、マスタマシンから見た、トータルでのスレーブマシンの処理能力と考えることができる。また、所要時間として、特定のジョブについての、スレーブマシンごとの処理時間を用いてもよい。特定のジョブとは、繰り返し実行されたジョブであって、複数のスレーブマシンで実行された実績を持つものである。
【0044】
次に、第2の方法は、マスタマシンと各スレーブマシンとの通信速度を測定し、その結果、通信速度の速いスレーブマシンから優先してジョブを割り当てる。通信速度は、ジョブ割当処理部15が通信したデータ量と通信に要した時間とを計測し、これらから算出する。
【0045】
本実施形態により、本システムの処理性能を向上させ、タスクを高速で処理するために、効率的にジョブを分散させることができる。
【0046】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【0047】
【発明の効果】
本発明によれば、利用者のプログラミングの手間が軽減される。また、管理にかかる手間も軽減される。さらに、効率的に処理を分散させて、処理性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明を適用した一実施形態であるクラスタリングシステム1の全体構成を示す図である。
【図2】スレーブ管理テーブル40の一例を示す図である。
【図3】タスク・ジョブ登録画面100の一例を示す図である。
【図4】ジョブ管理テーブル50の一例を示す図である。
【図5】ファイルオープン/クローズ通知60のフォーマットの一例を示す図である。
【図6】ジョブの分散処理の手順を示すフローチャートである。
【図7】(a)は、実行プログラムを配布するときの送信データ70のフォーマット例であり、(b)は、プログラムの終了通知80のフォーマット例である。
【符号の説明】
1…クラスタリングシステム、10…マスタマシン、11…通信処理部、12…入出力処理部、13…スレーブ管理部、14…ジョブ登録処理部、15…ジョブ割当処理部、17…記憶部、20…スレーブマシン、21…通信処理部、22…入出力処理部、40…スレーブ管理テーブル、50…ジョブ管理テーブル、60…ファイルオープン/クローズ通知、70…送信データ、80…終了通知、100…タスク・ジョブ登録画面。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a clustering system that achieves high-speed processing by combining relatively inexpensive computers, and more particularly to a clustering system that improves usability for both users and administrators.
[0002]
[Prior art]
There is known a clustering system that uses a plurality of computers, in particular, a relatively inexpensive computer such as a personal computer, and realizes a processing speed comparable to that of a very expensive supercomputer as a whole. The conventional clustering system has the following features.
-The administrator etc. registers all the computers that make up the cluster in advance.
-An administrator or the like installs an execution program in advance on a registered computer.
-Start and execute the execution program on each computer.
-A clustering system provides a library for inter-program communication. The user himself / herself performs programming for performing communication using this library, and each execution program distributes input data required and collects data output by each program.
[0003]
[Problems to be solved by the invention]
However, the conventional clustering system has the following problems. That is, as described above, it is necessary for an administrator or the like to register all the computers constituting the clustering system in a setting file or the like in advance, and maintenance and management of the setting file is troublesome. In addition, the administrator or the like has to install the execution program in advance on all the computers registered in the setting file, which is troublesome and easily causes work errors. Furthermore, since it is necessary for the user himself to perform programming for performing communication between programs, the cost of creating the program is increased.
[0004]
SUMMARY OF THE INVENTION An object of the present invention is to provide a clustering system that reduces the user's programming effort and each computer constituting the clustering system.
[0005]
Another object of the present invention is to provide a clustering system that reduces the labor involved in management and each computer that constitutes the clustering system.
[0006]
Another object of the present invention is to efficiently distribute processing in order to improve overall processing performance.
[0007]
[Means for Solving the Problems]
A clustering system according to one aspect of the present invention is a clustering system having one master machine and a plurality of slave machines connected to the master machine via a network.
The master machine is
A slave management means for storing a communication address of each slave machine and a status indicating a job execution state;
Program storage means for storing one or more job programs for executing a predetermined job;
Program transmission means for transmitting the job program to any of the slave machines;
Among the slave machines managed by the slave management means, the job waiting for execution is in a standby state in which the registered status can be assigned and executed , and the job is required to be executed. Job allocation processing means that assigns priority from the slave machine with high processing capacity, using the average value of the required time as an index ,
Data storage means for storing a file for storing data accessed by the job ;
When an open notification including a job ID and a file name for a file stored in the data storage means is received from the slave machine, the file corresponding to the file name specified in the open notification is opened, and the slave is opened for the opened file. I / O processing means for performing read or write requested from the machine, receiving a close notification including a job ID and a file name, closing the file corresponding to the file name specified in the close notification, and returning the result With
Each slave machine is
Means for receiving the job program;
An input / output processing means for processing a data input / output request of a job executed by the received job program ,
When the input / output processing unit of each slave machine detects a data input / output request of the job being executed, the input / output processing unit notifies the master machine of a file open including a job ID and a file name, and issues a read or write request from the job. When received, the master machine is notified of a read or write request, and when a file close request is received from a job, the master machine is notified of a file close including a job ID and a file name.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0009]
FIG. 1 shows an overall configuration of a clustering system 1 that is an embodiment to which the present invention is applied. The system 1 includes a master machine 10 and a plurality of slave machines 20 that are connected to each other via a network 9. Each slave machine 20 executes assigned processing. The master machine 10 manages tasks executed by the slave machine 20 and the present system. The clustering system 1 according to the present embodiment includes only one master machine 10, but may include two or more master machines 10.
[0010]
Each of the master machine 10 and the slave machine 20 is configured by, for example, a general-purpose computer, and individual components or functions in each machine described below execute, for example, a computer program on the computer hardware. Is realized.
[0011]
The master machine 10 includes a communication processing unit 11, an input / output processing unit 12, a slave management unit 13, a job registration processing unit 14, a job assignment processing unit 15, and a storage unit 17. The storage unit 17 includes a program area 17a for storing a job execution program, which will be described later, and a data area 17b for storing data used in the job. Further, the master machine 10 is connected to a display device 7 such as a CRT or a liquid crystal display and an input device 8 such as a keyboard or a pointing device.
[0012]
The communication processing unit 11 automatically detects the slave machine 20 connected to the network 9 and registers the detected communication address of the slave machine 20 in the slave management unit 13. For example, the communication processing unit 11 broadcasts an inquiry for confirming the slave machine 20 existing on the network and its status, and receives a reply from the slave machine 20 in response thereto. Then, the communication address of the slave machine 20 and the status of the slave machine 20 included in this reply are registered in the slave management unit 13. The communication processing unit 11 performs data transmission / reception and the like with the slave machine 20 registered in the slave management unit 13.
[0013]
Further, when the communication processing unit 11 receives a voluntary notification from the slave machine 20 regarding the communication address and status, the communication processing unit 11 updates information regarding the slave machine 20 in the slave management unit 13.
[0014]
The slave management unit 13 manages the slave machine 20 connected to the network. Specifically, the slave management unit 13 has a slave management table 40 as shown in FIG. The slave management table 40 associates the communication address (here, IP address) 41 of the slave machine 20 connected to the network 9 with the status 42 of each slave machine 20. The status 42 is “executing” indicating that the job program is assigned and the processing is being executed, and “waiting” in which the job can be assigned and executed instead of executing the job. "Transition" that indicates that the pre-processing for executing the job program or post-processing after execution is being performed and the state is being changed from being executed to waiting or from waiting to being executed. There is "inside".
[0015]
The input / output processing unit 12 performs processing related to input / output of the storage unit 17. In particular, when an access instruction for a file stored in the data area 17b is received from the slave machine 20, the file is opened / closed, read / written, etc. according to the instruction, and the result is returned. Details of file access will be described later.
[0016]
The task / job registration processing unit 14 includes a job management table 50 (see FIG. 4), accepts task and job registration, and stores them in the job management table 50. Here, the task is composed of one or more jobs. One job is implemented by one job program. The registered execution type job program is stored in the program area 17a. Each job executes a predetermined process, whereby a predetermined function (task) is achieved as a whole. In the present embodiment, one job program is realized by one Java (registered trademark) program. In the system 1, for example, each of a plurality of job programs constituting one task is executed by a separate slave machine 20 to perform parallel distributed processing, or a single job program constituting one task is executed. Multiple slave machines 20 can be executed to process a large amount of data simultaneously.
[0017]
The task registration is performed by causing the display device 7 to display a task / job registration screen 100 shown in FIG. The registration screen 100 includes areas 101 to 107 for receiving input of the following items in order to receive input in units of job programs. That is, the registration screen 100 accepts input of items of a task name 101, a preceding task name 102, a job program execution program name 103, a main class 104, a VM parameter 105, a job program argument 106, and a runtime directory 107. . The user inputs the task name 101 to which the job program belongs. If there is a task to be executed prior to the task to which this job belongs, the user inputs the task name in the preceding task name 102. The user inputs an execution format program name including a path in the execution program name 103. Since the present embodiment shows a case where the implementation is performed using Java, the main class 104 and the VM parameter 105 are designated as necessary.
[0018]
Each item input from the registration screen 100 is registered in the job management table 50 shown in FIG. The job management table 50 includes a job ID 51, a task name 52, an execution program name 53, an execution condition (main class, argument, VM parameter, and runtime directory) 54, a preceding task name 55, a job status 56, As an item. The job ID 51 is identification information for uniquely identifying the execution program, and is automatically generated when it is registered in the job management table 50. The job status 56 includes “waiting” waiting for machine assignment, “executing” processing in any of the slave machines 20, and “finished” indicating that the processing has been completed. Note that “end” includes “end (normal)” that ends normally and “end (abnormal)” that ends abnormally.
[0019]
The job allocation processing unit 15 determines which slave machine 20 is to execute a job waiting for execution. That is, when there is a job waiting for machine assignment, the job assignment processing unit 15 refers to the slave management table 40 and requests the “standby” slave machine 20 to execute the job. A detailed processing procedure at this time will be described later.
[0020]
Each slave machine 20 includes a communication processing unit 21 and an input / output processing unit 22. Each slave machine 20 executes the job program transmitted from the master machine 10.
[0021]
The communication processing unit 21 transmits and receives data and the like with the master machine 10. For example, the communication processing unit 21 broadcasts a notification of its own communication address and status to the network 9 in order to notify the master machine 10 of its existence. This notification can be performed at any time, but is preferably performed when the slave machine 20 is activated.
[0022]
The communication processing unit 21 may receive this address and status notification from another slave machine 20, but does not respond to this.
[0023]
Further, the communication processing unit 21 returns its own communication address and status in response to an inquiry from the master machine 10.
[0024]
The input / output processing unit 22 performs processing for a job being executed on the slave machine 20 to access the data area 17 b of the master machine 10. Hereinafter, the file access process will be described in detail together with the process performed by the input / output processing unit 12 of the master machine 10.
[0025]
When the input / output processing unit 22 of the slave machine 20 detects the data input / output request of the job being executed, the input / output processing unit 22 notifies the master machine 10 of the opening of the file. FIG. 5 shows a format example when notifying this file open (or close). That is, the file open / close notification 60 includes the address 61 of the master machine that is the transmission destination, the address 62 of the slave machine that is the transmission source, the job ID 63, the file name 64 to be accessed, and the open / close type 65. Including. When notifying the file open, the open / close type 65 is “open”, and when notifying the file close, the open / close type 65 is “closed”. The address 61 of the master machine is notified from the master machine 10 when the job program is started (details will be described later).
[0026]
The input / output processing unit 12 of the master machine 10 opens the file having the file name 64 when the open / close type 65 of the open / close notification 60 is “open”.
[0027]
When the input / output processing unit 22 of the slave machine 20 receives a read or write request from a job, it notifies the master machine 10 of the read or write request as it is.
[0028]
The input / output processing unit 12 of the master machine 10 reads or writes the opened file in accordance with the notified read or write request.
[0029]
When the input / output processing unit 22 of the slave machine 20 receives a file close request from the job, the open / close type 65 is set to “closed” and a file open / close notification 60 is transmitted to the master machine 10.
[0030]
The input / output processing unit 12 of the master machine 10 closes the file with the file name 64 when the open / close type 65 of the open / close notification 60 is “closed”.
[0031]
In the present embodiment, the input / output processing unit 12 and the input / output processing unit 22 are provided as, for example, a Java input / output library.
[0032]
As described above, a job executed on the slave machine 20 can access data on the master machine 10 by requesting data access to the input / output processing unit 22. Thereby, even if each job program is programmed without being conscious of distributed processing, it can operate correctly on the clustering system 1 of the present embodiment. That is, the user of the present system 1 does not need to program the communication function between programs by himself / herself, and the cost of creating a program is reduced.
[0033]
Next, an example of the procedure of distributed processing in this embodiment will be described using the flowchart shown in FIG.
[0034]
The job allocation processing unit 15 refers to the job management table 50 of the job registration processing unit 14 and checks whether there is a job waiting to be allocated to a machine whose job status 56 is “waiting” (waiting for machine allocation) (see FIG. S11). If there is a job waiting to be executed (S11: Yes), the job is executed according to the following procedure. If the preceding task 55 is set, it is a condition that the preceding task has been completed.
[0035]
First, the job allocation processing unit 15 refers to the slave management table 40 of the slave management unit 13 and checks whether there is a “standby” slave machine 20 that is not executing a job (S12). When there is a standby slave machine 20 (S12: Yes), the job allocation processing unit 15 instructs the slave management unit 13 to set the status 42 of the slave machine 20 to “in transit”. The job assignment processing unit 15 acquires the communication address 41 of the slave machine 20 and checks whether or not the execution program 53 of the job to be executed has already been distributed to the slave machine 20 (S13). Checking whether the execution program has been distributed is performed as follows, for example. That is, when the execution program is distributed to the slave machine 20, the slave machine 20 stores the execution program in a storage device (not shown). The job allocation processing unit 15 refers to a storage device (not shown) of the slave machine 20 and confirms whether or not they are the same execution program using the file name and time stamp of the execution program.
[0036]
When the execution program is not distributed (S13: No), the job allocation processing unit 15 transmits the execution program to the slave machine 20 (S14). The format at that time is shown in FIG. That is, the transmission data 70 of the execution program includes the address 71 of the slave machine that is the transmission destination, the address 72 of the master machine that is the transmission source, the job ID 73, the execution program 74, the main class 75, and the argument 76. Including. The slave machine 20 that has received the transmission data 70 stores these data in a storage device (not shown).
[0037]
The slave machine 20 receives the notification from the job assignment processing unit 15 and activates the execution program to execute the job (S15). The execution program start notification to the slave machine 20 includes the communication address of the master machine 10. In the slave machine 20, the communication address of the master machine 10 is held in a storage device (not shown) until the execution of the program is completed.
[0038]
The job allocation processing unit 15 notifies the slave management unit 13 that the execution program has been started, together with the communication address of the slave machine 20 that has started the execution program. In response to the notification from the job allocation processing unit 15, the slave management unit 13 changes the status 42 of the corresponding slave machine 20 to “in execution”.
[0039]
When the job ends, the slave machine 20 notifies the master machine 10 of the end of the job. FIG. 7B shows the format of the job end notification. The end notification 80 includes an address 81 of the master machine that is the transmission destination, an address 82 of the slave machine that is the transmission source, a job ID 83, and an end state 84 that indicates whether the end is normal end or abnormal end. After the job completion notification, the communication address of the master machine 10 held in a storage device (not shown) is discarded.
[0040]
The job allocation processing unit 15 notifies the slave management unit 13 and the job registration processing unit 14 of the slave machine address 82, the job ID 83, and the end state 84 included in the end notification. Upon receiving this notification, the slave management unit 13 changes the status 42 of the corresponding slave machine 20 to “waiting”. Upon receiving this notification, the job registration processing unit 14 changes the job status 56 of the corresponding job to the state indicated by the end state 84.
[0041]
As a result, a task composed of a plurality of jobs can be distributed to the slave machines and executed for each job. In particular, in the present embodiment, execution programs are registered in a batch on the master machine, and when executing a task, the execution programs are automatically distributed as necessary, and jobs are distributed and executed. Thereby, in this embodiment, unlike the conventional clustering system, it is not necessary to distribute the execution program to all the slave machines in advance.
[0042]
Further, the job assignment processing unit 15 may assign priorities to each slave machine 20 and assign jobs according to the priorities. The method for determining the priority order is arbitrary, but an example is shown below.
[0043]
First, the first method measures the processing capacity of a slave machine, and as a result, assigns jobs with priority from slave machines with high processing capacity. As an index indicating the processing capability of the slave machine, an average value of the time required for executing the job is used. As the required time, for example, the time from when the job allocation processing unit 15 instructs the slave machine to execute a job until it receives a job end notification is used. The processing time in this case is affected by the communication speed of the network 9, but can be considered as the total processing capacity of the slave machine as seen from the master machine. As the required time, the processing time for each slave machine for a specific job may be used. The specific job is a job that has been repeatedly executed and has a record of execution on a plurality of slave machines.
[0044]
Next, in the second method, the communication speed between the master machine and each slave machine is measured, and as a result, a job is preferentially assigned from a slave machine having a high communication speed. The communication speed is calculated by measuring the amount of data communicated by the job allocation processing unit 15 and the time required for communication.
[0045]
According to the present embodiment, jobs can be efficiently distributed in order to improve the processing performance of the system and process tasks at high speed.
[0046]
The above-described embodiments of the present invention are examples for explaining the present invention, and are not intended to limit the scope of the present invention only to those embodiments. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention.
[0047]
【The invention's effect】
According to the present invention, the user's programming effort is reduced. In addition, management effort is reduced. Furthermore, the processing performance can be improved by efficiently distributing the processing.
[Brief description of the drawings]
FIG. 1 is a diagram showing an overall configuration of a clustering system 1 which is an embodiment to which the present invention is applied.
FIG. 2 is a diagram illustrating an example of a slave management table 40;
FIG. 3 is a diagram showing an example of a task / job registration screen 100;
4 is a diagram illustrating an example of a job management table 50. FIG.
FIG. 5 is a diagram illustrating an example of a format of a file open / close notification 60;
FIG. 6 is a flowchart illustrating a procedure of job distribution processing;
7A is a format example of transmission data 70 when distributing an execution program, and FIG. 7B is a format example of a program end notification 80;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Clustering system, 10 ... Master machine, 11 ... Communication processing part, 12 ... Input / output processing part, 13 ... Slave management part, 14 ... Job registration processing part, 15 ... Job allocation processing part, 17 ... Storage part, 20 ... Slave machine, 21 ... communication processing unit, 22 ... input / output processing unit, 40 ... slave management table, 50 ... job management table, 60 ... file open / close notification, 70 ... send data, 80 ... end notification, 100 ... task Job registration screen.

Claims (3)

一のマスタマシンと、該マスタマシンにネットワークを介して接続される複数のスレーブマシンとを有するクラスタリングシステムにおいて、
前記マスタマシンは、
前記各スレーブマシンの通信アドレス、および、ジョブの実行状態を示すステータスを記憶するスレーブ管理手段と、
予め定められたジョブを実行するためのジョブプログラムを一以上記憶するプログラム記憶手段と、
前記ジョブプログラムを前記スレーブマシンのいずれかへ送信するプログラム送信手段と、
実行待ちのジョブを、前記スレーブ管理手段により管理されているスレーブマシンのうち、前記登録されているステータスがジョブを割り当てて実行させることが可能な待機状態にあり、かつ、ジョブの実行に要した所要時間の平均値を指標として、処理能力の高いスレーブマシンから優先して割り当てるジョブ割当処理手段と、
前記ジョブがアクセスするデータを格納するファイルを記憶するためのデータ記憶手段と、
前記スレーブマシンから前記データ記憶手段に格納されているファイルに対するジョブIDとファイル名を含むオープン通知を受けるとオープン通知において指定されたファイル名に該当するファイルをオープンし、オープンされたファイルについて前記スレーブマシンから要求されたリードまたはライトを行い、ジョブIDとファイル名とを含むクローズ通知を受けるとクローズ通知において指定されたファイル名に該当するファイルをクローズし、その結果を返信する入出力処理手段と、を備え、
前記各スレーブマシンは、
前記ジョブプログラムを受信する手段と、
受信したジョブプログラムにより実行されるジョブのデータ入出力要求を処理する入出力処理手段と、を備え、
前記各スレーブマシンの入出力処理手段は、実行中のジョブのデータ入出力要求を検出すると、前記マスタマシンにジョブIDとファイル名とを含むファイルオープンを通知し、ジョブからリードまたはライトの要求を受けると、リードまたはライトの要求を前記マスタマシンに通知し、かつ、ジョブからファイルクローズ要求を受けると、マスタマシンにジョブIDとファイル名とを含むファイルクローズを通知すること、を特徴とするクラスタリングシステム。
In a clustering system having one master machine and a plurality of slave machines connected to the master machine via a network,
The master machine is
A slave management means for storing a communication address of each slave machine and a status indicating a job execution state;
Program storage means for storing one or more job programs for executing a predetermined job;
Program transmission means for transmitting the job program to any of the slave machines;
Among the slave machines managed by the slave management means, the job waiting for execution is in a standby state in which the registered status can be assigned and executed , and the job is required to be executed. Job allocation processing means that assigns priority from the slave machine with high processing capacity, using the average value of the required time as an index ,
Data storage means for storing a file for storing data accessed by the job ;
When an open notification including a job ID and a file name for a file stored in the data storage means is received from the slave machine, the file corresponding to the file name specified in the open notification is opened, and the slave is opened for the opened file. I / O processing means for performing read or write requested from the machine, receiving a close notification including a job ID and a file name, closing the file corresponding to the file name specified in the close notification, and returning the result With
Each slave machine is
Means for receiving the job program;
An input / output processing means for processing a data input / output request of a job executed by the received job program ,
When the input / output processing unit of each slave machine detects a data input / output request of the job being executed, the input / output processing unit notifies the master machine of a file open including a job ID and a file name, and issues a read or write request from the job. When receiving, the master machine is notified of a read or write request, and when a file close request is received from a job, the master machine is notified of a file close including a job ID and a file name. system.
請求項1に記載のクラスタリングシステムにおいて、
前記ジョブ割当処理手段は、前記ジョブを割り当てるスレーブマシンに、実行しようとしているジョブの実行プログラムがすでに配布されているかをチェックし、未配布であるとき、その実行プログラムを当該スレーブマシンに送信すること、を特徴とするクラスタリングシステム。
The clustering system according to claim 1,
The job allocation processing means checks whether or not the execution program of the job to be executed has already been distributed to the slave machine to which the job is allocated, and transmits the execution program to the slave machine when it has not been distributed. A clustering system characterized by
請求項2に記載のクラスタリングシステムにおいて、
前記ジョブ割当処理手段は、前記スレーブマシンに記憶されている実行プログラムのファイル名およびタイムスタンプを用いて、配布する実行プログラムが同一のプログラムであるかを確認することにより、実行プログラムがすでに配布されているかをチェックすること、を特徴とするクラスタリングシステム。
The clustering system according to claim 2,
The job allocation processing means uses the file name and time stamp of the execution program stored in the slave machine to check whether the execution program to be distributed is the same program, so that the execution program has already been distributed. A clustering system characterized by checking whether or not
JP2001374748A 2001-12-07 2001-12-07 Clustering system Expired - Fee Related JP4286481B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001374748A JP4286481B2 (en) 2001-12-07 2001-12-07 Clustering system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001374748A JP4286481B2 (en) 2001-12-07 2001-12-07 Clustering system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009037614A Division JP4870790B2 (en) 2009-02-20 2009-02-20 Clustering system

Publications (2)

Publication Number Publication Date
JP2003177929A JP2003177929A (en) 2003-06-27
JP4286481B2 true JP4286481B2 (en) 2009-07-01

Family

ID=19183264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001374748A Expired - Fee Related JP4286481B2 (en) 2001-12-07 2001-12-07 Clustering system

Country Status (1)

Country Link
JP (1) JP4286481B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235019A (en) * 2004-02-20 2005-09-02 Sony Corp Network system, distributed processing method and information processor
JP5033343B2 (en) * 2006-03-28 2012-09-26 株式会社野村総合研究所 Job management apparatus and job management method
CN102508643A (en) * 2011-11-16 2012-06-20 刘大可 Multicore-parallel digital signal processor and method for operating parallel instruction sets

Also Published As

Publication number Publication date
JP2003177929A (en) 2003-06-27

Similar Documents

Publication Publication Date Title
US8788668B2 (en) Information processing apparatus, information processing system, setting program transmission method and server setting program
CN102567073B (en) Insertion of management agents during machine deployment
US7415709B2 (en) Virtual resource ID mapping
US8549517B2 (en) Address assignment method, computer, and recording medium having program recorded therein
JP4233585B2 (en) Peripheral switching device and peripheral switching control device
US8040900B2 (en) N-port network adaptor
US20100293269A1 (en) Inventory management in a computing-on-demand system
JP2001331333A (en) Computer system and method for controlling computer system
US10289564B2 (en) Computer and memory region management method
WO2010066547A2 (en) Shared resource service provisioning using a virtual machine manager
US8738890B2 (en) Coupled symbiotic operating system
US20120198190A1 (en) Making automated use of data volume copy service targets
US8141084B2 (en) Managing preemption in a parallel computing system
US20100100892A1 (en) Managing hosted virtualized operating system environments
KR102524540B1 (en) Apparatus and method for multi-cloud service platform
US20060167886A1 (en) System and method for transmitting data from a storage medium to a user-defined cluster of local and remote server blades
US9405472B2 (en) Tracking ownership of memory in a data processing system through use of a memory monitor
JPWO2009066611A1 (en) Data storage system for virtual machine, data storage method, and data storage program
JP2008107966A (en) Computer system
JP4870790B2 (en) Clustering system
JP4286481B2 (en) Clustering system
US20120089804A1 (en) Volume allocating method for virtual computers and computer system using the method
US9088569B2 (en) Managing access to a shared resource using client access credentials
US20230106327A1 (en) Systems and methods for data mover selection
JP6244496B2 (en) Server storage system management system and management method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060228

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060501

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060706

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090220

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: 20090325

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

Free format text: PAYMENT UNTIL: 20120403

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: 20120403

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees