JP2011203867A - 分散コントローラ、分散処理システム、及び、分散処理方法 - Google Patents

分散コントローラ、分散処理システム、及び、分散処理方法 Download PDF

Info

Publication number
JP2011203867A
JP2011203867A JP2010068864A JP2010068864A JP2011203867A JP 2011203867 A JP2011203867 A JP 2011203867A JP 2010068864 A JP2010068864 A JP 2010068864A JP 2010068864 A JP2010068864 A JP 2010068864A JP 2011203867 A JP2011203867 A JP 2011203867A
Authority
JP
Japan
Prior art keywords
control module
unit
information
distributed
processing
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.)
Withdrawn
Application number
JP2010068864A
Other languages
English (en)
Inventor
Arata Shinozaki
新 篠崎
Takayuki Nakatomi
高之 中富
Masanori Kubo
允則 久保
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.)
Olympus Corp
Original Assignee
Olympus 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 Olympus Corp filed Critical Olympus Corp
Priority to JP2010068864A priority Critical patent/JP2011203867A/ja
Priority to CN2011100708543A priority patent/CN102200768A/zh
Priority to US13/069,757 priority patent/US20110238959A1/en
Publication of JP2011203867A publication Critical patent/JP2011203867A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Abstract

【課題】演算部に分散処理を行わせる制御部の保守性を向上させることのできる分散コントローラ、分散処理システム、及び、分散処理方法を提供する。
【解決手段】2つ以上の演算部を制御して分散処理を行わせる、演算部に接続された分散コントローラであって、複数の制御モジュールによって構成され、制御モジュールはそれぞれ、少なくとも他の一つの制御モジュールと互いに接続されており、複数の制御モジュールのうちの少なくとも2つを用いて、演算部間の処理経路を決定する。
【選択図】図8

Description

本発明は、分散コントローラ、分散処理システム、及び、分散処理方法に関するものである。
従来の分散コントローラ、分散処理システム、又は分散処理方法として、例えば、特許文献1記載の分散型コントローラ、特許文献2記載のマルチプロセッサシステム、特許文献3記載の分散処理システムがある。
特開2004−352459号公報 特開2009−129219号公報 特許第3006187号明細書
しかしながら、特許文献1の分散型コントローラでは、コントローラ間でメッセージのやり取りをして、協調を図ってはいるものの、各コントローラは独立してI/Oやセンサ制御を行うものであって、コントローラ単体で動作可能である。すなわち、各コントローラは耐故障性及び拡張性を有しておらず、保守性が低い。
また、特許文献2記載のマルチプロセッサシステムでは、各演算部間に経路が構築されているが、制御部にあたるプロセッサ情報管理部の具体的な内部構成は開示されておらず、分散は不可能であるため、制御部の保守性を確保することが困難である。
さらにまた、特許文献3記載の分散処理システムでは、機能モジュールがネットワーク上に分散され協調することが可能であるが、データ転送の経路を決定する制御部にあたる部分がメタオブジェクトとして必ず機能モジュールと対で定義され、分離することができない。したがって、すべての機能モジュールにメタオブジェクトを定義する必要があり、保守性は期待できない。
そこで、本発明に係る分散コントローラ、分散処理システム、及び、分散処理方法は、演算部に分散処理を行わせる制御部の保守性を向上させることを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る分散コントローラは、2つ以上の演算部を制御して分散処理を行わせる、演算部に接続された分散コントローラであって、複数の制御モジュールによって構成され、制御モジュールはそれぞれ、少なくとも他の一つの制御モジュールと互いに接続されており、複数の制御モジュールのうちの少なくとも2つを用いて、演算部間の処理経路を決定することを特徴とする。
本発明に係る分散コントローラにおいて、複数の制御モジュールの各々は、他の制御モジュールとの接続関係を定義した分散コントローラ接続情報を保持し、複数の制御モジュールは、それぞれ、分散コントローラ接続情報にしたがって、接続要求を発行し、あるいは、他の制御モジュールからの接続要求に応答して接続を確立するかどうかを判断し、自律的に接続を確立することが好ましい。
本発明に係る分散コントローラにおいて、制御モジュールは、起動時に他の制御モジュールに対して起動を通知し、接続要求の発行を他の制御モジュールに促すことが好ましい。
本発明に係る分散コントローラにおいて、制御モジュールは、接続を確立した他の制御モジュールに関する制御モジュール情報を取得し、制御モジュール間の接続が不通となったときに、制御モジュール情報に記載された制御モジュールに対して接続要求を再発行することが好ましい。
本発明に係る分散コントローラにおいて、要求されたタスクを解析し、タスクを構成するサービスを取得するサービス取得手段と、接続された演算部に関する情報を取得する演算部情報取得手段と、タスクを構成するサービスと演算部に関する演算部情報とを用いて、サービスを分散処理するための処理経路を決定する処理経路決定手段と、が複数の制御モジュールのうちの2つ以上に割り当てられていることが好ましい。
本発明に係る分散コントローラにおいて、制御モジュールの一つであって、他の複数の制御モジュールのうち少なくとも一つの接続された制御モジュールに関する制御モジュール情報を管理する管理手段を有し、管理手段は、制御モジュール情報と、設定された選択条件と、を用いて分散コントローラを形成する制御モジュールを選択することが好ましい。
本発明に係る分散コントローラにおいて、管理手段は、1つの制御モジュールにより構成されていることが好ましい。
本発明に係る分散コントローラにおいて、管理手段は、複数の制御モジュールにより構成されていることが好ましい。
本発明に係る分散コントローラにおいて、サービス取得手段、演算部情報取得手段、及び、処理経路決定手段に、別個の管理手段がそれぞれ割り当てられていることが好ましい。
本発明に係る分散コントローラにおいて、互いに異なる処理経路決定方法によって処理経路を決定する複数の処理経路決定手段を、互いに異なる制御モジュールにそれぞれ割り当てることが好ましい。
本発明に係る分散コントローラにおいて、互いに異なる演算部情報、または、これらの組合せを、互いに異なる演算部情報取得手段にそれぞれ割り当て、演算部情報取得手段を管理する管理手段は、処理経路決定手段を管理する管理手段が選択した処理経路決定手段において処理経路を決定するために必要な情報を得ることを選択条件として、制御モジュール情報から演算部情報取得手段を選択することが好ましい。
本発明に係る分散コントローラにおいて、制御モジュールは、同一の機能をもつ複数の制御モジュールに接続して制御モジュール情報を取得し、選択している制御モジュールが使用不可であると判断した場合に、制御モジュール情報から同一の機能をもつ制御モジュールを再選択することが好ましい。
本発明に係る分散コントローラにおいて、制御モジュールの一つであって、他の制御モジュールから指定された制御モジュールを起動条件に従って起動する起動手段を有することが好ましい。
本発明に係る分散コントローラにおいて、制御モジュールは、起動手段に自分自身の複製を指定することが好ましい。
本発明に係る分散コントローラにおいて、起動手段は、制御モジュールの複製を保持しており、他の制御モジュールからの指定に従って、複製を起動することが好ましい。
本発明に係る分散コントローラにおいて、制御モジュールは、他の制御モジュールと重複しないように起動手段に複製の起動を指定することが好ましい。
また、本発明に係る分散処理システムは、2つ以上の演算部と、2つ以上の演算部に接続され、2つ以上の演算部を制御して分散処理を行わせる分散コントローラと、を備え、分散コントローラは、複数の制御モジュールによって構成され、制御モジュールはそれぞれ、少なくとも他の一つの制御モジュールと互いに接続されており、複数の制御モジュールのうちの少なくとも2つを用いて、演算部間の処理経路を決定することを特徴とする。
さらにまた、本発明に係る分散処理方法は、2つ以上の演算部と、2つ以上の演算部に接続された分散コントローラと、を備え、分散コントローラが、複数の制御モジュールによって構成され、制御モジュールがそれぞれ、少なくとも他の一つの制御モジュールと互いに接続されている分散処理システムの分散処理方法であって、複数の制御モジュールのうちの少なくとも2つを用いて、演算部間の処理経路を決定する工程と、分散コントローラの制御に基づいて、処理経路の演算部が分散処理を実行する工程と、を有することを特徴とする。
本発明に係る分散コントローラ、分散処理システム、及び、分散処理方法は、演算部に分散処理を行わせる制御部の保守性を向上させることができる、という効果を奏する。
分散処理システムの基本的な構成を示す図である。 JPEG復号化処理の処理フローを示す図である。 図1に示す分散処理システムにおいてJPEG復号化処理を実行するシステムを示す図である。 JPEG復号化処理を表すタスク構成情報の構成例としてのタスク構成表を示す図である。 図1に示す分散処理システムにおける静的情報表の構成例を示す図である。 図1に示す分散処理システムにおける動的情報表の構成例を示す図である。 図3に示すシステム構成でJPEG復号化処理を行なう場合の処理経路表を示す図である。 第1実施形態の制御部の内部構成を示す図である。 第1実施形態における制御部の内部構成を含む分散処理システム全体の構成を示す図である。 各制御モジュールを配置する物理的なネットワークを示す図である。 図9のシステム構成におけるJPEG復号化処理の処理順序を示す図である。 第1実施形態の制御モジュールの起動シーケンスを示す図である。 制御モジュール情報の構成例を示す図である。 制御モジュール管理表の構成例を示す図である。 制御モジュールの再接続のシーケンスを示す図である。 第2実施形態の制御部の内部の構成を含む分散処理システム全体の基本構成を示す図である。 処理経路決定部を主とし、管理部を従とした場合の接続手順を説明する図である。 図17の全シーケンス終了後の管理部が保持する制御モジュール情報を示す図である。 拡張した制御部の内部構成を含む分散処理システム全体の基本構成を示す図である。 処理経路決定部が接続された後の管理部の制御モジュール管理表を示す図である。 図19のシステム構成におけるJPEG復号化処理の処理順序を示す図である。 管理部を一つに集約した制御部を含む分散処理システムの構成を示す図である。 第3実施形態における制御部の内部の構成を含む分散処理システム全体の構成を示す図である。 第3実施形態の各制御モジュールの故障時の対応の流れを示すフローチャートである。 第4実施形態における制御部の内部の構成を含む分散処理システム全体の構成を示す図である。 管理部の複製処理に関するフローチャートを示す図である。 起動部の複製処理に関するシーケンスを示す図である。 第4実施形態における複製処理後の制御部の内部の構成を含む処理システム全体の構成を示す図である。 起動部の複製処理後の制御部を起動した分散処理システム全体の構成を示す図である。
以下に、本発明に係る分散コントローラ、分散処理システム、及び、分散処理方法の実施形態を図面に基づいて詳細に説明する。なお、以下の実施形態によりこの発明が限定されるものではない。
以下の実施形態に係る分散コントローラ、分散処理システム、及び、分散処理方法は、制御機能を複数の機能モジュールに分割し、モジュールごとにネットワーク分散可能としている。これにより、各モジュールの更新や保守がモジュール単位で可能となり、保守性を向上させることができる。ここで、保守性とは、定常的なメンテナンスを意味する。
また、ネットワーク分散可能とすることで、モジュールそのものやモジュールが動作するプラットフォーム(例えば、PC(Personal Computer))が故障しても、代替モジュールを立ち上げることで、復旧も容易で耐故障性を向上させることができる。ここで言う耐故障性は、故障時の保守性である。
さらに、管理部を設け、同じ機能を異なる方法で提供する機能モジュールを複数登録しておくことにより、システムの拡張性を向上させることができる。ここで、システムの拡張性は、システム更新時の保守性を言うものとする。
図1は、分散処理システムの基本的な構成を示す図である。
図1に示すように、分散処理システムは、処理要求部10、分散コントローラとしての制御部20、N個の演算部31、32、33、34、35、36、37、...、3Nで構成されている。Nは自然数とする。各演算部は、固有のデータ処理機能を有している。制御部20は処理要求部10が要求するデータ処理を受け付けて、各演算部の提供する固有のデータ処理機能の組み合わせで要求されたデータ処理を構成可能か判断し、最適な演算部を選択する。そして、選択した演算部間の通信路を定義する。制御部20は定義した通信路を選択した演算部に配信することで、各演算部が動的に通信路を接続し、処理システムを動的に構築する。
分散処理の例として、処理要求部10からJPEG(Joint Photographic Experts Group)復号化処理がデータ処理として要求された場合について説明する。図2はJPEG復号化処理の処理フローを示す図である。
JPEG復号化処理は、ファイル解析S2701、ハフマン復号化S2702、逆量子化S2703、IDCT(Inverse Discrete Cosine Transform)S2704、アップサンプリングS2705、色空間変換S2706、及び、結果出力S2707の7つの処理段階からなる連続的な処理として定義する。ここで、演算部31、32、33、34、35、36、37は、S2701からS2707の各処理段階における処理をサービスとしてそれぞれ提供するものとする。
制御部20は、JPEG復号化処理を実行可能な演算部として、演算部31、32、33、34、35、36、37を選択し、これらの演算部間の経路を動的に構築する。すなわち、制御部20は、図3に示すJPEG復号化処理システムを動的に構築する。ここで、図3は、図1に示す分散処理システムにおいてJPEG復号化処理を実行するシステムを示す図である。
動的に処理システムを構築するために、制御部20は、タスク構成情報と演算部情報を保持しており、これらに基づいて処理システムを定義する処理経路情報を動的に生成する。
図4は、JPEG復号化処理を表すタスク構成情報の構成例としてのタスク構成表を示す図である。
図4に示すタスク構成表2400は、タスク、タスクを構成するサービス、及び、サービス間の経路を定義したデータ構造である。タスク構成表2400は、タスク固有のタスク番号2401、タスクを構成するサービス数2402、タスクを構成するサービス固有のサービス番号の列2403、サービス間の経路数2404、及び、各経路の入出力を定義する入出力番号の列2405、から構成されている。
各項目の具体的な数値例としては、図4に示すように、JPEG復号化処理を表すタスク番号を100、ファイル解析、ハフマン復号化、逆量子化、IDCT、アップサンプリング、色空間変換、及び、結果出力のサービス番号を、それぞれ101、102、103、104、105、106、107とする。入出力番号列2405はインデックスと呼ぶ内部表現を用いて表す。インデックスは、サービス番号列2403の順番を表している。すなわちインデックス1はサービス番号列の1番目のサービス番号101と対応しており、同様にインデックス7はサービス番号列の7番目のサービス番号107と対応している。
入出力番号列2405は、上から順に入力と出力の対で表されている。すなわち、1番目の経路はインデックス1で表わされるサービスを入力とし、インデックス2で表わされるサービスを出力としている。同様に、6番目の経路はインデックス6で表わされるサービスを入力とし、インデックス7で表わされるサービスを出力としている。
次に、演算部情報について、図5、図6を参照しつつ説明する。
演算部情報は、静的情報と動的情報で構成される。図5は、図1に示す分散処理システムにおける静的情報表1900の構成例を示す図である。図5には便宜上演算部39までの情報のみを記載するが、静的情報表1900には制御部20に接続されているすべての演算部の情報が記載されている。制御部20は、静的情報表1900を用いて、接続されている演算部を管理する。静的情報表1900は、各演算部に固有の番号である演算部番号1901、各演算部が提供可能なサービス数1902、各演算部が提供可能なサービスの番号1903、各演算部の接続先情報1904、及び演算部構成1905で構成されている。
演算部構成1905は、演算部の構成に関する静的な情報で、OS(Operating System)、メモリ容量、ストレージ容量、プロセッサアーキテクチャ、ネットワーク通信速度などを含む。各演算部は2つ以上のサービスを提供することも可能である。サービスの選択は、データ処理時の条件によって決定する。データ処理時の条件は、データヘッダで判別される映像、文字列などのデータの種類、データの処理順序、処理負荷などの演算部の状態などを含む。サービスの選択は、制御部からサービスを指定するパラメータを送信して設定してもよい。図5では、演算部構成1905として、OSとメモリ容量を示しているが、これらに限定されない。
接続先情報1904は、図5ではIPアドレスを示しているが、ポート番号を含めてもよいし、ハードウェアの入出力に対応したチャネル番号でもよい。また、接続先情報1904は、通信相手同士で固定の情報として、固定接続先だけで継続してもよいし、固定接続先を使って別の接続先を通信前に取り決めてもよい。
各演算部は、起動すると制御部20に接続し、自身の起動を通知する。さらに各演算部は、演算部番号、サービス数、サービス番号、及び、演算部構成を制御部20に通知する。それらの情報に基づいて、制御部20は、静的情報表1900を更新する。
次に、動的な演算部情報(動的情報)について図6を参照して説明する。図6は、図1に示す分散処理システムにおける動的情報表2000の構成例を示す図である。図6には便宜上演算部39までの情報のみを記載するが、動的情報表2000には制御部20に接続されているすべての演算部の情報が記載されている。動的情報表2000は、演算部番号2001、取得時刻2002、及び演算部状態2003で構成される。
動的情報表2000では、演算部番号2001で表わされる演算部について取得時刻2002に取得した演算部の状態に関する情報が、演算部状態2003に格納されている。演算部の状態に関する情報は、メモリの使用率、演算部の動作率、消費電力量、CPU温度、入出力速度、実行セッション数などを含む。演算部の状態に関する情報は、それぞれ取得時刻2002で表わされる瞬間の値、あるいは、過去一定時間の平均で表わされる。図6では、演算部状態の例として、実行しているセッションの数が表示されている。また、取得時刻は、基準時刻からの経過時間をミリ秒単位で表わしている。ここで、実行セッション数は、取得時刻の瞬間における数を示しているが過去の平均で表わしてもよい。その他の演算部の状態に関する情報についても同様に、瞬間値でも平均値でもよい。
つづいて、処理経路情報の構成例について図7を参照しつつ説明する。図7は、図3に示すシステム構成でJPEG復号化処理を行なう場合の処理経路表2300を示す図である。
制御部20は、タスク構成情報と演算部情報を用いて、処理経路表2300を生成する。さらに、制御部20は、各演算部に処理経路表2300を送信して、動的に演算部の選択と演算部間の通信路を生成し、処理システムを構築する。
処理経路表2300は、セッション番号2301、タスク番号2302、演算部数2303、演算部番号列2304、接続先情報2305、経路数2306、及び、入出力番号列2307で構成されている。セッション番号2301は、各タスクの処理に固有の番号で、同じタスクを複数回実行した場合、それぞれに異なるセッション番号が付される。タスク番号2302で表わされるタスクを実行するのに必要な演算部の番号列が、演算部番号列2304に連続的に格納される。格納された演算部の数は、演算部数2303に格納される。
入出力番号列2307は、タスク構成表2400(図4)と同様に、インデックスによって経路両端の入出力を表現され、それらの入出力をもつ経路の数は経路数2306に格納される。図7に示す例では、セッション番号は1001としている。JPEG復号化処理を図3で示すシステム構成で連続的に行なう場合は、セッション番号が例えば1002、1003、・・・と変化していく。また、図1で示すシステム上にサービス番号104で表わされるIDCTのサービスを提供可能な別の演算部39が存在した場合は、演算部番号34が39である別の処理経路表を生成する場合もある。
(第1実施形態)
(制御部の構成)
図8は、第1実施形態の制御部20の内部構成を示す図である。
制御部20は、サービス取得部21、処理経路決定部22、及び、演算部情報取得部23の3つの制御モジュールから構成される。サービス取得部21は、要求されたタスクを解析し、タスク構成情報を用いて、タスクを構成するサービスを取得する。演算部情報取得部23は、接続された演算部の静的あるいは動的情報を取得し、演算部情報として管理する。処理経路決定部22は、タスク構成情報と演算部情報から、タスクを分散処理するための演算部と演算部間の処理経路を定義した処理経路情報を決定する。各制御モジュール間の接続は、バス状、円環状、階層状などいずれでも構わない。
図9は、第1実施形態における制御部20の内部構成を含む分散処理システム全体の構成を示す図である。以下では、サービス取得部21を処理要求部10と通信する上位層とし、演算部情報取得部23を演算部と通信する階層とし、処理経路決定部22を中間層とした階層構造をとる例について説明する。
また、以下の説明では、各制御モジュールは汎用プロセッサ上で動作するソフトウェアとしているが、同様の機能を提供するASIC(Application Specific Integrated Circuit)などのハードウェアや提供する機能によって配線を書き換え可能なリコンフィギャラブルプロセッサであってもよい。また処理経路として、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルを用いたネットワークを前提として説明するが、その他のプロトコルを使用するネットワークであってもよいし、プロセッサシステムにおけるAMBA(規格)などのバスやPCI(Peripheral Component Interconnect)、シリアルATA(Advanced Technology Attachment)、あるいはUSB(Universal Serial Bus)といったインタフェースでもよい。
図10は、各制御モジュールを配置する物理的なネットワークを示す図である。
ルータ2900下の同一サブネット上に計算機2901、2902、2903、...、290Pが順に配置され、それぞれが異なるIPアドレスを取得している。同様に、ルータ2910下の同一サブネット上に計算機2911、2912、2913、...、291Sが順に配置され、それぞれが異なるIPアドレスを取得している。ここで、IPアドレスの末尾のP及びSは、2以上のルータが接続しうる計算機の数と同一又はそれ未満の自然数とする。
ルータ2900とルータ2910は互いに接続されている。ここでは、計算機2901がサービス取得部21を動作させ、計算機2902が処理経路決定部22を動作させ、計算機2903が演算部情報取得部23を動作させる。計算機2901、2902、2903は、それぞれ表1で示すIPアドレスを持つものとする。ただし、各制御モジュールは、異なるサブネット上の計算機2911、2912、...、291Sに配置してもよい。
また、以下すべての実施例において、特に断りのない限り、一つの計算機には一つ以上の制御モジュールは配置しないこととする。
Figure 2011203867
(処理手順)
図11は、図9のシステム構成におけるJPEG復号化処理の処理順序を示す図である。ここでは、簡単のため、復号化するJPEGファイルは演算部31上にあるものとし、処理対象となるJPEGファイル名は演算部31に通知されているものとする。
順序100では、処理要求部10が、サービス取得部21に対して、処理要求としてJPEG復号化処理のタスク番号100を与える。サービス取得部21はタスク構成表2400を用いて対応するサービス番号列と処理経路に関する情報を抽出する。
順序101では、抽出した情報を処理経路決定部22に送信する。さらに順序102では、処理経路決定部22は抽出した情報を演算部情報取得部23に転送する。順序103では、演算部情報取得部23は、静的情報表1900(図5)を使って、サービスを提供可能な演算部を決定した後で、処理経路決定部22に返信する。
順序104では、処理経路決定部22は、演算部情報取得部23に対して、サービスを提供可能な演算部について処理経路の決定に必要な演算部状態に関する情報を要求する。
順序105では、演算部情報取得部23は、動的情報表2000(図6)を用いて、演算部状態に関する情報を抽出し、処理経路決定部22に返信する。処理経路決定部22は、順序105で得た演算部情報に関する情報をもとに、予め定めた処理経路決定方法に従い、処理経路表2300を生成する。ここでは、処理経路決定方法として、実行しているセッションの数が最も少ない演算部を演算部番号の若い順に選択する方法を使用し、処理経路決定部22は、順序104において、順序103で得た演算部それぞれが実行しているサービスの数を要求する。
順序106では、処理経路決定部22は、処理経路表2300(図7)を演算部情報取得部23に送信する。さらに、順序107では、演算部情報取得部23は、処理経路表2300に記載された演算部31、32、33、34、35、36、37のすべてに処理経路表2300を配信する。処理経路表2300が配信された各演算部は、処理経路表2300に基づき、出力側の演算部から入力側の演算部に対して処理経路を接続する。
順序108では、演算部情報取得部23に対して処理経路接続完了を返信する。演算部情報取得部23は、演算部31、32、33、34、35、36、37のすべてから処理経路接続完了を受信すると、データ処理を開始可能であると判断して、順序109において、処理経路の先頭の演算部31に対して処理開始要求を送信する。
順序110では、各演算部は、所定のデータ処理を完了すると演算部情報取得部23に処理完了を送信する。順序111では、演算部情報取得部23は、演算部31、32、33、34、35、36、37のすべてから処理完了を受信したら、処理経路決定部22に処理完了を発行する。
順序112では、処理経路決定部22は、サービス取得部21に対して処理完了を転送し、順序113では、サービス取得部21は、処理要求部10に対して処理完了を転送し、すべての処理を完了する。
制御モジュールを起動するときの制御モジュール間の接続の確立方法としては、次の(1)、(2)が考えられる。
(1)主となる制御モジュールが、他のすべての制御モジュールに対して接続要求を配信し、従となる制御モジュールがそれに応答して、接続を確立する方法
(2)他のすべての制御モジュールに対する接続要求を配信せずに、互いの接続先情報を固定とし、主となる制御モジュールが従となる制御モジュールと直接接続を確立する方法
主となる制御モジュールは、各接続における、(A)上位階層側の制御モジュール、(B)下位階層側の制御モジュールなどに設定する。
上位階層側の制御モジュールを主とした場合、(i)サービス取得部21を主とし、処理経路決定部22を従とする、あるいは、(ii)処理経路決定部22を主とし、演算部情報取得部23を従とする。
制御モジュールの主従の設定は、システム起動時だけでなく、処理経路決定方法を変更した処理経路決定部22など、制御モジュールを再起動するときも上述の方法を適用して行うことができる。この場合は、主となる制御モジュールを、(C)再起動した制御モジュールとしてもよい。
各制御モジュールは、互いの接続関係を分散コントローラ接続情報として保持し、制御モジュールの主従を規定している。表2に分散コントローラ接続情報の構成例として、図9の階層関係を持つシステムにおける処理経路決定部22の制御モジュール接続表を示す。制御モジュール接続表は、固定情報として制御モジュール内部に保持していてもよいし、制御モジュールの外部からユーザーなどが指定して書き換え可能としてもよい。
Figure 2011203867
図12は、第1実施形態の制御モジュールの起動シーケンスを示す図である。図12は、(1)の方法、すなわち、「主となる制御モジュールが、他のすべての制御モジュールに対して接続要求を配信し、従となる制御モジュールがそれに応答して、接続を確立する方法」における基本的な起動シーケンスを示す。ここでは、(1)の方法を使用して接続を確立する。
手順140では、従となる制御モジュールが、自身の起動後にモジュール番号を他のすべての制御モジュールに通知する。ただし、手順140よりも先に、後述の手順120の接続要求を受信したときは、通知を発行しないでもよい。この通知を起動通知と呼ぶ。モジュール番号については後述する。また、主となる制御モジュールが接続要求を全制御モジュールに対して一定間隔で発行すれば、従となる制御モジュールが後から起動しても、主となる制御モジュールからの起動通知の発行を省略することができる。
手順120では、主となる制御モジュールが、全制御モジュールに接続を要求する。ここで、接続要求を受信する制御モジュールの接続先の情報は既知とする。主となる制御モジュールは、接続要求時に制御モジュール情報を同時に配信する。
ここで、制御モジュール情報について説明する。図13は、制御モジュール情報の構成例を示す図である。
制御モジュール情報2100は、モジュール番号2101、モジュール構成2102、起動時刻2103、接続先情報2104を含む。モジュール番号2101は、制御モジュール固有の番号である。自モジュールのモジュール番号は各制御モジュールが保持している。
モジュール構成2102は、ハードウェアアーキテクチャ、OS、メモリ容量その他のモジュール構成に関する情報である。起動時刻2103は、モジュール番号2101に対応する制御モジュールの起動時刻である。接続先情報2104は、通信相手となる制御モジュールとの制御情報の通信に使用する接続先の情報である。例えば、IPアドレス、ポート番号やチャネル番号の情報などである。接続先情報は実行時に決定してもよいし、固定の情報でもよい。また、この接続先情報は、制御モジュール間の接続を確立するために使用する接続要求の接続先と同じである必要はない。
つづいて、手順121では、従となる制御モジュールが主となる制御モジュールからの接続要求を受けて、主となる制御モジュールに接続するかどうか判断する。主となる制御モジュールに接続するかどうかは、制御モジュール接続表と、受信した制御モジュール情報2100と、を用いて、自分と接続関係にある制御モジュールであるかどうか判断する。例えば、図9に示すシステムでは、演算部情報取得部23もサービス取得部21からの接続要求を受信するが、接続する必要がないと判断する。
手順122では、主となる制御モジュールを接続する自接続先の情報を取得する。
手順123では、従となる制御モジュールが、主となる制御モジュールに接続応答を返信する。接続応答には、手順122で取得した接続先情報を含む。また、接続応答には、主となる制御モジュールと従となる制御モジュールの双方の制御モジュール情報2100を含む。ここで、接続応答を受信する接続先の情報は既知とする。また、この接続先情報は、接続要求の通信に用いた接続先情報と同様に、制御モジュール間の接続を確立するために使用するものであり、制御情報の通信に用いる通信路の接続先情報とは異なっていてよい。
手順124では、主となる制御モジュールが従となる制御モジュールに接続するか判断する。従となる制御モジュールに接続するかどうかは、制御モジュール接続表と、受信した制御モジュール情報2100と、を用いて、自分と接続関係にある制御モジュールであるかどうか判断する。
手順125では、従となる制御モジュールを接続する自接続先の情報を取得する。
手順126では、手順123で受信した従となる制御モジュールの接続先情報を使用して、従となる制御モジュールに接続する。
手順127で、主となる制御モジュールと従となる制御モジュールとの間で制御情報を通信するための通信路を確立する。
手順128では、主となる制御モジュールが従となるモジュールに、自制御モジュール情報を送信する。
手順129では、主となる制御モジュールが従となる制御モジュールの情報を使って制御モジュール管理表を更新し、自制御モジュールに接続された制御モジュールの情報を管理する。図14は、制御モジュール管理表の構成例を示す図である。制御モジュール管理表2200は、自制御モジュールに接続されたM個の制御モジュールの数を表わす接続数2201と、自制御モジュール情報2100−0を含む各制御モジュールの制御モジュール情報2100−0、2100−1、...、2100−Mから構成されている。ここで、Mは自然数である。より具体的には、手順129では、制御モジュール管理表に制御モジュール情報を追加し、接続数を更新する。
手順130では、従となる制御モジュールも制御モジュール管理表の制御モジュール情報を更新する。
また、(2)の方法、すなわち、「他のすべての制御モジュールに対する接続要求を配信せずに、互いの接続先情報を固定とし、主となる制御モジュールが従となる制御モジュールと直接接続を確立する方法」では、例えば、主となる制御モジュールは従となる制御モジュールの接続先をあらかじめ待ち状態として、主となる制御モジュールが直接、従となる制御モジュールに接続し、制御モジュール情報を交換する。また、上記(1)の方法、(2)の方法に限らず、任意の制御モジュール間の接続を確立し、制御モジュール情報を交換できるならば他の方法であっても構わない。
また、モジュール間の接続が通信路の不具合で切断された場合、図14で示された制御モジュール管理表を用いて、再接続を試みることができる。ここでは、制御モジュールには不具合はないものとする。
図15を参照して再接続について説明する。図15は、制御モジュールの再接続のシーケンスを示す図である。
順序131では、主となるモジュールが従となる制御モジュールとの切断を検知する。例えば、最も単純には、データ送信ができないことで検知できる。
順序133では、主となる制御モジュールが、制御モジュール管理表から従となる制御モジュールの接続先を特定する。順序133と同時に、順序134では、従となるモジュールが主となる制御モジュールとの切断を検知する。
順序136では、従となる制御モジュールが、制御モジュール管理表から主となる制御モジュールの接続先を特定し、その後、主となる制御モジュールからの接続を待ち受ける。
順序137で、主となる制御モジュールは従となる制御モジュールに接続する。
順序138で、主となる制御モジュールと従となる制御モジュールとの間で制御情報を通信するための通信路を再度確立する。
図15の再接続シーケンスによれば、制御モジュール管理表を用いることで、図12のシーケンスを大幅に省略しながら、再接続を試みることができる。
(作用・効果)
第1実施形態の制御部20(分散コントローラ)、分散処理システム、及び、これらを用いた分散処理方法の作用・効果について説明する。
処理経路決定部22を、別の処理経路決定方法を提供できる処理経路決定部に変更する場合や処理経路決定部が実行されている計算機が故障した場合を考える。各制御モジュールがソフトウェアで実現されている場合、変更にはモジュールの再起動、または、計算機の再起動が伴う。ハードウェアで実現されている場合でもチップの再起動などが必要である。ここで、計算機を再起動しなければならないとした場合、同一の計算機上で全制御モジュールが実行されていれば、すべての制御モジュールを再起動しなければならない。
これに対して、第1実施形態の分散コントローラ及び分散処理システムでは、各制御モジュールが異なる計算機上に配置されており、制御モジュールは分散コントローラ接続情報と接続要求により、順不同で起動できる。したがって、処理経路決定部22だけを更新対象とすることができ、計算機2902だけを再起動することができるため、システム全体に影響を及ぼすことがなく、保守性が向上する。計算機を再起動する必要がなくても、変更を加えた制御モジュールだけを再起動することができ、保守性が向上する。
さらに、制御モジュール間での通信に障害が生じた場合、制御モジュール管理表2200を用いて、再接続を試みることができる。一時的な通信障害など、再起動の必要ない場合は自動で再接続させることで、保守性が向上する。
なお、制御モジュールは計算機上に複数配置されていても動作するし、すべて同一の計算機上に配置されても動作する。同一の計算機上に起動されていても、制御モジュールごとの保守は可能で、保守性は向上するが、計算機そのものが故障した場合はすべて利用不可となるため、すべての制御モジュールが異なる計算機上に配置されるものとしている。
(第2実施形態)
図16は、第2実施形態の制御部220(分散コントローラ)の内部の構成を含む分散処理システム全体の基本構成を示す図である。
制御部220には、制御モジュールとしての、サービス取得部21、処理経路決定部22、及び演算部情報取得部23に加えて、各制御モジュールの機能や状態を管理する管理部251、252、253を設けている。これらの管理部は特殊な制御モジュールとして定義される。ここでは、各制御モジュールが提供する機能に従って、別個の管理部を割り当てる。具体的には、管理部251はサービス取得部21を管理し、管理部252は処理経路決定部22を管理し、管理部253は演算部情報取得部23を管理する。
表3に拡張したモジュール番号の構成を示す。なお、接続上限は、場合によっては制御モジュールの種類に従って個別に定義してもよいが、以下ではすべての制御モジュールで共通の上限とする。また、管理部フラグ、機能分類、機能番号については各制御モジュールが提供する機能によって定まり、制御モジュール内部に保持している。接続上限は内部に保持していてもよいし、ユーザーなどが外部から設定してもよい。また、シリアル番号は同一機能を提供する制御モジュールと重複しないように内部に保持していてもよいし、実行時に決定してもよい。
Figure 2011203867
以降、モジュール番号を、管理フラグ−機能分類−機能番号/接続上限−シリアル番号の形式で示す。表4は、図16の各制御モジュールに与えられる番号を示す。
例えば、接続上限が4のサービス取得部に対する管理部で、最初に起動しシリアル番号が0のモジュール番号は、1−1−4−0で与えられる。
また、未定義の番号はXで表わすこととする。例えばシリアル番号が振られていないモジュールは0−2−1−Xなどとなる。
さらにまた、制御モジュールの集合を表わす場合もXを使用する。例えば、0−2−X−Xとすれば、管理部ではない処理経路決定部の集合を表わす。
Figure 2011203867
図16で示すシステムの各制御モジュールは、表5に示す制御モジュール接続表を分散コントローラ接続情報として保持し、主となる制御モジュールと従となる制御モジュールをモジュール番号で定義している。
Figure 2011203867
表5で示された主となるモジュールは、図12の起動シーケンスに従って、制御モジュール情報を全制御モジュールに配信し、接続を要求する。従となるモジュールは主となる制御モジュールからの接続要求に応答して、接続を確立し、制御モジュール情報をそれぞれ交換する。接続先情報が固定である場合は、従となる制御モジュールが主となる制御モジュールと直接接続を確立する。
図17は、処理経路決定部22を主とし、管理部252を従とした場合の接続手順を説明する図である。ここでは、処理経路決定部22がもつ処理経路決定方法は、機能番号1111で表わす。また、管理部252の接続上限は4とする。
順序200では、処理経路決定部22は起動時刻を取得する。例えば、GPS(Global Positioning System)やNTP(Network Time Protocol)サーバーを使用して取得してもよいし、共通の時計をシステム内に保持していてもよい。ここでは、基準時間からの差分をミリ秒単位で表わし、100とする。
順序201では、処理経路決定部22はシリアル番号の調停を行ない、シリアル番号を決定する。ここでは、ほかに処理経路決定部が起動していないものとして、シリアル番号を0とする。例えば、処理経路決定部間で保持するトークンを設け、トークンを保持したときに、起動している処理経路決定部からシリアル番号を回収する。そして空いている番号をシリアル番号としてつけ、トークンを解放する。
管理部252も、処理経路決定部22に対する順序200、201と同様に、順序202、203において起動時刻の取得とシリアル番号の調停を行い、起動時刻を101とし、シリアル番号を0とする。
順序204では、管理部252は、他のすべての制御モジュールに起動通知を送信する。管理部252が処理経路決定部22からの接続要求を起動通知よりも先に受信すれば、順序204は省略できる。
順序205では、処理経路決定部22は、自制御モジュール情報として、モジュール番号とモジュール構成を取得する。ただし、ここで、接続先情報は確定していない。
順序210では、処理経路決定部22は、管理部252を含む全制御モジュールに制御モジュール情報を送信し、接続を要求する。接続要求を受信する管理部252の接続先の情報はシステム全体で共有とし、処理経路決定部22以外からの接続要求も受け付ける。
順序220では、管理部252は、処理経路決定部22からの接続要求を受け付けると、制御モジュール接続表を使って接続するかどうかを判断する。管理部252は、接続管理情報の接続数が接続上限の4に達しないことを確認し、処理経路決定部22との接続を決定する。
順序225では、管理部252は、自制御モジュール情報として、モジュール番号とモジュール構成を取得する。さらに、管理部252は、順序227で接続先情報を確定する。例えば、IPアドレス及びポート番号を192.168.100.252:50022とする。その後、管理部252は、処理経路決定部22からの接続を順序227で取得した接続先で待機する。
順序230では、管理部252は、処理経路決定部22に制御モジュール情報を送信し、応答とする。この応答には、順序210で受信した処理経路決定部22の制御モジュール情報を含む。
順序235では、処理経路決定部22は、制御モジュール接続表を用いて、管理部252が接続先として定義されているかどうかを確認し、接続を判断する。
順序240では、処理経路決定部22は、管理部252と接続する自接続先情報を取得する。例えば、IPアドレス及びポート番号を192.168.100.22:50252とする。
順序250では、処理経路決定部22は、順序230で取得した管理部252の接続先情報と、順序240で取得した自接続先情報とを使って、管理部252に接続する。
順序270では、処理経路決定部22と管理部252との接続を確立する。
順序290では、処理経路決定部22は、管理部252に接続先情報を送信する。
順序300では、処理経路決定部は、管理部252に関する制御モジュール情報を制御モジュール管理表2200に追加し、接続数を更新する。
順序300と同様に、順序310では、管理部252は、処理経路決定部22に関する制御モジュール情報を制御モジュール管理表2200に追加し、接続数を更新する。
図18は、図17の全シーケンス終了後の管理部252が保持する制御モジュール情報を示す図である。管理部同士の接続は省略している。
先頭には接続されたモジュール数として1が保持されている。次に制御モジュール情報が接続順に保持されている。自制御モジュール情報が先頭に、接続した処理経路決定部22の制御モジュール情報が次に制御モジュール情報1として保持されている。
管理部251を主とし、管理部252を従とする場合や、管理部252を主とし、管理部253を従とする場合も、図17に示すシーケンスと同様のシーケンスで制御モジュール情報を交換し、制御モジュール管理表2200を更新する。制御モジュールを追加する場合は、自接続先情報と接続相手の制御モジュール情報を追加し、接続数を増やして、制御モジュール管理表2200を更新する。制御モジュールと切断した場合は、制御モジュール情報を削除し、接続数を減らして、制御モジュール管理表を更新する。
図18のシステムにおいて、さらに処理経路決定部24を追加で起動する場合について説明する。図19は、拡張した制御部320の内部構成を含む分散処理システム全体の基本構成を示す図である。
図19の制御部320(分散コントローラ)では、図16に示す制御部220に対して、処理経路決定部24と演算部情報取得部231、232、233、234、235の6つの制御モジュールを追加している。
処理経路決定部24がもつ処理経路決定方法は、機能番号2222で表わされる。処理経路決定部24も図17のシーケンスに基づいて管理部252と接続する。順序201で取得するシリアル番号はすでに処理経路決定部22が起動しているため1となる。
また、順序227で管理部252は、処理経路決定部22と異なる接続先情報を処理経路決定部24に提供する。例えば、IPアドレス及びポート番号を192.168.100.252:50024とする。順序230から発行する応答は、シリアル番号で他の処理経路決定部22に対する応答と識別することができる。従って、処理経路決定部24が処理経路決定部22と全く同一の機能番号1111で表わされる処理経路決定方法を提供していてもよい。
図20は、処理経路決定部24が接続された後の管理部252の制御モジュール管理表を示す図である。この制御モジュール管理表は、制御モジュール1〜4として、自制御モジュールのほか、処理経路決定部22、管理部251、管理部253、処理経路決定部24の4つの制御モジュール情報を保持している。
一方、図19に示す分散処理システムにおいて、演算部情報取得部23は、静的情報を取得する演算部情報取得部231と、動的情報を取得する演算部情報取得部232、233、234、235と、の5つに分割され、管理部253で管理される。例えば、動的情報として、演算部情報取得部232はメモリの使用率を、演算部情報取得部233は消費電力量を、演算部情報取得部234は入出力速度を、235は実行セッション数を、それぞれ取得するものとする。
図21は、図19のシステム構成におけるJPEG復号化処理の処理順序を示す図である。簡単のため、復号化するJPEGファイルは演算部31上にあるものとし、処理対象となるJPEGファイル名は演算部31に通知されているものとする。
順序300では、処理要求部10が処理経路決定方法を指定した情報を選択条件として管理部251に送信する。例えば、処理経路決定部24の機能番号を含む情報を送信する。
順序301では、管理部251は管理部252に選択情報を転送する。管理部252は選択条件を設定し、順序302で設定完了を管理部251に返信する。
順序303で管理部251は設定完了を処理要求部10に転送する。
順序300から順序303までで、管理部252に処理経路決定部を選択する選択条件を設定している。この選択条件は処理要求部10から指定するほかに、例えば演算部情報取得部231、232、233、234、235を介して取得した演算部の状態をもとにシステム内部で定めるなど、実行時に自動的に決めてもよいし、管理部252の固定情報として内部に保持していても構わない。
順序304では、処理要求部10が、管理部251に処理要求として、JPEG復号化処理のタスク番号100を与える。管理部251に接続されている管理部以外の制御モジュールはサービス取得部21だけなので、順序305では、管理部251がサービス取得部21を選択し、タスク番号を転送する。
順序306では、サービス取得部21は、タスク構成表2400を用いて対応するサービス番号列と処理経路に関する情報を抽出する。その後、抽出した情報を管理部251に送信する。
順序307で、管理部251は管理部252に抽出した情報を転送する。
順序308では、管理部252は、順序300、301、302、303で予め設定された設定条件に従って、処理経路決定部を選択する。ここでは、処理経路決定部24にサービス番号列と処理経路に関する情報を転送する。従って、処理経路決定部22は使用されないが、選択条件を変えることで、柔軟に処理経路決定方法を変更することが可能となる。
処理経路決定部24は、処理経路の決定に必要な静的演算部情報を選択し、順序309で、サービスを提供可能な演算部についての静的演算部情報の取得要求を管理部252に返信する。
順序310では、管理部252が、取得要求を管理部253に転送する。
順序311では、管理部253が、取得要求から、静的演算部情報を取得できる演算部情報取得部231を選択し、取得要求を転送する。
順序312では、演算部情報取得部231が、静的情報表1900をもとに処理経路決定部24から要求された静的演算部情報を取得し、管理部253に返信する。演算部情報取得部231は演算部31、32、33、34、35、36、37、...、3Nが起動したときに静的演算部情報を取得し、静的情報表を更新している。
順序313では、管理部253が管理部252に静的演算部情報を転送する。さらに、順序326で、管理部252が再度処理経路決定部24を選択し、静的演算部情報を転送する。処理経路決定部24は、処理経路の決定に必要な動的演算部情報を決定している。本例では、実行セッション数を動的演算部情報として取得する。演算部情報取得部231からの静的演算部情報を元に使用可能な演算部が選択される。
順序327で、選択された演算部について先に決定しておいた動的演算部情報の取得要求を管理部252に送信する。
順序314で、管理部252は取得要求を管理部253に転送し、管理部253は実行セッション数を取得可能な動的演算部情報取得部235を選択する。
順序315で管理部253は、動的演算部情報取得部235に取得要求を転送し、動的演算部情報取得部235は指定された演算部に関して、動的情報表2000をもとに、実行セッション数を取得する。動的演算部情報取得部232、233、234、235は任意のタイミングで演算部から演算部情報を取得し、動的情報表2000を更新することができる。
順序316では、動的演算部情報取得部235は、取得した動的演算部情報を管理部253に返信する。
順序317では、管理部253は、管理部252に動的演算部情報を転送する。さらに、順序328では、管理部252が再度処理経路決定部24を選択して、取得した動的演算部情報を転送する。処理経路決定部24は、取得した動的演算部情報をもとに演算部を選択し、演算部間の経路を決定して、処理経路表2300を生成する。
順序329では、処理経路決定部24が管理部252に生成した処理経路表を送信する。
順序318では、管理部252は、処理経路表2300を管理部253に転送する。
順序319では、処理経路表2300に記載された演算部31、32、33、34、35、36、37のすべてに処理経路表2300を配信する。各演算部は処理経路表2300に基づき、出力側の演算部から入力側の演算部に対して処理経路を接続する。
順序320では、各演算部が管理部253に対して処理経路接続完了を返信する。管理部253は、演算部31、32、33、34、35、36、37のすべてから処理経路接続完了を受信すると、データ処理を開始可能であると判断する。
順序321では、処理経路の先頭の演算部31に対して処理開始要求を送信する。
順序322では、各演算部は所定のデータ処理を完了すると管理部253に処理完了を送信する。
順序323では、管理部253は、演算部31、32、33、34、35、36、37のすべてから処理完了を受信したら、管理部252に処理完了を発行する。
順序324では、管理部252が管理部251に処理完了を転送する。
順序324と同様に、順序325では、管理部251は処理要求部10に処理完了を転送し、すべての処理を完了する。
(作用・効果)
第2実施形態の分散処理システムでは、管理部252が複数の処理経路決定部の機能と接続状態を制御モジュール管理表として管理し、選択条件によって、異なる処理経路決定部を使用することができる。これにより、再起動の必要がなくなるだけでなく、アルゴリズムごとの保守が可能となり、さらに、保守性が向上する。また、処理経路決定部22と処理経路決定部24が全く同じ機能を提供してもよい。処理経路決定部を多重化することで、どちらか一方が使用不可能になってもシステム運用が可能となり保守性が向上する。一方の機能だけを保守、更新することも可能となる。
また、演算部情報取得部231、232、233、234、235のように、異なる情報を扱う制御モジュールを分離することで、制御モジュールが管理すべき情報を限定することにより、複雑な処理や大量の情報管理を実現する必要がなくなり、保守性が向上する。演算部情報については、処理経路決定方法によって求められる情報が異なる。すなわち、取得する情報ごとに細かく演算部情報取得部を分割すれば、それらの組合せを柔軟に変更することができ、さらに新しい演算部情報を取得しなければならない場合も、新しい演算部情報の取得に特化した制御モジュールだけをシステムを実行している間でも追加できる。したがって、最小限のコストでシステムを拡張することができ、新規開発も容易で、保守性が向上する。
上記の例では、管理部は、制御モジュールの機能や取得する情報の種類によって分類し、分類ごとに管理部を設けたが、制御モジュールを横断的に管理したい場合は、管理部の数を減らし、制御モジュールの情報を集約して管理してもよい。図22は、管理部を一つに集約した制御部370を含む分散処理システムの構成を示す図である。集約された管理部2510は、すべての制御モジュールについて、どの制御モジュールに処理を割り当てるかを判断し、選択する。
図22の構成に対して、図21に示すように、管理部252と管理部253との通信頻度が高いことから2つの管理部だけを統合して、通信を管理部内部で行なうようにしてもよい。または、機能の少ない管理部251を管理部252と統合しても保守が煩雑にならなければ、管理部251と管理部252を統合した構成も考えられる。
なお、その他の構成、作用、効果については、上述の実施形態と同様である。
(第3実施形態)
図23は、第3実施形態における制御部420内部の構成を含む分散処理システム全体の構成を示す図である。
図23に示す分散処理システムの制御部420(分散コントローラ)は、図16の制御部220に管理部254を追加したものである。管理部254は、管理部252と同様に処理経路決定部22を管理する制御モジュールである。管理部254は、管理部251、管理部253、及び処理経路決定部22と接続される。
管理部254は、図12のシーケンスに従って起動する。ここで、制御部420の各制御モジュールは、表5の制御モジュール接続表に従って互いに接続するものとする。
図23の分散処理システムは、図21のシーケンスに従って処理を行なう。ただし、管理部251は順序307で管理部252か管理部254のいずれかを選択して、順序307の通信を行なう。選択条件は少なくとも同一セッション番号のタスク処理に関してはシステム全体で統一とし、管理部253が図21の順序313、317、323で通信するときにも順序307における通信相手と同一の管理部を選択するようにする。例えば、起動時刻の古い方を選択する。同様に処理経路決定部22、管理部251、253も同じ管理部を選択するものとする。
図24は、第3実施形態の各制御モジュールの故障時の対応の流れを示すフローチャートである。ここでは、管理部251及び管理部253が管理部252を使用しており、管理部252が故障した例を説明する。
S1601で、管理部251または管理部253が管理部252の故障を検知する。故障は各通信手順の対をなす応答を設けて検出してもよい。例えば、図21の順序323で管理部253が管理部252に対して通信をした直後に、管理部252が順序323−1として、順序323と対をなす応答をする。
S1602では、管理部251または管理部253は、故障を検知すると、他の制御モジュールに故障を検知した制御モジュールのモジュール番号を、全制御モジュールに通知する。
S1603では、通知を受け付けた制御モジュールのうち、モジュール番号で示された制御モジュールが制御モジュール管理表に記載されている場合は、その情報を削除し、接続数を1減じる。ここでは、管理部251及び管理部253は、管理部252を制御モジュール管理表から削除する。
S1604では、故障していない他のモジュールを選択して処理を続ける。ここでは、管理部252の代わりに管理部254を選択する。
また、図21の順序307などで選択されなかった管理部254は、上記手順で故障を検出することができない。このため、例えば、主となる制御モジュールが定期的に接続確認を送信して、故障を検出してもよい。この場合、表5の制御モジュール接続表によれば、管理部252の主となる制御モジュールは管理部251であるから、管理部251が定期的に接続確認を送信して、その返信があるかどうかを検出する。管理部251は、管理部254の故障を検知すると、他の制御モジュールに故障を検知した制御モジュールのモジュール番号を全制御モジュールに通知する。管理部251及び管理部253は、管理部254を制御モジュール管理表から削除する。管理部254が故障しても管理部252の使用を継続できるため、順序307などでは引き続き管理部252を通信相手として選択する。
(作用・効果)
第3実施形態の制御部420、分散処理システム、及び、これらを用いた分散処理方法では、管理部に関しても他の制御モジュールと同様に同一の機能をもつ制御モジュールをバックアップとして複数起動しておくことにより、耐障害性が高くなり、保守性を向上させることができる。
なお、その他の構成、作用、効果については、上述の実施形態と同様である。
(第4実施形態)
図25は、第4実施形態における制御部520の内部の構成を含む分散処理システム全体の構成を示す図である。
図25に示す制御部520(分散コントローラ)では、新たな制御モジュールとして、起動部261及び起動部262を定義し、起動部261、262を管理部251、252、253に接続している。起動部は、指定された制御モジュールを起動することができる。従って、本システムがソフトウェアで実現されている場合は、制御モジュールの複製を指定すれば、バックアップの制御モジュールをシステムが自動的に起動することが可能となる。起動部は制御モジュールの一種であって、図12の手順で起動し、制御モジュール管理表2200で他のモジュールとの接続を管理される。
以下、管理部252が起動部261及び起動部262を使って、制御モジュールの複製を生成する場合について説明する。
管理部251、252、253はそれぞれ、制御モジュール管理表として、各管理部に接続することのできる制御モジュールの全数として接続上限を有している。さらに、詳細にモジュール番号で示される各制御モジュールが提供する機能に応じて、同じ機能を持つ制御モジュールをいくつまで持つことができるかを制限するものとする。接続の制限を規定する情報の例として、表6に管理部252における接続上限表を示す。ここで、管理部252の接続上限を20とし、記載していない機能をもつ制御モジュールに関しては、接続上限を上回らない限りいくつでも接続することができるものとする。接続上限表が定義されない場合は、すべての制御モジュールを接続上限の範囲内で自由に接続できる。
Figure 2011203867
また、管理部251、252、253は、共通で1つのトークンを保持する。このトークンは管理部間で送受信され、例えば、管理部251、管理部252、管理部253、管理部252、管理部251の順で循環させる。
図26は、管理部252の複製処理に関するフローチャートを示す図である。
管理部252は、ステップS400で管理部251からトークンを受信したかどうかを判断する。受信していなければ(ステップS400でN)、受信するまで待機する。受信したら(ステップS400でY)、ステップS401に進む。
ステップS401では、管理部252は、自制御モジュールを含む制御モジュール管理表上の全制御モジュールについて起動条件を判定したかどうかを判断する。管理部252が、すべての制御モジュールについて判定を完了したと判断した場合(ステップS401でY)、ステップS409に進む。
管理部252が判定を完了していないと判断した場合(ステップS401でN)、ステップS402に進む。ステップS402では、管理部252は、接続されている全制御モジュールについて起動条件を満たしているかどうかを確認する。起動条件の判定は、例えば、該当する制御モジュールの複製を生成することで接続上限に達するかどうか、あるいは、起動時刻が基準時間を越えていないかなどを判断することにより行う。起動時刻は制御モジュール管理表2200で管理しており、各管理部は以前に接続した制御モジュールの平均故障時間を取得している。平均故障時間の60%を超えた制御モジュールについては、その複製を生成する。すべての制御モジュールが平均故障時間の60%を超えており、接続上限に達している場合は、いくつかの制御モジュールを切断して、新たに制御モジュールを起動部に指定してもよい。接続上限に達することもなく、起動時刻が基準時間を越えていれば、起動条件を満たしているので、ステップS403へ進む(ステップS402でY)。
管理部252が、起動条件を満たしていないと判断した場合(ステップS402でN)は、次の制御モジュールの判定を行なう。
ステップS403では、管理部252は制御モジュールの本体を取得できるかどうか確認する。複製の対象となる制御モジュールが自分自身であれば、自分自身の複製を生成し、制御モジュール本体を取得することができる。複製の対象が、自分以外の制御モジュールであって、制御モジュールを管理するサーバーなどから他の制御モジュールの複製を取得できる場合もある。制御モジュール本体を取得できる場合(ステップS403でY)は、管理部252は自分自身の複製を生成して、制御モジュール本体を取得するか、あるいは、サーバーなどから他の制御モジュールの制御モジュール本体を取得し(ステップS404)、ステップS405に進む。ステップS405では、管理部252は、取得した制御モジュール本体を起動部261または起動部262に送信し、ステップS408に進む。
一方、ステップS403で制御モジュール本体を取得できない場合(ステップS403でN)は、複製したい制御モジュールを一意に規定することのできるモジュール番号を取得(ステップS406)し、ステップS407に進む。ステップS407では、取得したモジュール番号を起動部261または起動部262に送信し、ステップS408に進む。
ステップS408では、管理部252は、起動した制御モジュールの複製から起動通知を受信したかどうか判断する。複製されたモジュールは確認信号として、起動通知を発行するものとする。ステップS408で、管理部252が起動通知を受信したら(ステップS408でY)、ステップS401に戻る。管理部252が起動通知を受信しなければ(ステップS408でN)、そのまま待機する。
ステップS409では、管理部252は管理部253にトークンを送信して、管理部252の複製処理を終了する。トークンは一定時間を超過したら、複製処理を中断して、管理部253に強制的に送信するようにしてもよい。
図27は、起動部の複製処理に関するシーケンスを示す図である。
ステップS420では、起動部は、管理部から情報を受信したかどうかを判断する。起動部が情報を受信したら(ステップS420でY)、ステップS421に進む。起動部が情報を受信しなければ(ステップS420でN)、そのまま待機する。
ステップS421では、起動部は、受信した情報が、制御モジュール本体かどうかを確認する。受信した情報が制御モジュール本体であれば(ステップS421でY)、ステップS424に進む。起動部が制御モジュール本体を受信していなければ(ステップS421でN)、ステップS422に進む。
ステップS422では、起動部は、受信した情報が、モジュール番号かどうかを確認する。受信した情報がモジュール番号であれば(ステップS422でY)、ステップS423に進む。受信した情報がモジュール番号でなければ(ステップS422でN)、予期しない情報を受信したと判断し、処理を終了する。
ステップS423では、起動部は、モジュール番号で指定される制御モジュール本体をサーバーなどから取得し、ステップS424に進む。
ステップS424では、起動部は、取得した制御モジュール本体を起動し、処理を終了する。なお、制御モジュールを起動することができるのは、起動部が動作している計算機上に限る。従って、例外的に、起動部と他の制御モジュールによって指定され、起動部によって起動された制御モジュールの複製は図10のなかの同一計算機上で動作するものとする。
図28は、第4実施形態における複製処理後の制御部620の内部の構成を含む処理システム全体の構成を示す図である。
管理部252は、自分自身の複製を起動部261に指定し、処理経路決定部22のモジュール番号を起動部262に指定したものとする。管理部252の複製を管理部254、処理経路決定部22の複製を処理経路決定部27とする。起動部262には、図25上のすべての制御モジュールの複製を内部サーバー上に保持しており、それらの複製を自由に取得することができる。
図29は、起動部の複製処理後の制御部720を起動した分散処理システム全体の構成を示す図である。
ここでは、起動部262の複製を起動部263として起動している。起動部が複数存在する場合は、他の制御モジュールと同様の起動条件に従って、起動部の複製を起動させることができる。複製された制御モジュールは起動を通知し、他の制御モジュールと自律的に接続を行なう。
(作用・効果)
第4実施形態の分散コントローラ、分散処理システム、及び分散処理方法では、起動部261、262を設けたことで、予め起動条件に従って、バックアップを自動的に起動することが可能となり、さらに保守性を向上させることができる。起動部を複数起動しておくことで、起動部自体のバックアップをとることも可能となる。
また、トークンなどを使用して、複数の制御モジュールの複製を同時に起動させないことで、制御モジュールの起動中に接続先の情報が送受信されることによって接続先情報が受信できず、接続処理の漏れが発生することを防止し、故障が起こる可能性を低減し、保守性を向上している。
なお、その他の構成、作用、効果については、上述の実施形態と同様である。
以上のように、本発明に係る分散コントローラ、分散処理システム、及び、分散処理方法は、制御部に高い保守性を求められる場合に有用である。
10 処理要求部
20 制御部
21 サービス取得部
22 処理経路決定部
23 演算部情報取得部
24、27 処理経路決定部
31、32、33、34、35、36、37、...、3N 演算部
40 タスク構成表
220 制御部
231、232、233、234、235 演算部情報取得部
251、252、253、254 管理部
261、262、263 起動部
320、370、420、520、620、720 制御部
2510 管理部
2900 ルータ
2901、2902、2903、...、290P 計算機
2910 ルータ
2911、2912、2913、...、291S 計算機

Claims (18)

  1. 2つ以上の演算部を制御して分散処理を行わせる、前記演算部に接続された分散コントローラであって、
    複数の制御モジュールによって構成され、
    前記制御モジュールはそれぞれ、少なくとも他の一つの制御モジュールと互いに接続されており、
    前記複数の制御モジュールのうちの少なくとも2つを用いて、前記演算部間の処理経路を決定することを特徴とする分散コントローラ。
  2. 前記複数の制御モジュールの各々は、他の制御モジュールとの接続関係を定義した分散コントローラ接続情報を保持し、
    前記複数の制御モジュールは、それぞれ、前記分散コントローラ接続情報にしたがって、接続要求を発行し、あるいは、他の制御モジュールからの接続要求に応答して接続を確立するかどうかを判断し、自律的に接続を確立することを特徴とする請求項1に記載の分散コントローラ。
  3. 前記制御モジュールは、起動時に他の制御モジュールに対して起動を通知し、接続要求の発行を前記他の制御モジュールに促すことを特徴とする請求項2に記載の分散コントローラ。
  4. 前記制御モジュールは、接続を確立した他の制御モジュールに関する制御モジュール情報を取得し、前記制御モジュール間の接続が不通となったときに、前記制御モジュール情報に記載された前記制御モジュールに対して接続要求を再発行する請求項2または請求項3に記載の分散コントローラ。
  5. 要求されたタスクを解析し、前記タスクを構成するサービスを取得するサービス取得手段と、
    接続された前記演算部に関する情報を取得する演算部情報取得手段と、
    前記タスクを構成するサービスと前記演算部に関する演算部情報とを用いて、前記サービスを分散処理するための処理経路を決定する処理経路決定手段と、
    が前記複数の制御モジュールのうちの2つ以上に割り当てられていることを特徴とする請求項1から請求項4のいずれか1項に記載の分散コントローラ。
  6. 前記制御モジュールの一つであって、前記他の複数の制御モジュールのうち少なくとも一つの接続された制御モジュールに関する制御モジュール情報を管理する管理手段を有し、
    前記管理手段は、前記制御モジュール情報と、設定された選択条件と、を用いて分散コントローラを形成する前記制御モジュールを選択することを特徴とする請求項1から請求項5のいずれか1項に記載の分散コントローラ。
  7. 前記管理手段は、1つの制御モジュールにより構成されていることを特徴とする請求項6に記載の分散コントローラ。
  8. 前記管理手段は、複数の制御モジュールにより構成されていることを特徴とする請求項6に記載の分散コントローラ。
  9. 前記サービス取得手段、前記演算部情報取得手段、及び、前記処理経路決定手段に、別個の前記管理手段がそれぞれ割り当てられていることを特徴とする請求項6から請求項8のいずれか1項に記載の分散コントローラ。
  10. 互いに異なる処理経路決定方法によって処理経路を決定する複数の処理経路決定手段を、互いに異なる制御モジュールにそれぞれ割り当てることを特徴とする請求項6から請求項9のいずれか1項に記載の分散コントローラ。
  11. 互いに異なる演算部情報、または、これらの組合せを、互いに異なる演算部情報取得手段にそれぞれ割り当て、
    演算部情報取得手段を管理する管理手段は、処理経路決定手段を管理する管理手段が選択した処理経路決定手段において処理経路を決定するために必要な情報を得ることを選択条件として、前記制御モジュール情報から演算部情報取得手段を選択することを特徴とする請求項6から請求項10のいずれか1項に記載の分散コントローラ。
  12. 前記制御モジュールは、同一の機能をもつ複数の制御モジュールに接続して制御モジュール情報を取得し、選択している制御モジュールが使用不可であると判断した場合に、前記制御モジュール情報から同一の機能をもつ制御モジュールを再選択することを特徴とする請求項6から請求項11のいずれか1項に記載の分散コントローラ。
  13. 前記制御モジュールの一つであって、他の制御モジュールから指定された制御モジュールを起動条件に従って起動する起動手段を有することを特徴とする請求項1から請求項12のいずれか1項に記載の分散コントローラ。
  14. 前記制御モジュールは、前記起動手段に自分自身の複製を指定することを特徴とする請求項13に記載の分散コントローラ。
  15. 前記起動手段は、制御モジュールの複製を保持しており、他の制御モジュールからの指定に従って、前記複製を起動することを特徴とする請求項13に記載の分散コントローラ。
  16. 前記制御モジュールは、他の制御モジュールと重複しないように前記起動手段に前記複製の起動を指定することを特徴とする請求項13から請求項15のいずれか1項に記載の分散コントローラ。
  17. 2つ以上の演算部と、
    前記2つ以上の演算部に接続され、2つ以上の演算部を制御して分散処理を行わせる分散コントローラと、
    を備え、
    前記分散コントローラは、複数の制御モジュールによって構成され、
    前記制御モジュールはそれぞれ、少なくとも他の一つの制御モジュールと互いに接続されており、
    前記複数の制御モジュールのうちの少なくとも2つを用いて、前記演算部間の処理経路を決定することを特徴とする分散処理システム。
  18. 2つ以上の演算部と、前記2つ以上の演算部に接続された分散コントローラと、を備え、
    前記分散コントローラが、複数の制御モジュールによって構成され、
    前記制御モジュールがそれぞれ、少なくとも他の一つの制御モジュールと互いに接続されている分散処理システムの分散処理方法であって、
    前記複数の制御モジュールのうちの少なくとも2つを用いて、前記演算部間の処理経路を決定する工程と、
    前記分散コントローラの制御に基づいて、前記処理経路の前記演算部が分散処理を実行する工程と、
    を有することを特徴とする分散処理方法。
JP2010068864A 2010-03-24 2010-03-24 分散コントローラ、分散処理システム、及び、分散処理方法 Withdrawn JP2011203867A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010068864A JP2011203867A (ja) 2010-03-24 2010-03-24 分散コントローラ、分散処理システム、及び、分散処理方法
CN2011100708543A CN102200768A (zh) 2010-03-24 2011-03-23 分布式控制器、分布式处理系统以及分布式处理方法
US13/069,757 US20110238959A1 (en) 2010-03-24 2011-03-23 Distributed controller, distributed processing system, and distributed processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010068864A JP2011203867A (ja) 2010-03-24 2010-03-24 分散コントローラ、分散処理システム、及び、分散処理方法

Publications (1)

Publication Number Publication Date
JP2011203867A true JP2011203867A (ja) 2011-10-13

Family

ID=44657680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010068864A Withdrawn JP2011203867A (ja) 2010-03-24 2010-03-24 分散コントローラ、分散処理システム、及び、分散処理方法

Country Status (3)

Country Link
US (1) US20110238959A1 (ja)
JP (1) JP2011203867A (ja)
CN (1) CN102200768A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015135592A (ja) * 2014-01-17 2015-07-27 株式会社リコー 情報処理システム及び情報処理方法
JP2017182221A (ja) * 2016-03-28 2017-10-05 株式会社Skeed 自動負荷分散情報処理システム
JPWO2020217441A1 (ja) * 2019-04-26 2021-05-06 三菱電機株式会社 データ処理装置、データ処理方法およびプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997531B2 (en) 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
CN103051539B (zh) * 2012-12-14 2015-09-16 中兴通讯股份有限公司 一种基于dht的控制网络实现方法、系统和网络控制器
WO2015174968A1 (en) * 2014-05-13 2015-11-19 Hewlett-Packard Development Company, L.P. Network access control at controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015135592A (ja) * 2014-01-17 2015-07-27 株式会社リコー 情報処理システム及び情報処理方法
JP2017182221A (ja) * 2016-03-28 2017-10-05 株式会社Skeed 自動負荷分散情報処理システム
JPWO2020217441A1 (ja) * 2019-04-26 2021-05-06 三菱電機株式会社 データ処理装置、データ処理方法およびプログラム

Also Published As

Publication number Publication date
CN102200768A (zh) 2011-09-28
US20110238959A1 (en) 2011-09-29

Similar Documents

Publication Publication Date Title
KR101279001B1 (ko) 중계 통신 시스템 및 제 1 중계 서버
JP2011203867A (ja) 分散コントローラ、分散処理システム、及び、分散処理方法
US7085805B1 (en) Remote device management in grouped server environment
CN105378672B (zh) 对称多处理器(smp)域的动态形成
WO2015176262A1 (zh) 一种节点互连装置、资源控制节点和服务器系统
WO2017035735A1 (zh) 一种网络服务的部署方法及装置
WO2012060887A1 (en) Integrated circuit design and operation
JPH04271454A (ja) 疎結合計算機システム
US20190384642A1 (en) Ultraconverged systems having multiple availability zones
WO2005086756A2 (en) Scalable, software based quorum architecture
JP2010268312A (ja) 中継通信システム
CN112003943A (zh) 语音数据同步方法和装置
JP2003216562A (ja) 可視化処理システム、可視化処理方法及び可視化処理プログラム
US11378441B2 (en) Collaborative weighing and measuring system and metering system
JP4404493B2 (ja) 計算機システム
TWI558125B (zh) 模組化網路裝置以及結合多個模組化網路裝置的系統
CN111327447B (zh) 一种分布式系统、仲裁方法、节点设备及存储介质
JP2007173990A (ja) 情報処理装置、通信負荷分散方法及び通信負荷分散プログラム
CN113867886A (zh) 一种分布式虚拟交换机端口镜像的方法、装置及存储介质
CN115967611A (zh) 跨域的切换处理方法、装置、设备和存储介质
JP2010287172A (ja) 計算機ノード、計算機システム、プロセス生成方法およびプロセス生成プログラム
JP2003085025A (ja) 記憶装置の属性制御方式
CN115242646B (zh) 一种基于区块链的网络切片应用方法以及相关装置
CN117472596B (zh) 分布式资源管理方法、装置、系统、设备以及存储介质
CN114124957B (zh) 一种应用于机器人的分布式节点互联方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130604