(57)【要約】【課題】分散されたデータを集約するパーソナルコンピュータ側の処理負荷を分散して軽減することができる。【解決手段】データベースに対する検索条件を受信するし、検索条件に対する検索結果の情報量を算出する。算出された検索結果の情報量に基づいて、情報処理装置の処理負荷を判定する。判定された処理負荷の判定結果に応じて、データベースに対する検索処理を分散させる指示を他の情報処理装置に送信する。【選択図】図５
2016018433.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
データベースに対する検索条件を受信する受信手段と、
前記受信手段にて受信した検索条件に対する検索結果の情報量を算出する算出手段と、
前記算出手段にて算出された前記検索結果の情報量に基づいて、前記情報処理装置の処理負荷を判定する判定手段と、
前記判定手段にて判定された前記処理負荷の判定結果に応じて、前記データベースに対する検索処理を分散させる指示を他の情報処理装置に送信する指示手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記指示手段は、前記判定手段にて処理負荷が高いと判定された場合、前記データベースに対する検索処理を分散させる指示を他の情報処理装置に送信し、処理負荷が低いと判定された場合、前記検索条件に対する検索処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
情報処理方法であって、
データベースに対する検索条件を受信する受信工程と、
前記受信工程にて受信した検索条件に対する検索結果の情報量を算出する算出工程と、
前記算出工程にて算出された前記検索結果の情報量に基づいて、前記情報処理装置の処理負荷を判定する判定工程と、
前記判定工程にて判定された前記処理負荷の判定結果に応じて、前記データベースに対する検索処理を分散させる指示を他の情報処理装置に送信する指示工程と
を備えることを特徴とする情報処理方法。
【請求項４】
請求項１に記載された情報処理装置と、
ネットワークを介して、データベースに対する検索条件を前記情報処理装置に送信するクライアント端末と
を有することを特徴とする情報処理システム。
【請求項５】
請求項１に記載された情報処理装置が備える各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
近年、社会の情報量が肥大化し、一つのデータベースで全ての情報を管理することが難しくなっている。その対策として、特許文献１には、複数のパーソナルコンピュータでデータベースを管理する分散型データベースシステムが開示されている。
【０００３】
一方で、分散型データベースシステムから情報を収集する場合、その検索条件によっては処理結果が膨大なデータ量になってしまい、パーソナルコンピュータやその通信に対して負荷が集中し問題が発生しやすい。具体的には、分散型データベースから全てのデータを取得する検索条件を設定した場合、集約されたデータがパーソナルコンピュータのメモリ容量を超えてしまい、アウトオブメモリーが発生する可能性がある。また膨大なデータ量をネットワークでやり取りする事で、通信に高い負荷をかけてしまう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２０３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、膨大なデータ量を保持するデータベースは分散型データベースシステムを用いてその負荷処理を分散する事ができる。しかしながら、分散型データベース側だけを分散しても、実際にその情報を集約するパーソナルコンピュータ側の処理を分散しないと、そのパーソナルコンピュータ側にて処理負荷による障害が発生してしまう。特許文献１では、集約するパーソナルコンピュータ側の負荷分散について記載されていない。
【０００６】
そこで、本発明は、分散されたデータを集約するパーソナルコンピュータ側の処理負荷を分散して軽減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、例えば、データベースに対する検索条件を受信する受信手段と、
前記受信手段にて受信した検索条件に対する検索結果の情報量を算出する算出手段と、
前記算出手段にて算出された前記検索結果の情報量に基づいて、前記情報処理装置の処理負荷を判定する判定手段と、
前記判定手段にて判定された前記処理負荷の判定結果に応じて、前記データベースに対する検索処理を分散させる指示を他の情報処理装置に送信することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、分散されたデータを集約するパーソナルコンピュータ側の処理負荷を分散して軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る情報処理システムの概要を示す図である。
【図２】実施形態に係るシステム構成図１の機能構成例を示すブロック図である。
【図３】実施形態に係るシステム構成図２の機能構成例を示すブロック図である。
【図４】実施形態に係るハードウェア構成例を示すブロック図である。
【図５】実施形態に係るデータベースにアクセスする際の処理を示すフローチャートである。
【図６】実施形態に係るシステム構成図１の処理を示すシーケンス図である。
【図７】実施形態に係るシステム構成図２の処理を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。ただし、この実施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。また、実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
図１は、実施形態に係る情報処理システムの概要を示す図である。クライアント端末１００は、メインサーバ１０４（情報処理装置）、サブサーバ１１４（他の情報処理装置）に分散して保持されているデータベース（１１２、１２２）に対して、データベースから取得したい情報を抽出するための検索条件をメインサーバ１０４に送信する。なお、クライアント端末１００からの検索条件は、必ずメインサーバ１０４に送信される。クライアント端末１００、メインサーバ１０４、サブサーバ１１４は、各々ネットワークを介して接続されている。また、サブサーバ１１４は複数台あってもよい。
【００１２】
図４は、クライアント端末（１００、２００、３００）、メインサーバ（１０４、２０４、３０４）、サブサーバ（１１４、２１４、３１４）に適用可能なコンピュータのハードウェア構成例を示すブロック図である。ＣＰＵ４１は、ＲＯＭ４２やＲＡＭ４３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行う。ＣＰＵ４１は、後述する各処理を実行する。ＲＯＭ４２には、本コンピュータの設定データや、ブートプログラムなどが格納されている。ＲＡＭ４３は、ＨＤＤ（ハードディスクドライブ）４４からロードされたコンピュータプログラムやデータ、インターフェース４７を介して外部から受信したデータなどを一時的に記憶するためのエリアを有する。更に、ＲＡＭ４３は、ＣＰＵ４１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ４３は、各種のエリアを適宜提供することができる。ＨＤＤ４４には、ＯＳ（オペレーティングシステム）や、本コンピュータを適用した装置が行う各種の処理をＣＰＵ４１に実行させるためのコンピュータプログラムやデータが保存されている。係るコンピュータプログラムには、後述する各処理をＣＰＵ４１に実行させるためのコンピュータプログラムが含まれている。ＨＤＤ４４に保存されているコンピュータプログラムやデータは、ＣＰＵ４１による制御に従って適宜ＲＡＭ４３にロードされ、ＣＰＵ４１による処理対象となる。入力装置４５は、キーボードやマウスなどにより構成されており、本コンピュータの操作者は、この入力装置４５を操作することで、各種の指示をＣＰＵ４１に対して入力することができる。表示装置４６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ４１による処理結果を画像や文字などでもって表示することができる。インターフェース４７は、様々なインターフェースで構成されている。例えばネットワークに接続する為のネットワークインターフェース、デバイスインターフェースを含む。４８は上述の各部を繋ぐバスである。
【００１３】
本実施形態では説明を簡単にするために、クライアント端末（１００、２００、３００）、メインサーバ（１０４、２０４、３０４）、サブサーバ（１１４、２１４、３１４）の何れも図４に示した構成を有するコンピュータであるものとして説明するが、コンピュータの構成については係る構成に限定するものではない
【００１４】
図５は、メインサーバ１０４において、クライアント端末１００からデータベース（１１２、１２２）にアクセスする際の処理を表したフローチャートである。ＣＰＵ４１（受信手段）は、クライアント端末１００からデータベース（１１２、１２２）にて検索処理を行うための検索条件を受信する（Ｓ５０１）。
【００１５】
ＣＰＵ４１（算出手段）は、受信した検索条件を元に、検索結果の情報量（データ量）を算出する（Ｓ５０２）。そして、ＣＰＵ４１（判定手段）は算出された情報量からメインサーバ１０４の処理負荷を判定する（Ｓ５０３）。処理負荷の判定は、メインサーバ１０４のＣＰＵ、メモリ、通信量、データベースの構造等から判定する。データベースの構造とは、検索条件がインデックスを用いているか、参照するテーブルの数、参照するテーブルが事前に集計されたテーブルかなどで判断する。
【００１６】
ＣＰＵ４１は、Ｓ５０３の判断によって処理方式を変更する。処理負荷が高いと判定された場合（Ｓ５０３のＹＥＳ）、後述するシステム構成図１の処理を行い（Ｓ５０４）、処理負荷が低いと判定された場合（Ｓ５０３のＮＯ）、後述するシステム構成図２の処理を行う（Ｓ５０５）。そして、その結果であるデータを加工し、ネットワーク経由でクライアント端末１００に送信してユーザーに表示する。
【００１７】
なお、図５の処理を行うメインサーバ１０４は、データベースを保持する構成として説明しているが、データベースを保持していなくてもよい。また、メインサーバ１０４は、データベースを保持しているサブサーバ１１４と、ネットワーク上で接続していれば、ネットワーク経由でデータベースの検索を行うことができる。
【００１８】
なお、検索対象とするデータベースを保持するサブサーバ１１４は、複数、または単一であってもよい。また、結果を受け取るクライアント端末１００は、複数、または単一であってもよい。
【００１９】
図２は、システム構成図１の一例である。クライアント端末のWebBrowser２０２からの命令は、必ずメインサーバ２０４に送られる。メインサーバ２０４以外のサブサーバ２１４に接続しようとした場合、自動的にその接続はメインサーバ２０４へ転送される。
【００２０】
クライアント端末２００は、ユーザーが分散型データベースに対して検索処理を指示するパーソナルコンピュータであり、その処理を行うWebBrowser２０２を備えている。検索条件は、WebBrowser２０２からデータベース２１２を保持するメインサーバ２０４へ送信される。
【００２１】
データベース２１２を保持するメインサーバ２０４には、通信プロトコル２０６が存在し、その通信プロトコル上で動作するWebService２０８が存在する。また、メインサーバ２０４には、WebService２０８からの命令を受け取り、データベース２１２に対して検索処理を行うWindowsService２１０が存在する。WindowsService２１０は、自身の処理結果をWebService２０８を経由して、クライアント端末２００に送信する。
【００２２】
メインサーバ２０４のWebService２０８は、サブサーバ２１４のWebService２１８に検索処理を分散するための命令（指示）を送信する（指示手段）。サブサーバ２１４のWindowsService２２０は、WebService２１８からの命令を受け取り、データベース２２２に対して検索処理を行う。WindowsService２２０は、自身の処理結果をWebService２１８を経由して、クライアント端末２００に送信する。各検索結果には、複数の検索結果を集約して表示する処理が施されているので、クライアント端末２００では、集約された検索結果を表示することができる。なお、WebService、WindowsServiceは公知の技術のため詳細な説明は省略する。
【００２３】
図６は、システム構成図１の処理を示すシーケンス図である。クライアント端末２００からメインサーバ２０４に検索条件を送信する（Ｓ６０１）。メインサーバ２０４は、サブサーバ２１４に検索処理を分散するための命令（指示）を送信する（Ｓ６０２）。
【００２４】
メインサーバ２０４は、自身が処理した検索結果をクライアント端末２００に送信する（Ｓ６０３）。サブサーバ２１４は、自身が処理した検索結果をクライアント端末２００に送信する（Ｓ６０４）。各検索結果には、検索結果を集約する処理が施されているので、クライアント端末２００では、集約された検索結果を表示する。
【００２５】
従って、情報を集約するメインサーバ２０４の処理負荷が高いと判定された場合は、サブサーバ２１４に処理を分散させることができるので、情報を集約するパーソナルコンピュータ（メインサーバ２０４）の処理負荷を軽減することができる。
【００２６】
図３は、システム構成図２の一例である。クライアント端末３００は、ユーザーが分散型データベースに対して検索処理を指示するパーソナルコンピュータであり、その処理を行うWebBrowser３０２を備えている
【００２７】
データベース３１２を保持するメインサーバ３０４には、通信プロトコル３０６が存在し、その通信プロトコル上で動作するWebService３０８が存在する。メインサーバ３０４には、WebService３０８からの命令を受け取り、データベース３１２に対して検索処理を行うWindowsService３１０が存在する。
【００２８】
WebService３０８は、サブサーバ３１４のデータベース３２２に対して、WebService３１８、WindowsService３２０を経由して検索処理を行う。WebService３０８は、データベース３１２に対する処理結果と、データベース３２２に対する処理結果を集約して、クライアント端末３００に送信する。
【００２９】
図７は、システム構成図２の処理を示すシーケンス図である。クライアント端末２００からメインサーバ２０４に検索条件を送信する（Ｓ７０１）。メインサーバ２０４は、サブサーバ２１４のデータベース３２２を参照する（Ｓ７０２）。
【００３０】
メインサーバ３０４は、データベース３１２とデータベース３２２の検索結果を集約して、クライアント端末２００に送信する（Ｓ７０３）。
【００３１】
従って、情報を集約するメインサーバ３０４の処理負荷が低いと判断された場合は、サブサーバ３１４で検索処理を行うことなく、メインサーバ３０４上で集約処理を行う。
【００３２】
また、分散型データベースがメインサーバとサブサーバの構成をもつ場合、メインサーバをサブサーバに、サブサーバをメインサーバと、その役割を入れ替えることができる。
【００３３】
以上から、データベースを保有する複数のコンピュータに対する検索条件のデータ量を算出し、算出されたデータ量に基づいて、処理を分散することができる。そのため、例えば、膨大なデータ量となる端末のログ（操作履歴）を収集する際は処理を分散させ、端末のログから私的なＷｅｂサイトを閲覧した端末の人数などの集計ログを収集する際は、分散させずに処理を行う等、ユーザーの環境にあわせた処理を行うことができる。
【図１】
2016018433.tif 000003
【図２】
2016018433.tif 000004
【図３】
2016018433.tif 000005
【図４】
2016018433.tif 000006
【図５】
2016018433.tif 000007
【図６】
2016018433.tif 000008
【図７】
2016018433.tif 000009