以下、図面を参照して、本発明の各実施形態について説明する。
[第1の実施形態]
まず、図1を参照して、本発明の第1の実施形態について説明する。図1は、本実施形態に係る分散データ処理最適化装置の主として機能構成を示すブロック図である。
本実施形態に係る分散データ処理最適化装置においては、後述するように、処理すべき大規模なデータを分散して処理する分散データ処理が実行される。
図1に示すように、分散データ処理最適化装置は、接続処理部10および上記した分散データ処理するための複数の処理システムを備える。図1に示す分散データ処理最適化装置においては、複数の処理システムとして第1の処理システム20および第2の処理システム30が備えられている。
ここで、本実施形態に係る分散データ処理最適化装置に備えられる第1の処理システム20および第2の処理システム30は、互いに異なる環境(分散環境)で動作するものとする。具体的には、第1の処理システム20は例えば外部にはデータを出すことができないプライベート環境で動作し、第2の処理システム30は例えば外部にデータを出すことができるパブリック環境で動作するものとする。なお、プライベート環境は、例えばクラウドコンピューティングにおけるプライベートクラウド上の環境であり、パブリック環境は、例えばパブリッククラウド上の環境である。
本実施形態においては、分散データ処理最適化装置に備えられる処理システムの各々(第1の処理システム20および第2の処理システム30)が動作する環境のうち処理されるべき適切な環境が不明なデータが分散データ処理される場合を想定している。
接続処理部10は、分散データ処理最適化装置において実行される分散データ処理の基本単位とされるデータの各々を外部から順次入力し、第1の処理システム20または第2の処理システム30において当該データが分散データ処理された結果を外部に出力する機能を有する。
接続処理部10は、内部番号付与部11、データ送出部12、処理システム情報データベース(DB)13、判定情報処理部14および結果データ収集部15を含む。
内部番号付与部11は、接続処理部10によって入力されたデータ(以下、入力データと表記)毎に、分散データ処理最適化装置において使用する番号(以下、内部番号と表記)を付与する。入力データ毎に付与される内部番号は、当該入力データ毎に発番され、当該入力データを一意に識別可能な番号である。
データ送出部12は、内部番号付与部11によって内部番号が付与された入力データを第1の処理システム20に送信(送出)する。このとき、データ送出部12は、内部番号付与部11によって内部番号が付与された入力データの複製(レプリカ)を、当該データ送出部12の内部に保存する。なお、入力データの複製は、当該入力データに付与された内部番号とともに保存される。
また、データ送出部12は、内部に保存された入力データの複製を第2の処理システム30に送信する機能を有する。
処理システム情報DB13は、第1の処理システム20および第2の処理システム30に関する情報が格納されるデータベースである。処理システム情報DB13には、第1の処理システム20を示す処理システム情報に対応づけて当該第1の処理システム20に割り当てられているIP(Internet Protocol)アドレスが格納されている。同様に、処理システム情報DB13には、第2の処理システム30を示す処理システム情報に対応づけて当該第2の処理システム30に割り当てられているIPアドレスが格納されている。
判定情報処理部14は、後述する第1の処理システム20から送信された情報に基づいて、例えば第2の処理システム30に割り当てられているIPアドレスを処理システム情報DB13から取得する。また、判定情報処理部14は、処理システム情報DB13から取得されたIPアドレスを、データ送出部12に渡す(通知する)。このIPアドレスは、データ送出部12が入力データ(の複製)を第2の処理システム30に送信する際に用いられる。
結果データ収集部15は、第1の処理システム20および第2の処理システム30において入力データが分散データ処理された結果(以下、処理結果データと表記)を収集する。また、結果データ収集部15は、収集された処理結果データを分散データ処理最適化装置の外部に出力する。
第1の処理システム20は、分散データ処理制御部21および分散データ処理部22を含む。なお、図1においては省略されているが、分散データ処理部22は、複数存在する。つまり、処理すべき大規模なデータは、複数の分散データ処理部22において分散して処理(つまり、分散データ処理)される。
分散データ処理制御部21は、接続処理部10に含まれるデータ送出部12によって送信された入力データを受信する。分散データ処理制御部21は、複数の分散データ処理部22の各々の負荷状況を勘案し、受信された入力データに対する処理(分散データ処理)を分散データ処理部22に依頼する。
分散データ処理部22は、データ読み込み部23、データ分析部24および本処理部25を含む。
データ読み込み部23は、分散データ処理制御部21によって分散データ処理が依頼された入力データを読み込む。
データ分析部24は、データ読み込み部23によって読み込まれた入力データを分析する。また、データ分析部24は、判定部241および処理呼び出し部242を含む。
判定部241は、データ分析部24による分析結果に基づいて、データ読み込み部23によって読み込まれた入力データを第1の処理システム20において処理すべきか否か(の区分け)を判定する。
判定部241は、入力データを第1の処理システム20において処理すべきと判定された場合、当該入力データを処理呼び出し部242に渡す。
判定部241は、入力データを第1の処理システム20において処理すべきでないと判定された場合、当該判定結果および当該入力データに付与されている内部番号(の情報)を接続処理部10に含まれる判定情報処理部14に送信する。
処理呼び出し部242は、判定部241から渡された入力データを用いて、本処理部25を呼び出す。
本処理部25は、入力データに対する分散データ処理を実行する。また、本処理部25は、入力データが分散データ処理された結果(処理結果データ)を、分散データ処理制御部21を介して接続処理部10に含まれる結果データ収集部15に送信する。
第2の処理システム30は、分散データ処理制御部31および分散データ処理部32を含む。なお、図1においては省略されているが、分散データ処理部32は、上記した第1の処理システム20に含まれる分散データ処理部22と同様に複数存在する。
分散データ処理制御部31は、上記した第1の処理システム20に含まれる分散データ処理制御部21と同様の機能を有する機能部である。
分散データ処理部32は、データ読み込み部33および本処理部34を含む。データ読み込み部33は、上記した第1の処理システム20の分散データ処理部22に含まれるデータ読み込み部23と同様の機能を有する機能部である。また、本処理部34は、上記した第1の処理システム20に含まれる分散データ処理部22に含まれる本処理部25と同様の機能を有する機能部である。
図2は、図1に示す接続処理部10に含まれる処理システム情報DB13のデータ構造の一例を示す。処理システム情報DB13には、処理システム(第1の処理システム20および第2の処理システム30)毎に、当該処理システムに関する情報が格納される。
図2に示すように、処理ステム情報DB13には、処理システムID、処理システム名およびIPアドレスが対応づけて格納されている。
処理システムIDは、処理システムを識別するための識別子である。処理システム名は、処理システムIDによって識別される処理システムの名称である。IPアドレスは、処理システムIDによって識別される処理システムに割り当てられているIPアドレスである。
図2に示す例では、処理システム情報DB13には、処理システムID「K001」、処理システム名「第1の処理システム」およびIPアドレス「172.26.xxx.xxx」が対応づけて格納されている。これによれば、処理システムID「K001」によって識別される処理システム(ここでは、第1の処理システム20)の処理システム名は「第1の処理システム」であり、当該第1の処理システム20に割り当てられているIPアドレスが「172.26.xxx.xxx」であることが示されている。
また、処理システム情報DB13には、処理システムID「K002」、処理システム名「第2の処理システム」およびIPアドレス「172.26.yyy.yyy」が対応づけて格納されている。これによれば、処理システムID「K002」によって識別される処理システム(ここでは、第2の処理システム30)の処理システム名は「第2の処理システム」であり、当該第2の処理システム30に割り当てられているIPアドレスが「172.26.yyy.yyy」であることが示されている。
次に、図3のフローチャートを参照して、本実施形態に係る分散データ処理最適化装置の処理手順について説明する。
まず、接続処理部10は、処理すべき大規模なデータを分散して処理する分散データ処理の基本単位とされるデータを分散データ処理最適化装置の外部から入力する(ステップS1)。接続処理部10によって入力されるデータには、例えば文字列が含まれる。
ここでは、接続処理部10は、例えばグループ会社内で書かれたPDFファイル形式の調査報告書(データ)を入力するものとする。なお、分散データ処理最適化装置においては、接続処理部10によって入力されたデータに対する分散データ処理として例えば調査報告書の文書分類処理が行われるものとする。以下、接続処理部10によって入力されたデータを入力データとする。
次に、接続処理部10に含まれる内部番号付与部11は、接続処理部10によってデータが入力されると、ユニークな内部番号を発番する。内部番号付与部11は、内部番号として例えばD00001を発番する。内部番号付与部11は、入力データに対して発番された内部番号を付与する(ステップS2)。なお、内部番号付与部11によって内部番号が付与された入力データは、データ送出部12に渡される。
データ送出部12は、内部番号が付与された入力データを内部番号付与部11から受け取ると、当該入力データの複製(レプリカ)を当該データ送出部12の内部に保存する(ステップS3)。このとき、データ送出部12は、入力データに付与された内部番号に対応づけて当該入力データの複製を保存する。
また、データ送出部12は、内部番号が付与された入力データを第1の処理システム20に対して送信する。このとき、データ送出部12は、例えば第1の処理システム20を識別するための処理システムIDに対応づけて処理システム情報DB13に格納されているIPアドレス(つまり、第1の処理システム20に割り当てられているIPアドレス)を用いて入力データを送信する。
第1の処理システム20に含まれる分散データ処理制御部21は、データ送出部12によって送信された入力データ(内部番号が付与された入力データ)を受信する。分散データ処理制御部21は、第1の処理システム20に含まれる分散データ処理部(つまり、当該分散データ処理制御部21が管轄している分散データ処理部)22の各々の負荷状況を確認し、受信された入力データを処理するのに適切な分散データ処理部22に対して当該入力データの処理(分散データ処理)を手配する(ステップS4)。つまり、分散データ処理制御部21は、受信された入力データの処理を適切な分散データ処理部22に割り当てる処理を実行する。
分散データ処理制御部21によって入力データの処理が手配された分散データ処理部22に含まれるデータ読み込み部23は、当該入力データを読み込む(ステップS5)。ここでは、入力データはPDFファイル形式の調査報告書であるため、データ読み込み部23は、例えば当該入力データ(PDFデータ)のテキストデータ化を実行する。
次に、データ分析部24は、データ読み込み部23によって読み込まれた入力データを分析することによって、当該入力データのチェックを行う(ステップS6)。この場合、データ分析部24は、データ読み込み部23によってテキストデータ化された入力データを解析(文字列解析)する。これによって、データ分析部24は、入力データに含まれる文字列を抽出する。
データ分析部24に含まれる判定部241は、データ分析部24による分析結果(解析結果)に基づいて、入力データを第1の処理システム20において処理すべきであるか否か(つまり、入力データを自ら処理すべきか否か)を判定する(ステップS7)。換言すれば、このステップS7の処理において、入力データが第1の処理システム20が動作する環境(ここでは、プライベート環境)において処理されるべきか、または、第2の処理システム30が動作する環境(ここでは、パブリック環境)において処理されるべきかの区分けが決定される。
具体的には、判定部241は、データ分析部24によって抽出された文字列(入力データに含まれる文字列)の中に、例えば「社外秘」のような予め定められた(登録された)文字列が存在するか(含まれるか)否かを判定する。換言すれば、判定部241は、テキストデータ化された入力データから「社外秘」の文字列がデータ分析部24によって抽出(検索)されたか否かを判定する。
データ分析部24によって抽出された文字列の中に予め定められた文字列「社外秘」が存在する(含まれる)場合には、判定部241は、入力データは外部に出すことができないとして、当該入力データを第1の処理システム20(が動作するプライベート環境)において処理すべきであると判定する。一方、データ分析部24によって抽出された文字列の中に予め定められた文字列「社外秘」が存在しない(含まれない)場合には、判定部241は、入力データは外部に出すことができるとして、当該入力データを第1の処理システム20において処理すべきでない(つまり、第2の処理システム30が動作するパブリック環境において処理すべきである)と判定する。
入力データを第1の処理システム20において処理すべきでない、つまり、入力データを自ら処理すべきでないと判定された場合(ステップS7のNO)、判定部241は、当該入力データに付与されている内部番号および当該判定結果(ステップS7における判定結果)を接続処理部10に含まれる判定情報処理部14に対して送信する(ステップS8)。
具体的には、判定部241は、入力データに付与されている内部番号として例えば「INTERNAL_ID=D00001」を送信する。また、判定部241は、判定結果として、入力データを第1の処理システム20において処理すべきでない旨を意味する例えばキーバリュー形式の「非該当環境=第1の処理システム20が動作するプライベート環境」という情報を生成し、送信する。
また、判定部241は、分散データ処理制御部21において、分散データ処理部22に対して処理を依頼した入力データと当該入力データに対する分散データ処理の結果(データ)との数を合わせるために、当該入力データに対する分散データ処理の結果としての空データ(nullデータ)を分散データ処理制御部21に返す(ステップS9)。
次に、接続処理部10に含まれる判定情報処理部14は、判定部241によって送信された内部番号および判定結果を受信する。この場合、判定情報処理部14は、例えば「INTERNAL_ID=D00001(内部番号) 非該当環境=第1の処理システム20が動作するプライベート環境(判定結果)」という情報を受信する。
判定情報処理部14は、内部番号および判定結果が受信されると、第1の処理システム20でない処理システム(つまり、第2の処理システム30)に入力データを送信するための指示処理を開始する。
この場合、判定情報処理部14は、第2の処理システム30に割り当てられているIPアドレスを入力データの送り先情報として処理システム情報DB13から取得する(ステップS10)。この場合、判定情報処理部14は、第2の処理システム30を識別するための処理システムID「K002」(および当該第2の処理システム30の処理システム名「第2の処理システム」)に対応づけて処理システム情報DB13に格納されているIPアドレス「172.26.yyy.yyy」を取得する。
なお、判定情報処理部14は、受信された内部番号および判定結果と取得されたIPアドレスとをデータ送出部12に渡す。この場合、判定情報処理部14は、例えば「INTERNAL_ID=D00001(内部番号) 非該当環境=第1の処理システム20が動作するプライベート環境(判定結果) 実行予定環境=第2の処理システム30が動作するパブリック環境、172.26.yyy.yyy(IPアドレス)」という情報(データ)をデータ送出部12に渡す。
データ送出部12は、判定情報処理部14から渡された内部番号に対応づけて当該データ送出部12の内部に保存されている入力データ(の複製)を第2の処理システム30に対して送信する(ステップS11)。この場合、データ送出部12は、判定情報処理部14から渡されたIPアドレス(第2の処理システム30に割り当てられているIPアドレス)を用いて入力データを送信する。
第2の処理システム30に含まれる分散データ処理制御部31は、データ送出部12によって送信された入力データを受信する。分散データ処理制御部31は、第2の処理システム30に含まれる分散データ処理部(つまり、当該分散データ処理制御部31が管轄している分散データ処理部)32の各々の負荷状況を確認し、受信された入力データを処理するのに適切な分散データ処理部32に対して当該入力データの処理(分散データ処理)を手配する。つまり、分散データ処理制御部31は、上記した第1の処理システム20に含まれる分散データ処理制御部21と同様に、受信された入力データの処理を適切な分散データ処理部32に割り当てる処理を実行する。
分散データ処理制御部31によって入力データの処理が手配された分散データ処理部32に含まれるデータ読み込み部33は、当該入力データを読み込む(ステップS12)。
次に、本処理部34は、データ読み込み部33によって読み込まれた入力データに対する分散データ処理を実行する(ステップS13)。ここでは、本処理部34は、入力データに対する分散データ処理として調査報告書の文書分類処理を実行する。
本処理部34は、入力データが分散データ処理された結果(処理結果データ)を、分散データ処理制御部31を介して接続処理部10に対して送信する。
接続処理部10に含まれる結果データ収集部15は、本処理部34によって送信された処理結果データを収集する(ステップS14)。
また、結果データ収集部15は、収集された処理結果データを外部に出力する(ステップS15)。
一方、上記したステップS7において、入力データを第1の処理システム20において処理すべきである、つまり、入力データを自ら処理すべきであると判定された場合、データ分析部24に含まれる処理呼び出し部242は、本処理部25を呼び出す。
処理呼び出し部242によって呼び出された本処理部25は、データ読み込み部23によって読み込まれた入力データに対する分散データ処理を実行する(ステップS16)。
本処理部25は、入力データが分散データ処理された結果(処理結果データ)を、分散データ処理制御部21を介して接続処理部10に対して送信する。
接続処理部10に含まれる結果データ収集部15は、本処理部25によって送信された処理結果データを収集する(ステップS17)。ステップS17の処理が実行されると、上記したステップS15の処理が実行される。
なお、上述した図3に示す処理は、接続処理部10において順次入力されるデータ毎、つまり、分散データ処理最適化装置において実行される分散データ処理の基本単位とされるデータ毎に実行される。
上記したように本実施形態においては、外部から入力されたデータ(入力データ)が第1の処理システム20において分析され、当該分析結果に基づいて当該入力データを第1の処理システム20において処理すべきであるか否かが判定される。本実施形態においては、入力データを第1の処理システム20において処理すべきであると判定された場合には当該入力データは当該第1の処理システム20において分散データ処理され、一方、入力データを第1の処理システム20において処理すべきでないと判定された場合には当該入力データは当該第1の処理システム20ではない処理システム(ここでは、第2の処理システム30)において分散データ処理される。
よって、本実施形態においては、例えば第1の処理システム20に含まれる同一の分散データ処理部22内において入力データが処理されるべき環境(の区分け)の判定処理および当該入力データの分散データ処理(本処理)が実行されることにより、異なる環境で動作する複数の処理システム(第1の処理システム20および第2の処理システム30)が存在する場合であっても高速に適切な処理システムにおいて入力データを分散データ処理することが可能となる。
また、本実施形態においては、例えば入力データが処理されるべき環境の判定処理(データ分析処理)を単に分散データ処理化した場合と比較して、当該分散データ処理における前処理および後処理の回数を低減することができるため、処理されるべき環境が不明(未知)の入力データであっても高速に処理することが可能となる。具体的には、本実施形態によれば、データ分析処理を分散データ処理化して分析結果を得た後に、データの本処理を分散データ処理化して処理結果を得る場合に比べても、例えば、プライベート環境およびパブリック環境の2つの分散環境で行われる場合では、3回の分散データ処理に関する前処理および後処理が2回で済む。
また、本実施形態においては、入力データが処理されるべき環境の判定処理が重い処理である場合には、より処理に必要な時間を短縮することができる。
なお、本実施形態においては、分散データ処理最適化装置に互いに異なる環境で動作する第1の処理システム20および第2の処理システム30の2つの処理システムが備えられ、第1の処理システム20で分散データ処理されない入力データは全て第2の処理システム30で分散データ処理されるものとして説明したが、分散データ処理最適化装置に3つ以上の処理システムが備えられる構成であっても構わない。
分散データ処理最適化装置に例えば3つの処理システム(例えば、第1〜第3の処理システム)が備えられている場合には、本実施形態における第1の処理システム20の分散データ処理部22に含まれるデータ分析部24に相当する機能部が第1および第2の処理システムに含まれる。この場合において、第1の処理システムのデータ分析部(に含まれる判定部)において入力データが当該第1の処理システムにおいて処理すべきでないと判定された場合には、第2の処理システムのデータ分析部(に含まれる判定部)において入力データが第2の処理システムにおいて処理すべきであるか否かが判定される。つまり、第2の処理システムのデータ分析部において入力データが第2の処理システムにおいて処理すべきであると判定された場合には当該入力データは第2の処理システムにおいて分散データ処理され、一方、第2の処理システムのデータ分析部において入力データが第2の処理システムにおいて処理すべきでないと判定された場合には当該入力データは第3の処理システムにおいて分散データ処理されることになる。
なお、分散データ処理最適化装置に4つ以上の処理システムが備えられる場合についても同様である。
また、本実施形態においては、接続処理部10によって入力されたデータ(入力データ)が分散データ処理の基本単位とされるデータであるものとして説明したが、例えば当該入力データが分散データ処理の基本単位に分割されていないデータであっても構わない。この場合、例えば第1の処理システム内の分散データ処理制御部21において入力データが分散データ処理の基本単位に分割され、当該分割されたデータに対して内部番号が付与される。この内部番号は、分散データ処理制御部21内に用意された内部番号付与部11に相当する機能部で付与されてもよいし、接続処理部10内の内部番号付与部11で付与されても構わない。また、内部番号が付与されたデータのコピーは、データ送出部12に送られる。なお、データ送出部12に相当する機能部が第1の処理システム20および第2の処理システム30内にあって、接続情報処理部14の判定情報処理部14に問い合わせる構成であっても構わない。
[第2の実施形態]
次に、図4を参照して、本発明の第2の実施形態について説明する。図4は、本実施形態に係る分散データ処理最適化装置の主として機能構成を示すブロック図である。なお、前述した図1と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図1と異なる部分について主に述べる。
図4に示すように、本実施形態に係る分散データ処理最適化装置は、接続処理部50および分散データ処理するための複数の処理システムを備える。なお、図4に示す分散データ処理最適化装置においては、複数の処理システムとして第1の処理システム60、第2の処理システム30および第3の処理システム70が備えられている。
ここで、本実施形態に係る分散データ処理最適化装置に備えられる第1の処理システム60、第2の処理システム30および第3の処理システム70は、前述した第1の実施形態と同様に、互いに異なる環境(分散環境)で動作するものとする。具体的には、第1の処理システム60は、例えば画像処理に強い環境で動作するものとする。第2の処理システム30は、例えば文書処理に強い環境で動作するものとする。また、第3の処理システム70は、例えば数値計算処理に強い環境で動作するものとする。
接続処理部50は、前述した第1の実施形態における処理システム情報DB13および判定情報処理部14に代えて、処理システム情報DB51および判定情報処理部52を含む。
処理システム情報DB51は、第1の処理システム60、第2の処理システム30および第3の処理システム70に関する情報が格納されるデータベースである。処理システム情報DB51には、各処理システム(つまり、第1の処理システム60、第2の処理システム30および第3の処理システム70)毎に、当該処理システムを示す処理システム情報、当該処理システムに割り当てられているIPアドレスおよび当該処理システムが動作する環境を示す環境情報が対応づけて格納されている。
判定情報処理部52は、後述する第1の処理システム60から送信された情報に基づいて、処理システム情報DB51から入力データ(接続処理部50によって入力された分散データ処理の基本単位とされるデータ)を送信すべき処理システムに割り当てられているIPアドレスを取得する。判定情報処理部52は、処理システム情報DB51から取得されたIPアドレスをデータ送出部12に渡す(通知する)。
第1の処理システム60は、分散データ処理部61を含む。なお、図4においては省略されているが、分散データ処理部61は、前述した第1の実施形態における分散データ処理部22と同様に複数存在する。
分散データ処理部61は、入力データを分散データ処理する機能を有する。分散データ処理部61は、データ分析部62を含む。
データ分析部62は、前述した第1の実施形態におけるデータ分析部24と同様に、データ読み込み部23によって読み込まれた入力データを分析する機能を有する。データ分析部62は、判定部621を含む。
判定部621は、データ分析部24による分析結果に基づいて、データ読み込み部23によって読み込まれた入力データが処理されるべき環境を判別する。
判定部621は、判別結果(判別された入力データが処理されるべき環境)に基づいて、データ読み込み部23によって読み込まれた入力データを第1の処理システム60において処理すべきか否かを判定する。つまり、判定部621は、入力データを第1の処理システム60が動作する環境(画像処理に強い環境)において処理すべきか否かを判定する。
判定部621は、入力データを第1の処理システム60において処理すべきでないと判定された場合、当該入力データを第1の処理システム60において処理すべきでない旨の判定結果、当該入力データに付与されている内部番号および当該入力データが処理されるべき環境を示す判別結果(の情報)を接続処理部50に含まれる判定情報処理部52に送信する。
第2の処理システム30については、前述した第1の実施形態において説明した通りであるため、その詳しい説明を省略する。
第3の処理システム70は、分散データ処理制御部71および分散データ処理部72を含む。なお、図4においては省略されているが、分散データ処理部72は、上記した第1の処理システム60に含まれる分散データ処理部61と同様に複数存在する。
分散データ処理制御部71は、前述した第1の実施形態において説明した分散データ処理制御部21(前述した図1に示す第1の処理システム20に含まれる分散データ処理制御部21)と同様の機能を有する機能部である。
分散データ処理部72は、データ読み込み部73および本処理部74を含む。データ読み込み部73は、前述した第1の実施形態において説明したデータ読み込み部23(前述した図1に示す第1の処理システム20の分散データ処理部22に含まれるデータ読み込み部23)と同様の機能を有する機能部である。また、本処理部74は、前述した第1の実施形態において説明した本処理部25(前述した図1に示す第1の処理システム20の分散データ処理部22に含まれる本処理部25)と同様の機能を有する機能部である。
図5は、図4に示す接続処理部50に含まれる処理システム情報DB51のデータ構造の一例を示す。処理システム情報DB51には、処理システム(第1の処理システム60、第2の処理システム30および第3の処理システム70)毎に、当該処理システムに関する情報が格納される。
図5に示すように、処理システム情報DB51には、処理システムID、処理システム名、IPアドレスおよび環境情報が対応づけて格納されている。環境情報は、処理システムIDによって識別される処理システムが動作する環境を示す。
図5に示す例では、処理システム情報DB51には、処理システムID「K001」、処理システム名「第1の処理システム」、IPアドレス「172.26.xxx.xxx」および環境情報「画像処理」が対応づけて格納されている。これによれば、処理システムID「K001」によって識別される処理システム(ここでは、第1の処理システム60)は、環境情報「画像処理」によって示される環境、つまり、画像処理に強い環境で動作することが示されている。
また、処理システム情報DB51には、処理システムID「K002」、処理システム名「第2の処理システム」、IPアドレス「172.26.yyy.yyy」および環境情報「文書処理」が対応づけて格納されている。これによれば、処理システムID「K002」によって識別される処理システム(ここでは、第2の処理システム30)は、環境情報「文書処理」によって示される環境、つまり、文書処理に強い環境で動作することが示されている。
更に、処理システム情報DB51には、処理システムID「K003」、処理システム名「第3の処理システム」、IPアドレス「172.26.zzz.zzz」および環境情報「数値計算処理」が対応づけて格納されている。これによれば、処理システムID「K003」によって識別される処理システム(ここでは、第3の処理システム70)は、環境情報「数値計算処理」によって示される環境、つまり、数値計算処理に強い環境で動作することが示されている。
次に、図6のフローチャートを参照して、本実施形態に係る分散データ処理最適化装置の処理手順について説明する。
まず、前述した図3に示すステップS1〜ステップS5に示す処理に相当するステップS21〜ステップS25に示す処理が実行される。なお、ステップS21においては、接続処理部50は、例えば電力会社グループにおける数値計算が必要な各地電力データシートを入力するものとする。つまり、分散データ処理最適化装置においては、接続処理部50によって入力されたデータに対する分散データ処理として電力会社グループにおける数値計算が必要な各地電力データシートの処理が行われるものとする。以下、接続処理部50によって入力されたデータを入力データとする。
次に、第1の処理システム60の分散データ処理部61に含まれるデータ分析部62は、データ読み込み部23によって読み込まれた入力データを分析することによって、当該入力データのチェックを行う(ステップS26)。この場合、データ分析部62は、データ読み込み部23によって読み込まれた入力データを解析することによって、例えば当該入力データに含まれる文字列等を抽出する。データ分析部62は、例えば積分計算または大量の掛け算等の高度な数値計算の文字情報(文字列)が入力データに含まれている場合には、当該数値計算の文字情報を抽出する。また、データ分析部62は、例えば画像情報が入力データに含まれている場合には、当該画像情報を抽出する。
データ分析部62に含まれる判定部621は、データ分析部24による分析結果(解析結果)に基づいて、入力データが処理されるべき環境を判別する(ステップS27)。換言すれば、判定部621は、入力データの適合分野を判別する。
例えば画像情報が入力データから抽出された場合には、判定部621は、当該入力データが処理されるべき環境は画像処理に強い環境であると判別する。
また、例えば積分計算または大量の掛け算等の高度な数値計算の文字情報(文字列)が入力データから抽出(検索)された場合には、判定部621は、当該入力データが処理されるべき環境は数値計算処理に強い環境であると判別する。具体的には、データ分析部24による分析結果(文字情報の抽出結果)において高度な数値計算の文字列の出現頻度が予め定められた値(閾値)以上である場合には、判定部621は、入力データが処理されるべき環境は数値計算処理に強い環境であると判別する。
また、例えば数値計算以外の文字情報が入力データから抽出された場合(数値計算以外の文字情報の出現頻度が閾値以上である場合)には、判定部621は、当該入力データが処理されるべき環境は文書処理に強い環境であると判別する。
上記したように、入力データが例えば電力会社グループにおける数値計算が必要な各地電力データシートであり、当該入力データから数値計算の文字情報が抽出された場合には、当該入力データが処理されるべき環境は数値計算処理に強い環境であると判別される。
判定部621は、ステップS27における判別結果(入力データが処理されるべき環境を示す判別結果)に基づいて、当該入力データを第1の処理システム60において処理すべきであるか否か(つまり、入力データを自ら処理すべきか否か)を判定する(ステップS28)。以下、ステップS27における判別結果を単に判別結果と称する。
ここで、第1の処理システム60においては、例えば当該第1の処理システム60が動作する環境(ここでは、画像処理に強い環境)を示す環境情報が予め保持されている。判定部621は、例えば判別結果(によって示される入力データが処理されるべき環境)と第1の処理システム60において予め保持されている環境情報によって示される環境(つまり、第1の処理システム60が動作する環境)とを比較する。
判定部621は、比較された結果、判別結果と第1の処理システム60において予め保持されている環境情報によって示される環境とが一致する(つまり、判別された入力データが処理されるべき環境が第1の処理システム60が動作する環境である)場合には、入力データを第1の処理システム60において処理すべきであると判定する。一方、判定部621は、比較された結果、判別結果と第1の処理システム60において予め保持されている環境情報によって示される環境とが一致しない場合には、入力データを第1の処理システム60において処理すべきでないと判定する。
入力データを第1の処理システム60において処理すべきでない、つまり、入力データを自ら処理すべきでないと判定された場合(ステップS28のNO)、判定部621は、当該入力データに付与されている内部番号、判別結果および当該ステップS28における判定結果(の情報)を接続処理部50に含まれる判定情報処理部52に送信する(ステップS29)。以下、ステップS28における判定結果を単に判定結果と称する。
具体的には、判定部621は、入力データに付与されている内部番号として例えば「INTERNAL_ID=D00001」を送信する。また、判定部621は、判別結果(によって示される入力データが処理されるべき環境)として例えばキーバリュー形式の「環境(分野)=数値計算(処理)」という情報を生成し、送信する。更に、判定部621は、判定結果として、入力データを第1の処理システム60において処理すべきでない旨を意味する例えばキーバリュー形式の「非該当環境=第1の処理システム60が動作する環境(画像処理に強い環境)」という情報を生成し、送信する。
また、判定部621は、前述した図3に示すステップS9の処理と同様に、入力データに対する分散データ処理の結果としての空データ(nullデータ)を分散データ処理制御部21に返す(ステップS30)。
次に、接続処理部50に含まれる判定情報処理部52は、判定部621によって送信された内部番号、判別結果および判定結果を受信する。この場合、判定情報処理部52は、例えば「INTERNAL_ID=D00001(内部番号) 環境=数値計算(判別結果) 非該当環境=第1の処理システム60が動作する環境(判定結果)」という情報を受信する。
判定情報処理部52は、内部番号、判別結果および判定結果が受信されると、第1の処理システム60でない処理システム(つまり、第2の処理システム30または第3の処理システム70)に入力データを送信するための指示処理を開始する。
この場合、判定情報処理部52は、受信された判別結果(ここでは、「環境=数値計算」)および処理システム情報DB51に格納されている環境情報に基づいて、入力データを処理すべき処理システムを特定する(ステップS31)。判定情報処理部52は、受信された判別結果によって示される環境(入力データが処理されるべき環境)を示す環境情報に対応づけて処理システム情報DB51に格納されている処理システムID(および処理システム名)を特定する。換言すれば、判定情報処理部52は、受信された判別結果によって示される環境を示す環境情報に対応づけて処理システム情報DB51に格納されている処理システムIDによって識別される処理システムを、入力データを処理すべき処理システムとして特定する。
ここでは、入力データが処理されるべき環境は数値計算に強い環境であるため、上述した図5に示す処理システム情報DB51の例によれば、判定情報処理部52は、当該数値計算に強い環境を示す環境情報「数値計算処理」に対応づけて処理システム情報DB51に格納されている処理システムID「K003」によって識別される処理システム(つまり、第3の処理システム70)を、入力データを処理すべき処理システムとして特定する。
判定情報処理部52は、特定された処理システム(ここでは、第3の処理システム70)に割り当てられているIPアドレスを処理システム情報DB51から取得する(ステップS32)。具体的には、判定情報処理部52は、特定された第3の処理システム70を識別するための処理システムID(および当該第3の処理システム70の処理システム名)に対応づけて処理システム情報DB51に格納されているIPアドレス「172.26.zzz.zzz」を取得する。
なお、判定情報処理部52は、受信された内部番号、判別結果および判定結果と取得されたIPアドレスとをデータ送出部12に渡す。この場合、判定情報処理部52は、例えば「INTERNAL_ID=D00001(内部番号) 環境=数値計算(判別結果) 非該当環境=第1の処理システム60が動作する画像処理に強い環境(判定結果) 実行予定環境=第3の処理システム70が動作する環境、172.26.zzz.zzz(IPアドレス)」という情報(データ)をデータ送出部12に渡す。
次に、前述した図3に示すステップS11〜ステップS15の処理に相当するステップS33〜ステップS37の処理が実行される。
一方、上記したステップS7において、入力データを第1の処理システム60において処理すべきである、つまり、入力データを自ら処理すべきであると判定された場合、データ分析部62に含まれる処理呼び出し部242は、本処理部25を呼び出す。
以下、前述した図3に示すステップS16およびステップS17の処理に相当するステップS38およびステップS39の処理が実行される。ステップS39の処理が実行されると、ステップS37の処理が実行される。
なお、上述した図6に示す処理は、接続処理部50において順次入力されるデータ毎、つまり、分散データ処理最適化装置において実行される分散データ処理の基本単位とされるデータ毎に実行される。
上記したように本実施形態においては、外部から入力されたデータ(入力データ)が第1の処理システム60において分析され、当該分析結果に基づいて当該入力データが処理されるべき環境が判別される。本実施形態においては、判別された環境に基づいて入力データを第1の処理システム60において処理すべきであるか否かが判定される。本実施形態においては、入力データを第1の処理システム60において処理すべきであると判定された場合には当該入力データは当該第1の処理システム60において分散データ処理され、一方、入力データを第1の処理システム60において処理すべきでないと判定された場合には当該入力データは上記判別された環境で動作する処理システム(例えば、第3の処理システム70)において分散データ処理される。
よって、本実施形態においては、例えば複数の処理システムの各々が動作する互いに得意な処理が異なる環境(例えば、画像処理に強い環境、文書処理に強い環境および数値処理に強い環境等)が混合しているような場合であっても、入力データの分析結果に基づいて当該入力データの適合分野(つまり、当該入力データを処理すべき環境)を特定することができるため、前述した第1の実施形態と比較してより高速にデータ処理を実行することが可能となる。
なお、本実施形態においては、分散データ処理最適化装置に互いに異なる環境で動作する第1の処理システム60、第2の処理システム30および第3の処理システム70が備えられるものとして説明したが、分散データ処理最適化装置には、4つ以上の処理システムが備えられていても構わない。
また、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。