(57)【要約】【課題】処理対象のデータが秘密情報を含む場合であっても、分散処理を行う。【解決手段】サーバ装置２００の装置決定部２２０は、入力データに対する、クライアント装置１００のユーザの権限を示す権限情報２５１をもとに、所定の処理をクライアント装置１００とサーバ装置２００の内のどちらが実行するかを決定する。サーバ側処理部２３０は、所定の処理をクライアント装置１００が実行する場合、入力データをクライアント装置１００に送信し、サーバ装置２００が実行する場合、入力データを用いて当該所定の処理を実行して、処理結果をクライアント装置１００に送信する。クライアント装置１００のクライアント側処理部１３０は、所定の処理をクライアント装置１００が実行する場合、サーバ装置２００から受信した入力データを用いて当該所定の処理を実行する。【選択図】図１
2015064635.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定する装置決定手段と、
前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する第２の処理手段と、
を含む前記第２の処理装置と、
前記所定の処理を前記第１の処理装置が実行する場合、前記第２の処理装置から受信した当該所定の処理の入力データを用いて当該所定の処理を実行する第１の処理手段と、
前記所定の処理の処理結果を出力する出力手段と、
を含む前記第１の処理装置と、
を備えた情報処理システム。
【請求項２】
前記所定の処理は、順番に実行される複数の副処理であって、各々が前に実行された副処理の処理結果を入力データとして用いる複数の副処理を含み、
前記権限情報は、前記複数の副処理の各々の入力データに対する、前記第１の処理装置のユーザの権限を示し、
前記装置決定手段は、前記権限情報をもとに、前記複数の副処理の内、前記第１の処理装置が実行する先頭の副処理である引継副処理を決定し、
前記第２の処理手段は、前記引継副処理より前の副処理を順番に実行し、当該引継副処理の入力データを前記第１の処理装置に送信し、
前記第１の処理手段は、前記第２の処理装置から受信した前記引継副処理の入力データを用いて、当該引継副処理以降の副処理を順番に実行する、
請求項１に記載の情報処理システム。
【請求項３】
前記装置決定手段は、前記ユーザが前記複数の副処理の内の一の副処理以降の副処理の各々の入力データに対する権限を有する場合、当該一の副処理を前記引継副処理に決定する、
請求項２に記載の情報処理システム。
【請求項４】
前記装置決定手段は、前記ユーザが前記複数の副処理の内の一の副処理以降の副処理の各々の入力データに対する権限を有する場合、当該一の副処理以降の各副処理を引継副処理の候補に決定し、前記引継副処理の候補を引継副処理とした場合の前記複数の副処理に係る予測処理時間をもとに、前記引継副処理の候補の中から前記引継副処理を決定する、
請求項２に記載の情報処理システム。
【請求項５】
前記複数の副処理に係る予測処理時間は、前記第２の処理手段における前記引継副処理より前の副処理の処理時間と前記第１の処理手段における前記引継副処理以降の副処理の処理時間、及び、前記第２の処理装置から前記第１の処理装置への前記引継副処理の入力データの転送時間の内の少なくとも一つをもとに決定される、
請求項４に記載の情報処理システム。
【請求項６】
さらに、前記複数の副処理の各々について、当該副処理を実行する処理プログラムを記憶する処理プログラム記憶手段を含み、
前記第２の処理手段は、前記第１の処理装置が実行する副処理の各々の処理プログラムを、入力データとともに前記第１の処理装置に送信し、
前記第１の処理手段は、前記第２の処理装置から受信した処理プログラムにより、前記第１の処理装置が実行する副処理を実行する、
請求項２乃至５のいずれか記載の情報処理システム。
【請求項７】
所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する前記第２の処理装置から受信した、当該所定の処理の入力データを用いて当該所定の処理を実行する第１の処理手段と、
前記所定の処理の処理結果を出力する出力手段と、
を備えた第１の処理装置。
【請求項８】
第２の処理装置から受信した所定の処理の入力データを用いて当該所定の処理を実行し、前記所定の処理の処理結果を出力する第１の処理装置のユーザの、前記所定の処理の入力データに対する権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定する装置決定手段と、
前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する第２の処理手段と、
を備えた第２の処理装置。
【請求項９】
第２の処理装置において、所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、
前記第２の処理装置において、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信し、
前記第１の処理装置において、前記所定の処理を前記第１の処理装置が実行する場合、前記第２の処理装置から受信した当該所定の処理の入力データを用いて当該所定の処理を実行し、
前記所定の処理の処理結果を出力する、
分散処理方法。
【請求項１０】
前記所定の処理は、順番に実行される複数の副処理であって、各々が前に実行された副処理の処理結果を入力データとして用いる複数の副処理を含み、
前記権限情報は、前記複数の副処理の各々の入力データに対する、前記第１の処理装置のユーザの権限を示し、
前記第２の処理装置において、前記権限情報をもとに、前記複数の副処理の内、前記第１の処理装置が実行する先頭の副処理である引継副処理を決定し、
前記第２の処理装置において、前記引継副処理より前の副処理を順番に実行し、当該引継副処理の入力データを前記第１の処理装置に送信し、
前記第１の処理装置において、前記第２の処理装置から受信した前記引継副処理の入力データを用いて、当該引継副処理以降の副処理を順番に実行する、
請求項９に記載の分散処理方法。
【請求項１１】
前記引継副処理の決定において、前記ユーザが前記複数の副処理の内の一の副処理以降の副処理の各々の入力データに対する権限を有する場合、当該一の副処理を前記引継副処理に決定する、
請求項１０に記載の分散処理方法。
【請求項１２】
前記引継副処理の決定において、前記ユーザが前記複数の副処理の内の一の副処理以降の副処理の各々の入力データに対する権限を有する場合、当該一の副処理以降の各副処理を引継副処理の候補に決定し、前記引継副処理の候補を引継副処理とした場合の前記複数の副処理に係る予測処理時間をもとに、前記引継副処理の候補の中から前記引継副処理を決定する、
請求項１０に記載の分散処理方法。
【請求項１３】
前記複数の副処理に係る予測処理時間は、前記第２の処理手段における前記引継副処理より前の副処理の処理時間と前記第１の処理手段における前記引継副処理以降の副処理の処理時間、及び、前記第２の処理装置から前記第１の処理装置への前記引継副処理の入力データの転送時間の内の少なくとも一つをもとに決定される、
請求項１２に記載の分散処理方法。
【請求項１４】
さらに、前記複数の副処理の各々について、当該副処理を実行する処理プログラムを記憶し、
前記第２の処理装置において、前記第１の処理装置が実行する副処理の各々の処理プログラムを、入力データとともに前記第１の処理装置に送信し、
前記第１の処理装置において、前記第２の処理装置から受信した処理プログラムにより、前記第１の処理装置が実行する副処理を実行する、
請求項９乃至１３のいずれか記載の分散処理方法。
【請求項１５】
コンピュータに、
所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する前記第２の処理装置から受信した、当該所定の処理の入力データを用いて当該所定の処理を実行し、
前記所定の処理の処理結果を出力する、
処理を実行させる、前記第１の処理装置用のプログラム。
【請求項１６】
コンピュータに、
第２の処理装置から受信した所定の処理の入力データを用いて当該所定の処理を実行し、前記所定の処理の処理結果を出力する第１の処理装置のユーザの、前記所定の処理の入力データに対する権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、
前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する、
処理を実行させる、前記第２の処理装置用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、処理装置、分散処理方法、及び、分散処理プログラムに関し、特に、処理装置間で処理を分散して実行する情報処理システム、処理装置、分散処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、システムやサービスに係るデータを分析し、その分析結果をシステムやサービスの向上に活用する企業が増えている。このような分析システムでは、例えば、サーバ装置が、装置内に存在するデータを分析し、グラフ等のイメージデータとしてレンダリングし、クライアント装置へ送信する。そして、クライアント装置が、サーバ装置から受信したイメージデータを表示する。
【０００３】
このような分析システムにおいて、分析対象のデータが膨大になると、サーバ装置における分析処理に多大な時間や負荷がかかる。このため、夜間バッチが営業開始時間までに終了せずにサービスを開始できない、或いは、システムダウンにより営業活動に大きな影響をきたすといった問題が発生する可能性がある。また、処理時間を確保するために、分析対象のデータとして、直近のデータが活用できないなどの制約が生じる。
【０００４】
このように、分析システムでは、分析技術の向上とともに、分析処理の負荷の改善や、多大な分析負荷を回避する技術が必要とされている。
【０００５】
上述のような、クライアント装置とサーバ装置により構成されるシステムにおいて、サーバ装置の負荷を低減する技術の一例が、例えば、特許文献１に開示されている。
【０００６】
特許文献１に開示される技術では、クライアント装置においてサーバ装置より受信したＨＴＭＬ（Hyper Text Markup Language）上の複数のドキュメントを表示する場合に、ドキュメント間での連携をサーバ装置で行う代わりに、ＨＴＭＬ上のスクリプトに従って、クライアント装置上で実行する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−２６７９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の分析システムにおいて、特許文献１のように、サーバ装置で実行される処理の一部をクライアント装置で実行することにより、サーバ装置の負荷を低減することができる。しかしながら、分析対象のデータが秘密情報を含む場合、データをクライアント装置に送ることができないため、サーバ装置／クライアント装置による分散処理ができないという問題がある。
【０００９】
本発明の目的は、上述の課題を解決し、処理対象のデータが秘密情報を含む場合であっても、分散処理が可能な、情報処理システム、処理装置、分散処理方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明の情報処理システムは、所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定する装置決定手段と、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する第２の処理手段と、を含む前記第２の処理装置と、前記所定の処理を前記第１の処理装置が実行する場合、前記第２の処理装置から受信した当該所定の処理の入力データを用いて当該所定の処理を実行する第１の処理手段と、前記所定の処理の処理結果を出力する出力手段と、を含む前記第１の処理装置と、を備える。
【００１１】
本発明の第１の処理装置は、所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する前記第２の処理装置から受信した、当該所定の処理の入力データを用いて当該所定の処理を実行する第１の処理手段と、前記所定の処理の処理結果を出力する出力手段と、を備える。
【００１２】
本発明の第２の処理装置は、第２の処理装置から受信した所定の処理の入力データを用いて当該所定の処理を実行し、前記所定の処理の処理結果を出力する第１の処理装置のユーザの、前記所定の処理の入力データに対する権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定する装置決定手段と、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する第２の処理手段と、を備える。
【００１３】
本発明の分散処理方法は、第２の処理装置において、所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、前記第２の処理装置において、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信し、前記第１の処理装置において、前記所定の処理を前記第１の処理装置が実行する場合、前記第２の処理装置から受信した当該所定の処理の入力データを用いて当該所定の処理を実行し、前記所定の処理の処理結果を出力する。
【００１４】
本発明の第１のプログラムは、コンピュータに、所定の処理の入力データに対する、第１の処理装置のユーザの権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する前記第２の処理装置から受信した、当該所定の処理の入力データを用いて当該所定の処理を実行し、前記所定の処理の処理結果を出力する、処理を実行させる。
【００１５】
本発明の第２のプログラムは、コンピュータに、第２の処理装置から受信した所定の処理の入力データを用いて当該所定の処理を実行し、前記所定の処理の処理結果を出力する第１の処理装置のユーザの、前記所定の処理の入力データに対する権限を示す権限情報をもとに、前記所定の処理を前記第１の処理装置と第２の処理装置の内のどちらが実行するかを決定し、前記所定の処理を前記第１の処理装置が実行する場合、当該所定の処理の入力データを前記第１の処理装置に送信し、前記所定の処理を前記第２の処理装置が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果を前記第１の処理装置に送信する、処理を実行させる。
【発明の効果】
【００１６】
本発明の効果は、処理対象のデータが秘密情報を含む場合であっても、分散処理ができることである。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、分析システムの構成を示すブロック図である。
【図３】本発明の実施の形態において、クライアント装置１００、及び、サーバ装置２００がコンピュータにより実現される場合の、分析システムの構成を示すブロック図である。
【図４】本発明の第１の実施の形態における、クライアント装置１００の処理を示すフローチャートである。
【図５】本発明の第１の実施の形態における、サーバ装置２００の処理を示すフローチャートである。
【図６】本発明の第１の実施の形態における、分析システムが実行する処理の例を示す図である。
【図７】本発明の第１の実施の形態における、権限情報２５１の例を示す図である。
【図８】本発明の第１の実施の形態における、引継副処理の決定条件を示す図である。
【図９】本発明の第２の実施の形態における、分析システムの構成を示すブロック図である。
【図１０】本発明の第２の実施の形態における、サーバ装置２００の処理を示すフローチャートである。
【図１１】本発明の第２の実施の形態における、引継副処理の候補の抽出条件を示す図である。
【図１２】本発明の第２の実施の形態における、予測処理時間の算出例を示す図である。
【発明を実施するための形態】
【００１８】
（第１の実施の形態）
本発明の第１の実施の形態について説明する。
【００１９】
はじめに、本発明の第１の実施の形態における、分析システムが実行する処理（所定の処理）について説明する。
【００２０】
図６は、本発明の第１の実施の形態における、分析システムが実行する処理の例を示す図である。分析システムが実行する処理では、処理対象データ（元データ）を分析し、分析結果に係るレンダリング結果を出力する。レンダリング結果は、分析結果を表すグラフ等を表示するためのイメージデータである。分析システムが実行する処理は、図６に示すように、順番に実行される一連の副処理である分析処理、及び、レンダリング処理からなる。分析処理は、分析対象データを入力データとして、分析結果を生成する。レンダリング処理は、分析結果であるレンダリング対象データを入力データとして、レンダリング結果を生成する。
【００２１】
図２は、本発明の第１の実施の形態における、分析システムの構成を示すブロック図である。図２を参照すると、本発明の第１の実施の形態における分散処理システムは、クライアント装置１００、及び、サーバ装置２００を含む。
【００２２】
分析システムは、本発明の情報処理システムの一実施形態である。また、クライアント装置１００、及び、サーバ装置２００は、それぞれ、本発明の第１の情報処理装置（または、第１の処理装置）、及び、第２の情報処理装置（または、第２の処理装置）の一実施形態である。
【００２３】
クライアント装置１００は、入力部１１０、処理要求部１２０、クライアント側処理部（または、第１の処理部）１３０、及び、出力部１４０を含む。
【００２４】
入力部１１０は、例えば、キーボード等の入力装置であり、ユーザから処理対象データの分析結果の表示要求を受け付ける。
【００２５】
処理要求部１２０は、サーバ装置２００に、処理対象データの分析結果に係るレンダリング結果（イメージデータ）を要求するための処理要求を送信する。
【００２６】
クライアント側処理部１３０は、一連の副処理（分析処理、及び、レンダリング処理）の内、引継副処理以降の副処理を実行する。
【００２７】
出力部１４０は、例えば、ディスプレイ等の表示装置であり、クライアント側処理部１３０により生成されるレンダリング結果、または、サーバ装置２００から受信するレンダリング結果を、出力（表示）する。出力部１４０は、レンダリング結果を、データファイル等の他の形式で出力してもよい。
【００２８】
サーバ装置２００は、認証部２１０、装置決定部２２０、サーバ側処理部（または、第２の処理部）２３０、認証情報記憶部２４０、権限情報記憶部２５０、スクリプト記憶部２６０（処理プログラム記憶部）、及び、分析対象データ記憶部２７０を含む。
【００２９】
認証情報記憶部２４０は、ユーザを認証するための認証情報を記憶する。認証情報は、例えば、ユーザ識別子や、パスワード、クライアント装置１００の識別子、ユーザに係る証明書等、ユーザが正規ユーザかどうかを判定するための情報である。また、認証情報は、ユーザ識別子に対応づけて、ユーザのレベルやロールを示す情報を含んでいてもよい。
【００３０】
認証部２１０は、認証情報をもとに、ユーザ認証を行う。
【００３１】
権限情報記憶部２５０は、権限情報２５１を記憶する。権限情報２５１は、一連の副処理の各々に対する、各ユーザのアクセス権限（以下、単に権限と記述する）を示す。なお、権限は、ユーザの各副処理に対する、読み出し権限や、閲覧権限、使用権限であってもよい。
【００３２】
図７は、本発明の第１の実施の形態における、権限情報２５１の例を示す図である。権限情報２５１では、各ユーザの識別子に対応づけて、一連の副処理（分析処理、レンダリング処理）の各々に対する権限（ｙ：権限あり、ｎ：権限なし）が設定される。
【００３３】
なお、権限情報２５１では、各レベルやロールに対応づけて、一連の副処理の各々に対する権限が設定されてもよい。
【００３４】
装置決定部２２０は、権限情報２５１をもとに、一連の副処理の中から、引継副処理を決定する。
【００３５】
図８は、本発明の第１の実施の形態における、引継副処理の決定条件を示す図である。
【００３６】
図８に示すように、ユーザが分析対象データとレンダリング対象データとに対する権限を有する場合、装置決定部２２０は、引継副処理を「分析処理」に決定する。また、ユーザがレンダリング対象データに対する権限を有する場合、装置決定部２２０は、引継副処理を「レンダリング処理」に決定する。上記以外の場合、装置決定部２２０は、引継副処理を、一連の副処理をサーバ装置２００が実行することを示す「なし」に決定する。
【００３７】
スクリプト記憶部２６０は、例えば、Ｊａｖａ Ｓｃｒｉｐｔ（登録商標）等、分析処理、及び、レンダリング処理を行うための処理プログラムであるスクリプトを記憶する。なお、クライアント側処理部１３０、及び、サーバ側処理部２３０が実行可能な形式であればＪａｖａ Ｓｃｒｉｐｔ以外の他の形式の処理プログラムを用いてもよい。また、クライアント側処理部１３０とサーバ側処理部２３０とで、同じ副処理に対して、異なる形式の処理プログラムが用いられてもよい。
【００３８】
分析対象データ記憶部２７０は、分析対象データを記憶する。
【００３９】
サーバ側処理部２３０は、ＷＥＢサーバ２３１、及び、ＨＴＭＬ生成部２３２を含む。
【００４０】
ＷＥＢサーバ２３１は、一連の副処理の内、引継副処理より前の副処理を実行し、処理応答をクライアント装置１００に送信する。
【００４１】
ＨＴＭＬ生成部２３２は、処理応答のＨＴＭＬデータを生成する。ＨＴＭＬ生成部２３２は、引継副処理の入力データと引継副処理以降の処理の各々のスクリプト、または、最後の副処理の処理結果を含むＨＴＭＬデータを生成する。
【００４２】
なお、ＨＴＭＬ生成部２３２は、各ＨＴＭＬデータを、ＨＴＭＬのテンプレートやスクリプトのテンプレートを用いて生成してもよい。また、ＨＴＭＬ生成部２３２は、入力データをスクリプトに含めてもよい。
【００４３】
また、処理応答は、引継副処理の入力データと引継副処理以降の処理の各々のスクリプト、または、最後の副処理の処理結果をクライアント装置１００に送信できれば、ＨＴＭＬ以外の形式でもよい。
【００４４】
なお、クライアント装置１００、及び、サーバ装置２００は、それぞれ、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、サーバ装置２００における、認証情報記憶部２４０、権限情報記憶部２５０、スクリプト記憶部２６０、及び、分析対象データ記憶部２７０は、それぞれ個別の記憶媒体（例えば、メモリ、ハードディスク等）でも、１つの記憶媒体によって構成されてもよい。
【００４５】
図３は、本発明の実施の形態において、クライアント装置１００、及び、サーバ装置２００がコンピュータにより実現される場合の、分析システムの構成を示すブロック図である。
【００４６】
この場合、クライアント装置１００は、ＣＰＵ１０１、記憶媒体１０２、通信部１０３、入力部１１０、及び、出力部１４０を含む。ＣＰＵ１０１は、処理要求部１２０、及び、クライアント側処理部１３０の機能を実現するためのコンピュータプログラムを実行する。通信部１０３は、サーバ装置２００に処理要求を送信し、サーバ装置２００から処理応答を受信する。
【００４７】
サーバ装置２００は、ＣＰＵ２０１、記憶媒体２０２、及び、通信部２０３を含む。ＣＰＵ２０１は、認証部２１０、装置決定部２２０、及び、サーバ側処理部２３０の機能を実現するためのコンピュータプログラムを実行する。記憶媒体２０２は、認証情報記憶部２４０、権限情報記憶部２５０、スクリプト記憶部２６０、及び、分析対象データ記憶部２７０のデータを記憶する。通信部２０３は、クライアント装置１００から処理要求を受信し、クライアント装置１００へ処理応答を送信する。
【００４８】
次に、本発明の第１の実施の形態の動作について説明する。
【００４９】
図４、図５は、本発明の第１の実施の形態における、クライアント装置１００、サーバ装置２００の処理を示すフローチャートである。
【００５０】
ここでは、権限情報記憶部２５０が、図７の権限情報２５１を記憶していると仮定する。
【００５１】
はじめに、クライアント装置１００の入力部１１０は、ユーザから処理対象データの分析結果の表示要求を受け付ける（ステップＳ１０１）。処理要求部１２０は、サーバ装置２００に処理要求を送信する（ステップＳ１０２）。処理要求は、ユーザ認証に必要な情報を含む。また、処理要求は、分析対象データの範囲を示す情報を含んでいてもよい。
【００５２】
例えば、入力部１１０は、ユーザ識別子「ユーザＢ」のユーザから分析要求を受け付け、処理要求部１２０は、ユーザ識別子「ユーザＢ」を含む処理要求を送信する。
【００５３】
サーバ装置２００の認証部２１０は、クライアント装置１００から処理要求を受信すると（ステップＳ２０１）、処理要求に含まれる情報と認証情報とをもとに、ユーザ認証を行う（ステップＳ２０２）。
【００５４】
ユーザが正規ユーザである場合、装置決定部２２０は、権限情報２５１から、ユーザの各副処理（分析処理、レンダリング処理）の入力データに対する権限を取得する。そして、装置決定部２２０は、取得した権限を用いて、図８に示すように引継副処理を決定する（ステップＳ２０３）。
【００５５】
ここで、ユーザが分析対象データと分析結果に対する権限を有する場合（ステップＳ２０３／分析対象：ｙ、レンダリング対象：ｙ）、装置決定部２２０は、引継副処理を「分析処理」に決定する（ステップＳ２０４−１）。ＨＴＭＬ生成部２３２は、分析対象データ記憶部２７０から取得した分析対象データ、及び、スクリプト記憶部２６０から取得した分析処理とレンダリング処理とのスクリプトを含むＨＴＭＬデータを生成する（ステップＳ２０６−１）。
【００５６】
また、ユーザが分析対象データに対する権限を持たず、分析結果に対する権限を持つ場合（ステップＳ２０３／分析対象：ｎ、レンダリング対象：ｙ）、装置決定部２２０は、引継副処理を「レンダリング処理」に決定する（ステップＳ２０４−２）。ＷＥＢサーバ２３１は、分析対象データ記憶部２７０から取得した分析対象データを入力データとして、スクリプト記憶部２６０から取得した分析処理のスクリプトにより分析処理を実行し、レンダリング対象データ（分析結果）を生成する（ステップＳ２０５−２）。そして、ＨＴＭＬ生成部２３２は、ＷＥＢサーバ２３１により生成されたレンダリング対象データ、及び、スクリプト記憶部２６０から取得したレンダリング処理のスクリプトを含むＨＴＭＬデータを生成する（ステップＳ２０６−２）。
【００５７】
上記以外の場合（ステップＳ２０３／ｏｔｈｅｒ）、装置決定部２２０は、引継副処理を「なし」に決定する（ステップＳＳ２０４−３）。ＷＥＢサーバ２３１は、スクリプト記憶部２６０から取得した分析対象データを入力データとして、スクリプト記憶部２６０から取得した分析処理とレンダリング処理とのスクリプトにより、分析処理とレンダリング処理とを実行し、レンダリング結果（グラフ）を生成する（ステップＳ２０５−３）。ＨＴＭＬ生成部２３２は、ＷＥＢサーバ２３１により生成されたレンダリング結果を含むＨＴＭＬデータを生成する（ステップＳ２０６−３）。
【００５８】
ＷＥＢサーバ２３１は、生成したＨＴＭＬデータを含む処理応答をクライアント装置１００に送信する（ステップＳ２０７）。
【００５９】
例えば、装置決定部２２０は、図７の権限情報２５１から、ユーザ識別子「ユーザＢ」の権限「分析対象データ：ｎ、レンダリング対象データ：ｙ」を取得し、引継副処理を「レンダリング処理」に決定する。ＷＥＢサーバ２３１は、分析処理を実行し、レンダリング対象データ、及び、レンダリング処理のスクリプトを含む処理応答を送信する。
【００６０】
クライアント装置１００のクライアント側処理部１３０は、サーバ装置２００から処理応答を受信すると（ステップＳ１０３）、処理応答の内容に応じて、クライアント装置１００が実行する副処理を決定する（ステップＳ１０４）。
【００６１】
ここで、処理応答が、分析対象データ、及び、分析処理とレンダリング処理とのスクリプトを含む場合（ステップＳ１０４／分析対象）、クライアント側処理部１３０は、処理応答から取得した分析対象データを入力データとして、処理応答から取得した分析処理とレンダリング処理とのスクリプトにより、分析処理とレンダリング処理とを実行し、レンダリング結果（グラフ）を生成する（ステップＳ１０５−１）。
【００６２】
また、処理応答が、レンダリング対象データ、及び、レンダリング処理のスクリプトを含む場合（ステップＳ１０４／レンダリング対象）、クライアント側処理部１３０は、処理応答から取得したレンダリング対象データを入力データとして、処理応答から取得したレンダリング処理のスクリプトによりレンダリング処理を実行し、レンダリング結果（グラフ）を生成する（ステップＳ１０５−２）。
【００６３】
例えば、クライアント側処理部１３０は、処理応答から取得したレンダリング対象データ、及び、処理応答から取得したレンダリング処理のスクリプトにより、レンダリング処理を実行する。
【００６４】
出力部１４０は、クライアント側処理部１３０により生成されたレンダリング結果、または、サーバ装置２００から受信した処理応答に含まれるレンダリング結果を、ユーザへ出力（表示）する（ステップＳ１０６）。
【００６５】
例えば、出力部１４０は、クライアント側処理部１３０が生成したレンダリング結果を表示する。
【００６６】
以上により、本発明の第１の実施の形態の動作が完了する。
【００６７】
なお、本発明の第１の実施の形態においては、分析システムが実行する処理が、分析処理、及び、レンダリング処理の２つの副処理からなる場合を例として説明した。
【００６８】
しかしながら、これに限らず、分析システムが実行する処理は、分析処理、レンダリング処理以外の他の副処理からなる処理であってもよい。
【００６９】
また、分析システムが実行する処理が、１つの副処理からなる処理であってもよい。この場合、ユーザが、分析システムが実行する処理の入力データに対する権限を持つ場合は、クライアント装置１００が当該処理を実行し、それ以外の場合、サーバ装置２００が当該処理を実行する。
【００７０】
また、分析システムが実行する処理が、順番に実行される（２つを超える）一連の副処理からなる処理であってもよい。
【００７１】
この場合、権限情報２５１は、一連の副処理の各々の入力データに対する、ユーザの権限を示す。装置決定部２２０は、ユーザが、一連の副処理の各々の入力データに対する権限を有する場合、引継副処理を一連の副処理の内の最初の副処理に決定する。また、装置決定部２２０は、ユーザが、一連の副処理の内の２番目以降の特定の副処理以降の副処理の各々の入力データに対する権限を有する場合、引継副処理を当該特定の副処理に決定する。装置決定部２２０は、それ以外の場合、引継副処理を「なし」に決定する。
【００７２】
また、本発明の第１の実施の形態においては、サーバ装置２００が、クライアント装置１００で実行する各副処理のスクリプトをスクリプト記憶部２６０から取得して、クライアント装置１００に送信しているが、クライアント装置１００が、クライアント装置１００で実行する各副処理のスクリプトをクライアント装置１００のスクリプト記憶部（図示せず）から取得してもよい。
【００７３】
また、サーバ装置２００からクライアント装置１００に送信される各副処理の入力データは、許可されたスクリプトのみが使用できるような形式であってもよい。この場合、入力データは、許可されたスクリプトのみが復号して使用できるように暗号化されていてもよい。
【００７４】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【００７５】
情報処理システムは、クライアント装置（第１の処理装置）１００とサーバ装置（第２の処理装置）２００とを含む。
【００７６】
サーバ装置２００は、装置決定部２２０とサーバ側処理部（第２の処理部）２３０とを含む。装置決定部２２０は、所定の処理の入力データに対する、クライアント装置１００のユーザの権限を示す権限情報２５１をもとに、所定の処理をクライアント装置１００とサーバ装置２００の内のどちらが実行するかを決定する。サーバ側処理部２３０は、所定の処理をクライアント装置１００が実行する場合、当該所定の処理の入力データをクライアント装置１００に送信し、所定の処理をサーバ装置２００が実行する場合、当該所定の処理の入力データを用いて当該所定の処理を実行して、当該所定の処理の処理結果をクライアント装置１００に送信する。
【００７７】
また、クライアント装置１００は、クライアント側処理部（第１の処理部）１３０と出力部１４０とを含む。クライアント側処理部１３０は、所定の処理をクライアント装置１００が実行する場合、サーバ装置２００から受信した当該所定の処理の入力データを用いて当該所定の処理を実行する。出力部１４０は、所定の処理の処理結果を出力する。
【００７８】
次に、本発明の第１の実施の形態の効果を説明する。
【００７９】
本発明の第１の実施の形態によれば、処理対象のデータが秘密情報を含む場合であっても、分散処理ができる。その理由は、装置決定部２２０が、所定の処理の入力データに対する、クライアント装置１００のユーザの権限を示す権限情報２５１をもとに、所定の処理をクライアント装置１００とサーバ装置２００の内のどちらが実行するかを決定するためである。これにより、処理対象のデータが秘密情報を含む場合であっても、秘密情報に対するセキュリティを維持したまま、サーバ装置に集中する負荷をクライアント装置に分散できる。
【００８０】
また、本発明の第１の実施の形態によれば、ユーザが処理対象のデータに対する権限を有していない場合でも、分散処理ができる。その理由は、装置決定部２２０が、一連の副処理の各々の入力データに対する、クライアント装置１００のユーザの権限を示す権限情報２５１をもとに、一連の副処理の内、クライアント装置が実行する先頭の副処理である引継副処理を決定するためである。例えば、複数の個人情報や企業情報を含む元の処理対象データに対して、分析処理を行い、分析結果に対するレンダリング処理を行う場合、分析結果やレンダリング結果は、元の処理対象データの特徴を表現するような抽象化データであり、元の処理対象データに対して匿名性が高い。この場合、ユーザが元の処理対象データ（最初の副処理の入力データ）に対する権限を有していなくても、後段の副処理の入力データに対しては、権限を有する可能性がある。したがって、レンダリング処理のように、後段の副処理をクライアント装置で実行できる。
【００８１】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【００８２】
本発明の第２の実施の形態では、引継副処理を、権限情報２５１に加えて、予測処理時間を用いて決定する点において、本発明の第１の実施の形態と異なる。
【００８３】
はじめに、本発明の第２の実施の形態の構成について説明する。
【００８４】
図９は、本発明の第２の実施の形態における、分析システムの構成を示すブロック図である。
【００８５】
図９を参照すると、本発明の第２の実施の形態のクライアント装置１００は、本発明の第１の実施の形態のクライアント装置１００の構成要素に加えて、クライアント負荷監視部１５０、及び、ネットワーク負荷監視部１６０を含む。
【００８６】
クライアント負荷監視部１５０は、クライアント装置１００における、ＣＰＵ使用率等の負荷情報を収集する。ネットワーク負荷監視部１６０は、クライアント装置１００とサーバ装置２００との間の通信におけるスループット等のネットワーク負荷情報を収集する。
【００８７】
また、本発明の第２の実施の形態のサーバ装置２００は、本発明の第１の実施の形態のサーバ装置２００の構成要素に加えて、サーバ負荷監視部２８０、及び、処理時間算出部２９０を含む。サーバ負荷監視部２８０は、サーバ装置２００における、ＣＰＵ使用率等の負荷情報を収集する。処理時間算出部２９０は、クライアント負荷監視部１５０、サーバ負荷監視部２８０から取得した負荷情報、及び、ネットワーク負荷監視部１６０から取得したネットワーク負荷情報をもとに、引継副処理の各候補に対して、一連の副処理に係る予測処理時間を算出する。
【００８８】
ここで、処理時間算出部２９０は、負荷情報、ネットワーク負荷情報をもとに、クライアント装置１００、サーバ装置２００における一連の副処理の各々（分析処理、レンダリング処理）の処理時間、各転送データ（分析対象データや、レンダリング対象データ、レンダリング結果）の転送時間を取得する。処理時間算出部２９０は、例えば、負荷情報やネットワーク負荷情報に対する所定の計算式や、所定の変換表を用いて、クライアント装置１００、サーバ装置２００における各副処理の処理時間や、各転送データの転送時間を取得する。また、処理時間算出部２９０は、負荷情報やネットワーク負荷情報の代わりに、各副処理の入力データのサイズや各転送データのサイズに対する所定の計算式や、所定の変換表を用いて、クライアント装置１００、サーバ装置２００における各副処理の処理時間や、各転送データの転送時間を取得してもよい。また、クライアント負荷監視部１５０、サーバ負荷監視部２８０、及び、ネットワーク負荷監視部１６０が、クライアント装置１００、サーバ装置２００における各副処理の処理時間、各転送データの転送時間を監視し、処理時間算出部２９０が、これらの処理時間、転送時間を取得してもよい。処理時間算出部２９０は、引継副処理の各候補について、これらの処理時間、転送時間を合計することにより、予測処理時間を算出する。
【００８９】
装置決定部２２０は、権限情報２５１をもとに、一連の副処理の中から、引継副処理の候補を抽出する。
【００９０】
図１１は、本発明の第２の実施の形態における、引継副処理の候補の抽出条件を示す図である。
【００９１】
図１１に示すように、ユーザが分析対象データとレンダリング対象データとに対する権限を有する場合、装置決定部２２０は、引継副処理の候補として、「分析処理」、「レンダリング処理」、及び、「なし」を抽出する。また、ユーザがレンダリング対象データに対する権限を有する場合、装置決定部２２０は、引継副処理の候補として、「レンダリング処理」、及び、「なし」を抽出する。上記以外の場合、装置決定部２２０は、引継副処理の候補として、「なし」を抽出する。
【００９２】
装置決定部２２０は、処理時間算出部２９０から、各引継副処理の候補に対する予測処理時間を取得し、予測処理時間が最小の候補を、引継副処理に決定する。
【００９３】
次に、本発明の第２の実施の形態の動作について説明する。
【００９４】
図１０は、本発明の第２の実施の形態における、サーバ装置２００の処理を示すフローチャートである。
【００９５】
ここでは、権限情報記憶部２５０が、図７の権限情報２５１を記憶していると仮定する。
【００９６】
クライアント装置１００がユーザから分析要求を受け付けてから、サーバ装置２００がユーザ認証を行うまでの動作（ステップＳ１０１、Ｓ１０２、Ｓ３０１、Ｓ３０２）は、本発明の第１の実施の形態（図４のステップＳ１０１、Ｓ１０２、図５のステップＳ２０１、Ｓ２０２）と同一である。
【００９７】
ユーザが正規ユーザである場合、装置決定部２２０は、権限情報２５１からユーザの各副処理（分析処理、レンダリング処理）に対する権限を取得する。そして、装置決定部２２０は、取得した権限を用いて、図１１に示すように引継副処理の候補を抽出する（ステップＳ３０３）。
【００９８】
例えば、装置決定部２２０は、図７の権限情報２５１から、ユーザ識別子「ユーザＡ」の権限「分析対象データ：ｙ、レンダリング対象データ：ｙ」を取得し、引継副処理の候補として、「分析処理」、「レンダリング処理」、及び、「なし」を抽出する。
【００９９】
装置決定部２２０は、処理時間算出部２９０から、各候補に対する予測処理時間を取得し、予測処理時間が最小の候補を、引継副処理に決定する（ステップＳ３０４−１、Ｓ３０４−２）。
【０１００】
図１２は、本発明の第２の実施の形態における、予測処理時間の算出例を示す図である。
【０１０１】
例えば、処理時間算出部２９０は、引継副処理の候補「分析処理」に対して、クライアント装置１００における分析処理とレンダリング処理の処理時間、及び、分析対象データの転送時間を合計し、予測処理時間を算出する。また、処理時間算出部２９０は、引継副処理の候補「レンダリング処理」に対して、サーバ装置２００における分析処理の処理時間、クライアント装置１００におけるレンダリング処理の処理時間、及び、レンダリング対象データの転送時間を合計し、予測処理時間を算出する。処理時間算出部２９０は、引継副処理の候補「なし」に対して、サーバ装置２００における分析処理の処理時間とレンダリング処理の処理時間、及び、レンダリング結果の転送時間を合計し、予測処理時間を算出する。そして、装置決定部２２０は、図１２において、予測処理時間が最小の引継副処理の候補「レンダリング処理」を、引継副処理に決定する。
【０１０２】
以下、決定した引継副処理に応じて、ＷＥＢサーバ２３１が引継副処理より前の副処理を実行、クライアント側処理部１３０が引継副処理以降の副処理を実行し、出力部１４０がレンダリング結果を出力するまでの動作（ステップＳ３０５〜Ｓ３０７、Ｓ１０３〜Ｓ１０６）は、本発明の第１の実施の形態（図５のステップＳ２０５〜Ｓ２０７、図４のステップＳ１０３〜Ｓ１０６）と同一である。
【０１０３】
次に、本発明の第２の実施の形態の効果を説明する。
【０１０４】
本発明の第２の実施の形態によれば、本発明の第１の実施の形態に比べて、分散処理を高速化できる。その理由は、装置決定部２２０が、権限情報２５１に加えて、予測処理時間を用いて、引継副処理を決定するためである。
【０１０５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１０６】
１００    クライアント装置
１０１    ＣＰＵ
１０２    記憶媒体
１０３    通信部
１１０    入力部
１２０    処理要求部
１３０    クライアント側処理部
１４０    出力部
１５０    クライアント負荷監視部
１６０    ネットワーク負荷監視部
２００    サーバ装置
２０１    ＣＰＵ
２０２    記憶媒体
２０３    通信部
２１０    認証部
２２０    装置決定部
２３０    サーバ側処理部
２４０    認証情報記憶部
２５０    権限情報記憶部
２５１    権限情報
２６０    スクリプト記憶部
２７０    分析対象データ記憶部
２８０    サーバ負荷監視部
２９０    処理時間算出部
【図１】
2015064635.tif 000003
【図２】
2015064635.tif 000004
【図３】
2015064635.tif 000005
【図４】
2015064635.tif 000006
【図５】
2015064635.tif 000007
【図６】
2015064635.tif 000008
【図７】
2015064635.tif 000009
【図８】
2015064635.tif 000010
【図９】
2015064635.tif 000011
【図１０】
2015064635.tif 000012
【図１１】
2015064635.tif 000013
【図１２】
2015064635.tif 000014