(57)【要約】【課題】クライアント装置が担当する処理の効率的な実行と、サーバ装置がクライアント装置に割り当てる処理の効率的な実行とを両立可能なサーバ装置、分散処理方法、および分散処理プログラムを提供する。【解決手段】サーバ装置１は、複数のクライアント装置２と接続し分散処理システムを構成する。割当要求取得部３は、クライアント装置２への第二処理２ｂの割当要求を取得する。資源情報取得部４は、資源情報４ａをクライアント装置２から取得する。クライアント装置割当順位決定部５は、クライアント装置２の割当順位を決定する。第二処理割当順位決定部６は、第二処理２ｂの割当順位を決定する。割当決定部７は、決定された割当順位にもとづいてクライアント装置２とクライアント装置２に割り当てる第二処理２ｂを決定する。割当部８は、クライアント装置２に第二処理２ｂを割り当てる。【選択図】図１
2014074998.tif 000002
【特許請求の範囲】
【請求項１】
第一処理のバックグラウンドで第二処理を実行可能な複数のクライアント装置と接続するサーバ装置であって、
前記クライアント装置への前記第二処理の割当要求を取得する割当要求取得部と、
前記クライアント装置が前記第二処理に割当可能な資源に関する資源情報を前記クライアント装置から取得する資源情報取得部と、
前記割当要求のある前記第二処理を前記複数のクライアント装置に割り当てる際の前記クライアント装置の割当順位を、前記資源情報にもとづいてクライアント装置割当順位として決定するクライアント装置割当順位決定部と、
前記割当要求のある前記第二処理を前記複数のクライアント装置に割り当てる際の前記第二処理の割当順位を、前記第二処理が要求する処理内容にもとづいて第二処理割当順位として決定する第二処理割当順位決定部と、
前記クライアント装置割当順位と前記第二処理割当順位とにもとづいて、前記クライアント装置と、該クライアント装置に割り当てる前記第二処理とを決定する割当決定部と、
決定した前記クライアント装置に、決定した前記第二処理を割り当てる割当部と、
を備えることを特徴とするサーバ装置。
【請求項２】
前記資源情報は、前記クライアント装置が担当する業務の業務グループと、前記クライアント装置の稼働状況とを含んで構成され、
前記クライアント装置割当順位決定部は、
前記業務グループに応じた前記資源を、前記業務グループに応じた時限性にもとづいて業務グループ評価値として評価し、
前記稼働状況に応じた前記資源を、前記稼働状況にもとづいて稼働状況評価値として評価し、
前記業務グループ評価値と、前記稼働状況評価値とにもとづいて前記クライアント装置に応じた前記資源を、クライアント装置評価値として評価し、
前記クライアント装置評価値にもとづいて前記クライアント装置割当順位を決定する、
ことを特徴とする請求項１記載のサーバ装置。
【請求項３】
前記クライアント装置割当順位決定部は、
前記複数のクライアント装置の前記クライアント装置評価値にもとづいて前記クライアント装置割当順位を決定し、
前記割当決定部は、
前記クライアント装置割当順位にもとづいて、前記資源が多い前記クライアント装置を優先して前記第二処理の割り当てを決定する、
ことを特徴とする請求項２記載のサーバ装置。
【請求項４】
前記クライアント装置割当順位決定部は、
前記クライアント装置評価値にもとづいて、前記クライアント装置の割り当ての要否を判定し、
割り当てをするとした前記クライアント装置の前記クライアント装置割当順位を決定する、
ことを特徴とする請求項２または請求項３に記載のサーバ装置。
【請求項５】
前記第二処理割当順位決定部は、
前記第二処理が要求する前記第二処理の時限性と、前記第二処理が要求する前記第二処理のサイズのいずれか１つまたは両方にもとづいて、前記第二処理割当順位を決定する、
ことを特徴とする請求項１乃至請求項４のいずれか１つに記載のサーバ装置。
【請求項６】
前記第二処理割当順位決定部は、
前記第二処理の処理状態あるいは前記第二処理の処理時間にもとづいて、前記第二処理の割り当ての要否を判定し、
割り当てをするとした前記第二処理の前記第二処理割当順位を決定する、
ことを特徴とする請求項１乃至請求項５のいずれか１つに記載のサーバ装置。
【請求項７】
前記第二処理割当順位決定部は、
前記第二処理が要求する前記第二処理の時限性の有無で前記第二処理を並び替え、
前記時限性の有無で並び替えられた前記第二処理を、前記時限性毎に前記第二処理が要求する前記第二処理のサイズで並び替え、
前記サイズで並び替えられた前記第二処理の並び順にもとづいて前記第二処理割当順位を決定し、
前記割当決定部は、
前記第二処理割当順位にもとづいて、前記時限性が有り、かつ前記サイズが大きい前記第二処理を優先して前記クライアント装置への割り当てを決定する、
ことを特徴とする請求項１乃至請求項４または請求項６のいずれか１つに記載のサーバ装置。
【請求項８】
前記クライアント装置割当順位決定部は、
それぞれの前記クライアント装置の前記クライアント装置評価値を比較し、
前記クライアント装置評価値の比較結果にもとづいて前記クライアント装置割当順位を決定し、
前記第二処理割当順位決定部は、
前記第二処理が要求する前記第二処理の時限性の有無で前記第二処理を並び替え、
前記時限性の有無で並び替えられた前記第二処理を、前記時限性毎に前記第二処理が要求する前記第二処理のサイズで並び替え、
前記サイズで並び替えられた前記第二処理の並び順にもとづいて前記第二処理割当順位を決定し、
前記割当決定部は、
前記第二処理割当順位と前記クライアント装置割当順位とにもとづいて、前記資源が多い前記クライアント装置に、前記時限性が有り、かつ前記サイズが大きい前記第二処理を優先して割り当て、割り当てを決定する、
ことを特徴とする請求項２記載のサーバ装置。
【請求項９】
第一処理のバックグラウンドで第二処理を実行可能な複数のクライアント装置と接続するサーバ装置であって、
コンピュータに、
前記第二処理の前記クライアント装置への割当要求を取得させ、
前記クライアント装置が前記第二処理に割当可能な資源に関する資源情報を前記クライアント装置から取得させ、
前記割当要求のある前記第二処理を前記複数のクライアント装置に割り当てる際の前記クライアント装置の割当順位を、前記資源情報にもとづいてクライアント装置割当順位として決定させ、
前記割当要求のある前記第二処理を前記複数のクライアント装置に割り当てる際の前記第二処理の割当順位を、前記第二処理が要求する処理内容にもとづいて第二処理割当順位として決定させ、
前記クライアント装置割当順位と前記第二処理割当順位とにもとづいて、前記クライアント装置と、該クライアント装置に割り当てる前記第二処理とを決定させ、
決定した前記クライアント装置に、決定した前記第二処理を割り当てさせる、
ことを特徴とする分散処理方法。
【請求項１０】
第一処理のバックグラウンドで第二処理を実行可能な複数のクライアント装置と接続するサーバ装置であって、
コンピュータが、
前記クライアント装置への前記第二処理の割当要求を取得し、
前記クライアント装置が前記第二処理に割当可能な資源に関する資源情報を前記クライアント装置から取得し、
前記割当要求のある前記第二処理を前記複数のクライアント装置に割り当てる際の前記クライアント装置の割当順位を、前記資源情報にもとづいてクライアント装置割当順位として決定し、
前記割当要求のある前記第二処理を前記複数のクライアント装置に割り当てる際の前記第二処理の割当順位を、前記第二処理が要求する処理内容にもとづいて第二処理割当順位として決定し、
前記クライアント装置割当順位と前記第二処理割当順位とにもとづいて、前記クライアント装置と、該クライアント装置に割り当てる前記第二処理とを決定し、
決定した前記クライアント装置に、決定した前記第二処理を割り当てる、
ことを特徴とする分散処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
サーバ装置、分散処理方法、および分散処理プログラムに関する。
【背景技術】
【０００２】
従来、サーバ装置と複数のクライアント装置を備えるシステムにおいて、システム全体で効率的に処理を実行するために、サーバ装置がクライアント装置に処理を分散する分散処理システムが知られている。
【０００３】
分散処理システムにおいて、サーバ装置は、クライアント装置の稼働状況を管理し、クライアント装置の稼働状況に応じてクライアント装置への負荷分散（分散処理の割り当て）を実行する。分散処理システムは、このような負荷分散により、効率的な処理の実行を図っている。
【０００４】
たとえば、各システムのシステム情報を用いてシステムの負荷状況を判定し、過剰な負荷がかかっているシステムが実行する処理の一部を、他のシステムに分散することで、負荷を分散する技術の提案がある（たとえば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３２３４９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
また、クライアント装置は、サーバ装置から割り当てられる処理とは別に、各々が担当する処理を有する場合がある。たとえば、クライアント装置は、フォアグラウンドで担当する処理を実行し、バックグラウンドでサーバ装置から割り当てられる処理を実行することで、クライアントの余剰資源をシステム全体で有効活用する分散処理システムがある。
【０００７】
このような分散処理システムに提案の技術を適用した場合に、必ずしも効率的な処理の実行をおこなうことができない。
たとえば、担当する処理の性質によっては、クライアント装置は、担当する処理の実行の遅延が許されない。また、サーバ装置がクライアント装置に割り当てる処理についても、その処理の性質によっては、可及的に速やかな実行が求められることがある。
【０００８】
そのため、サーバ装置は、クライアント装置が担当する処理の実行を妨げることなく、クライアント装置に負担させようとする処理が効率的に実行されるように、クライアント装置に処理の割り当てを実行することが求められる。
【０００９】
本発明は、このような点に鑑みてなされたものであり、クライアント装置が担当する処理の効率的な実行と、サーバ装置がクライアント装置に割り当てる処理の効率的な実行とを両立可能なサーバ装置、分散処理方法、および分散処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、第一処理のバックグラウンドで第二処理を実行可能な複数のクライアント装置と接続するサーバ装置を提供する。
サーバ装置は、割当要求取得部と、資源情報取得部と、クライアント装置割当順位決定部と、第二処理割当順位決定部と、割当決定部と、割当部とを備える。
【００１１】
割当要求取得部は、クライアント装置への第二処理の割当要求を取得する。資源情報取得部は、クライアント装置が第二処理に割当可能な資源に関する資源情報をクライアント装置から取得する。クライアント装置割当順位決定部は、割当要求のある第二処理を複数のクライアント装置に割り当てる際のクライアント装置の割当順位を、資源情報にもとづいてクライアント装置割当順位として決定する。
【００１２】
第二処理割当順位決定部は、割当要求のある第二処理を複数のクライアント装置に割り当てる際の第二処理の割当順位を、第二処理が要求する処理内容にもとづいて第二処理割当順位として決定する。割当決定部は、クライアント装置割当順位と、第二処理割当順位とにもとづいて、クライアント装置と、クライアント装置に割り当てる第二処理とを決定する。割当部は、決定したクライアント装置に、決定した第二処理を割り当てる。
【００１３】
また、上記課題を達成するために、本発明は、以下に示すような処理をコンピュータがおこなう分散処理方法、および以下に示すような処理をコンピュータに実行させる分散処理プログラムを提供する。
【００１４】
コンピュータは、第二処理のクライアント装置への割当要求を取得し、クライアント装置が第二処理に割当可能な資源に関する資源情報をクライアント装置から取得し、割当要求のある第二処理を複数のクライアント装置に割り当てる際のクライアント装置の割当順位を、資源情報にもとづいてクライアント装置割当順位として決定し、割当要求のある第二処理を複数のクライアント装置に割り当てる際の第二処理の割当順位を、第二処理が要求する処理内容にもとづいて第二処理割当順位として決定し、クライアント装置割当順位と、第二処理割当順位とにもとづいて、クライアント装置と、クライアント装置に割り当てる第二処理とを決定し、決定したクライアント装置に、決定した第二処理を割り当てる。
【発明の効果】
【００１５】
上記のサーバ装置、分散処理方法、および分散処理プログラムによれば、クライアント装置が担当する処理の効率的な実行と、サーバ装置がクライアント装置に割り当てる処理の効率的な実行とを両立することができる。
【図面の簡単な説明】
【００１６】
【図１】第一実施形態のサーバ装置の構成を示す図である。
【図２】第二実施形態の分散処理システムを示す図である。
【図３】第二実施形態のクライアント装置の機能構成を示す図である。
【図４】第二実施形態のサーバ装置の機能構成を示す図である。
【図５】第二実施形態の割当対象処理ＤＢの一例を示す図である。
【図６】第二実施形態のクライアント稼働状況ＤＢの一例を示す図である。
【図７】第二実施形態のクライアント装置のハードウェアの構成を示す図である。
【図８】第二実施形態のクライアント装置の稼働状況の取得の流れを示すシーケンス図である。
【図９】第二実施形態の稼働状況取得処理のフローチャートである。
【図１０】第二実施形態の稼働状況データの一例を示す図である。
【図１１】第二実施形態のＡＰサーバの分散処理の流れを示すシーケンス図である。
【図１２】第二実施形態のクライアント装置の割当順の一例を示す図である。
【図１３】第二実施形態の優先ポイント算出処理のフローチャートである。
【図１４】第二実施形態の業務グループテーブルの一例を示す図である。
【図１５】第二実施形態のログイン状況テーブルの一例を示す図である。
【図１６】第二実施形態の実行中業務テーブルの一例を示す図である。
【図１７】第二実施形態の負荷状況テーブルの一例を示す図である。
【図１８】第二実施形態のバックグラウンド処理の有無テーブルの一例を示す図である。
【図１９】第二実施形態の割当対象処理決定処理のフローチャートである。
【図２０】第二実施形態の業務種別テーブルの一例を示す図である。
【図２１】第二実施形態の割当対象処理の割当順の一例を示す図である。
【図２２】第二実施形態の割当対象処理の実行の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１７】
以下、実施形態について図面を参照して説明する。
［第一実施形態］
まず、第一実施形態のサーバ装置について、図１を用いて説明する。図１は、第一実施形態のサーバ装置の構成を示す図である。
【００１８】
サーバ装置１は、複数のクライアント装置２と接続し、分散処理システムを構成する。
クライアント装置２は、第一処理２ａをフォアグラウンドで実行可能な装置であり、第一処理２ａのバックグラウンドで第二処理２ｂを実行可能な装置である。第一処理２ａは、各々のクライアント装置２が担当する処理である。第一処理２ａは、クライアント装置２毎に異なる処理である場合がある。第二処理２ｂは、サーバ装置１によりクライアント装置２へ割り当てられる処理である。
【００１９】
サーバ装置１は、割当要求取得部３と、資源情報取得部４と、クライアント装置割当順位決定部５と、第二処理割当順位決定部６と、割当決定部７と、割当部８と、を備える。
割当要求取得部３は、クライアント装置２への第二処理２ｂの割当要求を取得する。割当要求は、割り当ての要求である。
【００２０】
資源情報取得部４は、クライアント装置２が第二処理２ｂに割当可能な資源に関する資源情報４ａをクライアント装置２から取得する。ここでいう資源とは、クライアント装置２が所要の処理を実行するために有している資源であり、たとえば、ＣＰＵ（Central Processing Unit）リソースやメモリリソースやＩ／Ｏ（Input ／ Output）リソースなどがある。
【００２１】
クライアント装置割当順位決定部５は、割当要求のある第二処理２ｂを複数のクライアント装置２に割り当てる際のクライアント装置２の割当順位を、資源情報４ａにもとづいてクライアント装置割当順位として決定する。クライアント装置２の割当順位は、第二処理２ｂの割り当てを受けるクライアント装置２の、複数のクライアント装置２の中での順位である。
【００２２】
第二処理割当順位決定部６は、割当要求のある第二処理２ｂを複数のクライアント装置２に割り当てる際の第二処理２ｂの割当順位を、第二処理２ｂが要求する処理内容にもとづいて、第二処理割当順位として決定する。第二処理２ｂの割当順位は、第二処理２ｂをクライアント装置２に割り当てる、割当要求のある第二処理２ｂの中での順位である。
【００２３】
第二処理２ｂが要求する処理内容は、クライアント装置２が第二処理２ｂを実行するために要求される、第二処理２ｂの処理量の大小と、時限性の有無がある。時限性とは、緊急性である。すなわち、時限性が有る第二処理２ｂは、可及的速やかに実行される必要がある。
【００２４】
割当決定部７は、クライアント装置割当順位と第二処理割当順位とにもとづいて、クライアント装置２と、クライアント装置２に割り当てる第二処理２ｂとを決定する。
割当部８は、決定したクライアント装置２に、決定した第二処理２ｂを割り当てる。
【００２５】
このようなサーバ装置１は、資源情報４ａをクライアント装置２から取得することができる。また、サーバ装置１は、取得した資源情報４ａにもとづいて、クライアント装置２の割当順位を決定することができる。また、サーバ装置１は、クライアント装置２への第二処理２ｂの割当要求を取得することができる。また、サーバ装置１は、第二処理２ｂの処理内容にもとづいて、第二処理２ｂの割当順位を決定することができる。また、サーバ装置１は、第二処理２ｂの割当順位とクライアント装置２の割当順位とにもとづいてクライアント装置２と、クライアント装置２に割り当てる第二処理２ｂを決定することができる。また、サーバ装置１は、決定したクライアント装置２に、決定した第二処理２ｂを割り当てることができる。
【００２６】
このようにして、サーバ装置１は、クライアント装置２が担当する第一処理の効率的な実行と、クライアント装置２に割り当てる第二処理の効率的な実行とを両立するように、第二処理をクライアント装置２に割り当てることができる。
【００２７】
［第二実施形態］
次に、第二実施形態について説明する。図２は、第二実施形態の分散処理システムを示す図である。
【００２８】
分散処理システム２０は、割当対象の処理を分散して実行することで、効率的な処理の実行を図るシステムである。たとえば、分散処理システム２０は、金融機関の分散処理システムであり、割当対象の処理は、帳票のイメージ認識処理である。分散処理システム２０は、サーバ装置２３と、サーバ装置２３とネットワーク２１を介して接続する複数のクライアント装置２２とを備える。
【００２９】
クライアント装置２２は、サーバ装置２３によって割り当てられた処理を実行する装置である。クライアント装置２２は、フォアグラウンドにおいてクライアント装置２２が担当する業務に関する処理を実行し、バックグラウンドにおいてサーバ装置２３から割り当てられた割当対象処理に関する処理を実行する。割当対象処理は、分散処理システム２０において分散して実行する対象となっている処理である。担当する業務とは、クライアント装置２２が所属している業務グループの業務であり、クライアント装置２２が日常的におこなう日常業務である。担当する業務とは、たとえば、為替業務や総合給与振込業務である。担当する業務に関する処理とは、たとえば、為替業務における帳票読取や為替業務における印刷などである。
【００３０】
サーバ装置２３は、割当対象処理をクライアント装置２２に割り当てる装置である。割当対象処理は、たとえば、サーバ装置２３がクライアント装置２２から取得した実行要求のある処理や、図示しない外部装置から取得した実行要求のある処理である。サーバ装置２３は、ＡＰ（APplication）サーバ２４とＤＢ（DataBase）サーバ２５とを備える。
【００３１】
ＡＰサーバ２４は、割当対象処理が割り当てられるクライアント装置２２と、クライアント装置２２に割り当てる割当対象処理を決定し、決定したクライアント装置２２に、決定した割当対象処理を割り当てる装置である。ＤＢサーバ２５は、ＤＢを管理する。
【００３２】
次に、クライアント装置２２について、図３を用いて説明する。図３は、第二実施形態のクライアント装置の機能構成を示す図である。
クライアント装置２２は、フォアグラウンド処理部３０とバックグラウンド処理部３１とを含む。フォアグラウンド処理部３０は、クライアント装置２２のフォアグラウンドで実行する処理をおこなう。フォアグラウンド処理部３０は、クライアント装置２２が担当する業務に関する処理を実行する。
【００３３】
バックグラウンド処理部３１は、クライアント装置２２がバックグラウンドで実行する処理をおこなう。バックグラウンド処理部３１は、サーバ装置２３から割り当てられた割当対象処理を実行する。また、バックグラウンド処理部３１は、クライアント装置２２の稼働状況をサーバ装置２３に通知する。バックグラウンド処理部３１は、クライアント稼働状況取得部３２と、ポーリング処理部３３と、処理時間測定部３４とを含んで構成される。
【００３４】
クライアント稼働状況取得部３２は、クライアント装置２２の稼働状況を取得する。クライアント稼働状況取得部３２は、たとえば、ＣＰＵ使用率、メモリ使用量、ディスクＩ／Ｏ、ログイン状況、フォアグラウンド処理部３０の処理実行状態、バックグラウンド処理部３１の処理実行状態などを取得する。なお、クライアント稼働状況取得部３２が取得する情報は、これに限らず、クライアント装置２２の稼働状況の特定に用いることができる情報であればよい。
【００３５】
処理時間測定部３４は、バックグラウンド処理部３１が割当対象処理を実行した際に処理に要した時間を測定する。
ポーリング処理部３３は、クライアント稼働状況取得部３２に定期的にクライアント装置２２の稼働状況の問い合わせをおこなう。また、ポーリング処理部３３は、処理時間測定部３４に対して、バックグラウンド処理部３１が割当対象処理を実行開始したことを通知する。また、ポーリング処理部３３は、処理時間測定部３４に対して、バックグラウンド処理部３１が割当対象処理を実行終了したことを通知する。そして、ポーリング処理部３３は、処理時間測定部３４から割当対象処理の処理時間を取得する。また、ポーリング処理部３３は、サーバ装置２３と通信処理を実行する。
【００３６】
次に、サーバ装置２３について、図４を用いて説明する。図４は、第二実施形態のサーバ装置の機能構成を示す図である。
サーバ装置２３は、ＡＰサーバ２４とＤＢサーバ２５とを備える。
【００３７】
ＤＢサーバ２５は、割当対象処理ＤＢ４６とクライアント稼働状況ＤＢ４７とを含んで構成される。割当対象処理ＤＢ４６は、割当対象処理に関する情報を保持するＤＢである。割当対象処理ＤＢ４６については、後で図５を用いて説明する。クライアント稼働状況ＤＢ４７は、クライアント装置２２の稼働状況に関する情報を保持するＤＢである。クライアント稼働状況ＤＢ４７については、後で図６を用いて説明する。
【００３８】
ＡＰサーバ２４は、フォアグラウンド処理部４０とバックグラウンド処理部４１とを含んで構成される。
フォアグラウンド処理部４０は、ＡＰサーバ２４がフォアグラウンドで実行する処理をおこなう処理部である。フォアグラウンド処理部４０は、たとえば、クライアント装置２２がフォアグラウンド処理部３０で実行する処理に関連した処理を実行する。フォアグラウンド処理部４０は、たとえば、関連した処理としてクライアント装置２２のフォアグラウンド処理部３０からデータを受け取り、受け取ったデータの処理を割当対象処理として、受け取ったデータをＤＢサーバ２５へ送信する。
【００３９】
バックグラウンド処理部４１は、ＡＰサーバ２４がバックグラウンドで実行する処理をおこなう処理部である。バックグラウンド処理部４１は、たとえば、クライアント装置２２がバックグラウンド処理部３１で実行する処理に関連した処理を実行する。バックグラウンド処理部４１は、クライアント装置２２と、クライアント装置２２のバックグラウンド処理部３１に割り当てる割当対象処理を決める。バックグラウンド処理部４１は、クライアント稼働状況管理部４２と、処理先判定部４３と、割当対象処理選択部４４と、処理結果格納部４５とを含んで構成される。
【００４０】
クライアント稼働状況管理部４２は、分散処理システム２０を構成している各々のクライアント装置２２の稼働状況を管理する。クライアント稼働状況管理部４２は、クライアント装置２２のポーリング処理部３３と通信処理をおこない、定期的にポーリング処理部３３からクライアント装置２２の稼働状況に関する情報を取得する。そして、クライアント稼働状況管理部４２は、取得したクライアント装置２２の稼働状況に関する情報にもとづいてクライアント装置２２の優先ポイントを算出し、優先ポイントとクライアント稼働状況とを併せてＤＢサーバ２５へ送信する。優先ポイントは、クライアント装置２２が割当対象処理を割当可能な資源に関する情報であり、大小を比較可能な情報である。優先ポイントは、フォアグラウンド処理部３０で実行する業務の特性を考慮した情報であり、ＡＰサーバ２４がクライアント装置２２の割当可能な資源を評価し数値化したものである。
【００４１】
また、クライアント稼働状況管理部４２は、クライアント装置２２のポーリング処理部３３へ割当対象処理の送信を実行する。
処理先判定部４３は、クライアント稼働状況ＤＢ４７にもとづいて処理先（クライアント装置２２）を決定する。処理先判定部４３は、優先ポイントが高いクライアント装置２２から順番に割当対象処理を割り当てる処理先としてクライアント装置２２を決定する。
【００４２】
割当対象処理選択部４４は、割当対象処理ＤＢ４６にもとづいて、割当対象処理の選択を実行する。割当対象処理の選択については、後で図１９を用いて説明する。
処理結果格納部４５は、割当対象処理の処理結果を格納する。処理結果格納部４５は、ポーリング処理部３３から、割当対象処理の処理結果と、処理時間を受け取る。そして、処理結果格納部４５は、処理結果と処理時間をＤＢサーバ２５へ送信する。
【００４３】
次に、割当対象処理ＤＢ４６について図５を用いて説明する。図５は、第二実施形態の割当対象処理ＤＢの一例を示す図である。
割当対象処理ＤＢ４８は、処理ＩＤ（IDentification）と、業務種別と、サイズ（ＫＢ：KiloByte）と、処理時間の各項目を含んで構成されているが、これ以外の項目を設けてもよい。処理ＩＤは、割当対象処理を一意に識別可能な識別情報である。業務種別は、業務毎に分けられた業務の種別である。サイズは、割当対象処理の大きさ（処理量）である。処理時間は、処理状態あるいは処理に要した時間である。
【００４４】
たとえば、処理ＩＤ「♯００１」を特定することで、業務種別「為替」、サイズ「３０」、処理時間「未処理」を取得することができる。
処理ＩＤ「♯００１」の業務種別「為替」は、処理ＩＤ「♯００１」の割当対象処理が為替業務で発生した割当対象処理であることを示している。業務種別は、たとえば、「為替」と「総合給与振込」がある。
【００４５】
処理ＩＤ「♯００１」のサイズ「３０」は、処理ＩＤ「♯００１」の割当対象処理のサイズが３０ＫＢであることを示している。
処理ＩＤ「♯００１」の処理時間「未処理」は、処理ＩＤ「♯００１」の割当対象処理が未処理であることを示している。処理時間は、たとえば、まだ処理をされていない場合の「未処理」と、現在処理中である場合の「処理中」と、処理を試みて完了しなかった場合の処理に要した時間（たとえば、「１０分」）とがある。
【００４６】
次に、クライアント稼働状況ＤＢ４７について図６を用いて説明する。図６は、第二実施形態のクライアント稼働状況ＤＢの一例を示す図である。
クライアント稼働状況ＤＢ４９は、クライアントＩＤと、業務グループと、ログイン状況と、実行中業務と、負荷状況と、バックグラウンド処理の有無と、優先ポイントの項目を含み構成されているが、これ以外の項目を設けてもよい。
【００４７】
クライアントＩＤは、クライアント装置２２を一意に識別可能な識別情報である。業務グループは、業務毎に分けられたグループである。ログイン状況は、ログインしているか否かの状況である。実行中業務は、フォアグラウンド処理部で実行されている業務に関する処理である。負荷状況は、負荷の状況である。バックグラウンド処理の有無は、バックグラウンド処理部３１に割当対象処理が有るか否かである。
【００４８】
たとえば、クライアントＩＤ「♯０００１」を特定することで、業務グループ「為替」、ログイン状況「ＯＵＴ」、実行中業務「なし」、負荷状況「高」、バックグラウンド処理の有無「有」、優先ポイント「０」とクライアント装置２２の稼働状況を取得することができる。
【００４９】
クライアントＩＤ「♯０００１」の業務グループ「為替」は、クライアントＩＤ「♯０００１」のクライアント装置２２（以下クライアント装置「♯０００１」）が為替業務の業務グループに所属していることを示している。業務グループは、たとえば、「為替」と「総合給与振込」がある。
【００５０】
クライアントＩＤ「♯０００１」のログイン状況「ＯＵＴ」は、クライアント装置「♯０００１」に利用者がログインしていないことを示している。ログイン状況は、たとえば、利用者がログアウトしている場合の「ＯＵＴ」と、利用者がログインしている場合の「ＩＮ」がある。
【００５１】
クライアントＩＤ「♯０００１」の実行中業務「なし」は、クライアント装置「♯０００１」がフォアグラウンド処理部３０で処理を実行していないことを示している。実行中業務は、たとえば、「格納」と「伝票照会」と「一覧紹介」と「更新」と「印刷」と「なし」がある。
【００５２】
クライアントＩＤ「♯０００１」の負荷状況「高」は、クライアント装置「♯０００１」に高い負荷がかかっていることを示している。負荷状況は、たとえば、「高」と「低」がある。
【００５３】
クライアントＩＤ「♯０００１」のバックグラウンド処理の有無「有」は、クライアント装置「♯０００１」のバックグラウンド処理部３１に割当対象処理が割り当てられていることを示している。バックグラウンド処理の有無は、割当対象処理が割り当てられている場合の「有」と、割当対象処理が割り当てられていない場合の「無」がある。
【００５４】
優先ポイント「０」は、クライアント装置「♯０００１」の優先ポイントが「０」であることを示している。
次に、クライアント装置２２のハードウェア構成について図７を用いて説明する。図７は、第二実施形態のクライアント装置のハードウェアの構成を示す図である。
【００５５】
クライアント装置２２は、プロセッサ５１によって装置全体が制御されている。プロセッサ５１には、バス５９を介してＲＡＭ（Random Access Memory）５２と複数の周辺機器が接続されている。プロセッサ５１は、マルチプロセッサであってもよい。プロセッサ５１は、たとえばＣＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ５１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００５６】
ＲＡＭ５２は、クライアント装置２２の主記憶装置として使用される。ＲＡＭ５２には、プロセッサ５１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ５２には、プロセッサ５１による処理に必要な各種データが格納される。
【００５７】
バス５９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）５３、グラフィック処理装置５４、入力インタフェース５５、光学ドライブ装置５６、機器接続インタフェース５７およびネットワークインタフェース５８がある。
【００５８】
ＨＤＤ５３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。ＨＤＤ５３は、補助記憶装置として使用される。ＨＤＤ５３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００５９】
グラフィック処理装置５４には、モニタ６１が接続されている。グラフィック処理装置５４は、プロセッサ５１からの命令に従って、画像をモニタ６１の画面に表示させる。モニタ６１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００６０】
入力インタフェース５５には、キーボード６２とマウス６３とが接続されている。入力インタフェース５５は、キーボード６２、マウス６３から送られてくる信号をプロセッサ５１に送信する。なお、マウス６３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００６１】
光学ドライブ装置５６は、レーザ光などを利用して、光ディスク６４に記録されたデータの読み取りをおこなう。光ディスク６４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク６４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００６２】
機器接続インタフェース５７は、クライアント装置２２に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース５７には、メモリ装置６５やメモリリーダライタ６６を接続することができる。メモリ装置６５は、機器接続インタフェース５７との通信機能を搭載した記録媒体である。メモリリーダライタ６６は、メモリカード６７へのデータの書き込み、またはメモリカード６７からのデータの読み出しをおこなう装置である。メモリカード６７は、カード型の記録媒体である。
【００６３】
ネットワークインタフェース５８は、ネットワーク２１に接続されている。ネットワークインタフェース５８は、ネットワーク２１を介して、他のコンピュータ、ホストコンピュータまたは通信機器との間でデータの送受信をおこなう。
【００６４】
以上のようなハードウェア構成によって、第二実施形態の処理機能を実現することができる。
クライアント装置２２は、たとえば、読み取り可能な記録媒体に記録されたプログラムを実行することにより、第二実施形態の処理機能を実現する。クライアント装置２２に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、クライアント装置２２に実行させるプログラムをＨＤＤ５３に格納しておくことができる。プロセッサ５１は、ＨＤＤ５３内のプログラムの少なくとも一部をＲＡＭ５２にロードし、プログラムを実行する。また、クライアント装置２２に実行させるプログラムを、光ディスク６４、メモリ装置６５、メモリカード６７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ５１からの制御により、ＨＤＤ５３にインストールされた後、実行可能となる。また、プロセッサ５１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。なお、サーバ装置２３も同様の構成で処理機能を実現することができる。
【００６５】
次に、各々のクライアント装置２２が定期的に実行する稼働状況の取得について図８を用いて説明する。図８は、第二実施形態のクライアント装置の稼働状況の取得の流れを示すシーケンス図である。
【００６６】
［ＳＱ１１］ポーリング処理部３３は、クライアント稼働状況取得部３２に稼働状況の問い合せをおこなう。
［ＳＱ１２］クライアント稼働状況取得部３２は、ポーリング処理部３３からの問い合せを受け、稼働状況取得処理をおこなう。クライアント稼働状況取得部３２は、稼働状況取得処理で、クライアント装置２２の稼働状況を取得する。クライアント稼働状況取得部３２による稼働状況取得処理については、後で図９を用いて説明する。
【００６７】
［ＳＱ１３］クライアント稼働状況取得部３２は、クライアント装置２２の稼働状況データをポーリング処理部３３へ通知する。稼働状況データは、取得した稼働状況から生成されたデータである。稼働状況データについては、後で図１０を用いて説明する。
【００６８】
［ＳＱ１４］ポーリング処理部３３は、受信した稼働状況データを、ＡＰサーバ２４のクライアント稼働状況管理部４２に送信する。
次に、稼働状況取得処理について図９を用いて説明する。図９は、第二実施形態の稼働状況取得処理のフローチャートである。
【００６９】
稼働状況取得処理は、クライアント稼働状況取得部３２がＳＱ１２で実行する。
［ステップＳ１１］クライアント稼働状況取得部３２は、クライアント装置２２の稼働状況と、クライアント装置２２が所属する業務グループを取得する。
【００７０】
クライアント稼働状況取得部３２は、稼働状況としてフォアグラウンド処理部３０から実行中業務（担当する業務の処理）に関する情報を取得する。また、クライアント稼働状況取得部３２は、稼働状況としてクライアント装置２２からクライアントＩＤとＣＰＵとメモリとＩ／Ｏとログイン状況に関する情報を取得する。また、クライアント稼働状況取得部３２は、稼働状況としてバックグラウンド処理部３１からバックグラウンド処理の有無に関する情報を取得する。
【００７１】
また、クライアント稼働状況取得部３２は、あらかじめ設定されたクライアント装置２２が所属する業務グループを取得する。
［ステップＳ１２］クライアント稼働状況取得部３２は、クライアント装置２２のＣＰＵ負荷を判定する。たとえば、クライアント稼働状況取得部３２は、「単位時間当たりのＣＰＵ使用率の平均」が規定値以上である場合にクライアント装置２２のＣＰＵ負荷が高いと判定する。また、クライアント稼働状況取得部３２は、「実行可能キュー（ＣＰＵの使用権限待ち）／クライアント装置２２のＣＰＵ数」が規定値以上である場合にクライアント装置２２のＣＰＵ負荷が高いと判定する。
【００７２】
［ステップＳ１３］クライアント稼働状況取得部３２は、クライアント装置２２のメモリ負荷を判定する。たとえば、クライアント稼働状況取得部３２は、メモリのバッファの状態にもとづいてメモリ負荷を判定する。また、クライアント稼働状況取得部３２は、ＳＷＡＰ使用率にもとづいてメモリ負荷を判定する。
【００７３】
［ステップＳ１４］クライアント稼働状況取得部３２は、クライアント装置２２のディスク負荷を判定する。たとえば、クライアント稼働状況取得部３２は、「ＣＰＵ総時間当たりのＩ／Ｏ待ち時間の割合」が規定値以上である場合にディスク負荷が高いと判定する。
【００７４】
［ステップＳ１５］クライアント稼働状況取得部３２は、ＣＰＵ負荷判定とメモリ負荷判定とディスク負荷判定とにもとづいてクライアントの負荷状況を判定する。クライアント稼働状況取得部３２は、たとえば、ＣＰＵ負荷とメモリ負荷とディスク負荷のいずれか１つでも高負荷である場合に、クライアントの負荷が高負荷であると判定する。
【００７５】
［ステップＳ１６］クライアント稼働状況取得部３２は、取得した情報と判定した負荷状況にもとづいて稼働状況データを生成する。
ここで、稼働状況データについて図１０を用いて説明する。図１０は、第二実施形態の稼働状況データの一例を示す図である。
【００７６】
稼働状況データ８０は、各々のクライアント装置２２により稼働状況取得処理の際に生成される。稼働状況データ８０は、クライアント稼働状況取得部３２が取得したクライアント装置２２の稼働状況に関する情報で構成される。稼働状況データ８０は、クライアントＩＤと、業務グループとログイン状況と、実行中業務と、負荷状況と、バックグラウンド処理の有無の項目を含み構成されるが、これ以外の項目を設けてもよい。
【００７７】
たとえば、クライアントＩＤ「♯０００７」と特定することで、業務グループ「為替」、ログイン状況「ＩＮ」、実行中業務「印刷」、負荷状況「高」、バックグラウンド処理の有無「有」とクライアント装置２２の稼働状況を取得することができる。
【００７８】
次に、ＡＰサーバ２４で実行する割当対象処理の分散処理について図１１を用いて説明する。図１１は、第二実施形態のＡＰサーバの分散処理の流れを示すシーケンス図である。
【００７９】
［ＳＱ２１］ポーリング処理部３３が稼働状況データ８０を送信し、クライアント稼働状況管理部４２が稼働状況データ８０を受信する。
［ＳＱ２２］クライアント稼働状況管理部４２は、優先ポイント算出処理を実行する。クライアント稼働状況管理部４２は、優先ポイント算出処理において稼働状況データ８０の各項目を換算し、クライアント装置２２の優先ポイントを算出する。優先ポイント算出処理については、後で図１３を用いて説明する。
【００８０】
［ＳＱ２３］クライアント稼働状況管理部４２は、算出した優先ポイントと稼働状況データ８０とを併せてＤＢサーバ２５へ送信する。
［ＳＱ２４］ＤＢサーバ２５は、クライアント稼働状況ＤＢ４７の更新を実行する。ＤＢサーバ２５は、受信した情報にもとづいて、対応するクライアントＩＤのクライアント稼働状況ＤＢ４７の項目の更新を実行する。
【００８１】
［ＳＱ２５］ＤＢサーバ２５は、クライアント稼働状況ＤＢ４７の更新終了をクライアント稼働状況管理部４２に通知する。
このように分散処理システム２０は、ＳＱ２１からＳＱ２５で、クライアント装置２２の稼働状況を取得し、クライアント稼働状況ＤＢ４７を更新する。分散処理システム２０は、各々のクライアント装置２２についてＳＱ２１からＳＱ２５についておこなう。
【００８２】
［ＳＱ２６］クライアント稼働状況管理部４２は、各々のクライアント装置２２についてクライアント稼働状況ＤＢ４７の更新終了を確認した後に、処理先判定部４３に処理先の判定を依頼する。
【００８３】
［ＳＱ２７］処理先判定部４３は、ＤＢサーバ２５のクライアント稼働状況ＤＢ４７から各々のクライアント装置２２のクライアントＩＤと、優先ポイントのリストを取得する。
【００８４】
［ＳＱ２８］処理先判定部４３は、取得した各々のクライアント装置２２のクライアントＩＤと、優先ポイントとのリストにもとづいて処理要否判定を実行する。処理先判定部４３は、優先ポイントをあらかじめ設定した閾値と比較することで処理要否を判定する。処理先判定部４３は、たとえば、優先ポイント「１０」以上のクライアント装置２２を処理「要」と判定する。そして、処理先判定部４３は、優先ポイント「１０」未満のクライアント装置２２を処理「否」と判定し、該当するクライアントＩＤのクライアント装置２２をリストから除外する。
【００８５】
［ＳＱ２９］処理先判定部４３は、クライアント装置２２の割当順位を優先ポイントにもとづいて決定する。処理先判定部４３は、各々のクライアント装置２２のクライアントＩＤを優先ポイントが高い順にソートし、クライアント装置２２の割当順位を決定する。
【００８６】
ここで、割当順を決定したクライアント装置２２について図１２を用いて説明する。図１２は、第二実施形態のクライアント装置の割当順の一例を示す図である。
処理先クライアントリスト８１は、クライアント装置２２の割当順を示すリストである。たとえば、処理先判定部４３がクライアント稼働状況ＤＢ４９からクライアントＩＤと、優先ポイントとの項目のリストを取得し、処理要否「否」のクライアントＩＤの項目を除外し、優先ポイントを降順にソートすることで処理先クライアントリスト８１は作成される。
【００８７】
［ＳＱ３０］処理先判定部４３は、処理先クライアントリスト８１を割当対象処理選択部４４に送信し、クライアント装置２２への割当対象処理の割り当てを割当対象処理選択部４４に依頼する。
【００８８】
［ＳＱ３１］割当対象処理選択部４４は、ＤＢサーバ２５の割当対象処理ＤＢ４６から割当対象処理の情報を取得する。
［ＳＱ３２］割当対象処理選択部４４は、割当対象処理決定処理を実行する。割当対象処理選択部４４は、割当対象処理決定処理において、処理先クライアントリスト８１にあるクライアントＩＤのクライアント装置２２に割り当てる割当対象処理を決定する。割当対象処理決定処理については、後で図１９を用いて説明する。
【００８９】
［ＳＱ３３］割当対象処理選択部４４は、割当対象処理の送信をＤＢサーバ２５へ依頼する。
［ＳＱ３４］ＤＢサーバ２５は、割当対象処理の更新を実行する。ＤＢサーバ２５は、割当対象処理ＤＢ４６を更新する。ＤＢサーバ２５は、送信の依頼を受けた処理ＩＤの割当対象処理の処理時間の項目を「処理中」と更新する。
【００９０】
［ＳＱ３５］ＤＢサーバ２５は、割当対象処理選択部４４に割当対象処理を送信する。
［ＳＱ３６］割当対象処理選択部４４は、処理先のクライアント装置２２の情報と、処理先のクライアント装置２２に割り当てる割当対象処理とを併せて、処理先判定部４３に送信する。
【００９１】
［ＳＱ３７］処理先判定部４３は、処理先のクライアント装置２２の情報と、処理先のクライアント装置２２に割り当てる割当対象処理とを併せて、クライアント稼働状況管理部４２に送信する。
【００９２】
［ＳＱ３８］クライアント稼働状況管理部４２は、処理先のクライアント装置２２のポーリング処理部３３に処理先のクライアント装置２２に割り当てる割当対象処理を送信する。
【００９３】
次に、優先ポイント算出処理について図１３を用いて説明する。図１３は、第二実施形態の優先ポイント算出処理のフローチャートである。優先ポイント算出処理は、クライアント稼働状況管理部４２がＳＱ２２で実行する。
【００９４】
［ステップＳ２１］クライアント稼働状況管理部４２は、参照テーブルを取得する。参照テーブルについては、後で図１４、図１５、図１６、図１７、図１８を用いて説明する。
【００９５】
［ステップＳ２２］クライアント稼働状況管理部４２は、稼働状況データ８０の各項目について参照テーブルを参照することで、各項目を優先ポイントに換算する。
［ステップＳ２３］クライアント稼働状況管理部４２は、換算した各項目の優先ポイントにもとづいて、クライアント装置２２の優先ポイントを算出する。優先ポイントは、たとえば、「優先ポイント＝（業務グループ＋ログイン状況＋実行中業務＋負荷状況）×バックグラウンド処理の有無」の式を用いて算出する。
【００９６】
次に、参照テーブルについて説明する。業務グループテーブルについて図１４を用いて説明する。図１４は、第二実施形態の業務グループテーブルの一例を示す図である。
図１４は、業務グループテーブル８５である。業務グループテーブル８５は、業務グループと、時限性と、優先ポイントの項目を含み構成されているが、これ以外の項目を設けてもよい。
【００９７】
業務グループの項目は、クライアント装置２２が所属する業務グループの一覧が設定される。時限性の項目は、業務グループに設定された業務についての時限性の有無が設定される。優先ポイントの項目は、業務グループに設定された業務の特性に合わせて優先ポイントが設定される。
【００９８】
たとえば、分散処理システム２０は、フォアグラウンド処理部３０で実行する業務が為替業務のような時限性が有る（高い）業務である場合には、業務の速やかな実行が求められるため優先ポイントを低く設定する。
【００９９】
そして、分散処理システム２０は、フォアグラウンド処理部３０で実行する業務が総合給与振込のような時限性が無い（低い）業務である場合には、優先ポイントを高く設定する。
【０１００】
なお、分散処理システム２０は、時限性以外の要素にもとづいて優先ポイントを設定してもよい。また、優先ポイントは、日時によって変動するようにしてもよい。たとえば、過去の業務の閑散データを用いることで、分散処理システム２０は、振込が多い時期に総合給与振込の優先ポイントを低く設定し、振込が少ない時期に優先ポイントを高く設定するなど、業務の閑散に合わせた優先ポイントの設定も可能である。
【０１０１】
クライアント稼働状況管理部４２は、業務グループテーブル８５を参照することで、稼働状況データ８０の業務グループ「為替」を、時限性「有」、優先ポイント「５」と一意に換算することができる。
【０１０２】
次に、ログイン状況テーブルについて図１５を用いて説明する。図１５は、第二実施形態のログイン状況テーブルの一例を示す図である。
図１５は、ログイン状況テーブル９０である。ログイン状況テーブル９０は、ログイン状況と、優先ポイントの項目を含み構成されているが、これ以外の項目を設けてもよい。ログイン状況の項目は、クライアント装置２２のログイン状況が設定される。優先ポイントの項目は、ログイン状況に設定された状況に合わせて優先ポイントが設定される。
【０１０３】
たとえば、分散処理システム２０は、ログイン状況がＩＮである場合に、クライアント装置２２の使用者がいるため優先ポイントが低く設定される。そして、分散処理システム２０は、ログイン状況がＯＵＴである場合に、クライアント装置２２の使用者がおらず、クライアント装置２２に高い負荷がかかった場合でも業務に支障をきたさないため優先ポイントを高く設定する。
【０１０４】
クライアント稼働状況管理部４２は、ログイン状況テーブル９０を参照することで、稼働状況データ８０のログイン状況「ＩＮ」を、優先ポイント「０」と一意に換算することができる。
【０１０５】
次に、実行中業務テーブルについて図１６を用いて説明する。図１６は、第二実施形態の実行中業務テーブルの一例を示す図である。
図１６は、実行中業務テーブル９５である。実行中業務テーブル９５は、実行中業務と優先ポイントの項目を含み構成されているが、これ以外の項目を設けてもよい。
【０１０６】
実行中業務の項目は、クライアント装置２２が実行する業務に関する処理の一覧が設定される。優先ポイントの項目は、実行中業務に設定された処理内容に合わせて優先ポイントが設定される。
【０１０７】
たとえば、分散処理システム２０は、実行中の処理がない場合、または印刷などのクライアント装置２２に接続する外部機器の動作待ちであり、クライアント装置２２からの影響が小さい処理内容である場合に優先ポイントを高く設定する。
【０１０８】
クライアント稼働状況管理部４２は、実行中業務テーブル９５を参照することで、稼働状況データ８０の実行中業務「印刷」を、優先ポイント「５」と一意に換算することができる。
【０１０９】
次に、負荷状況テーブルについて図１７を用いて説明する。図１７は、第二実施形態の負荷状況テーブルの一例を示す図である。
図１７は、負荷状況テーブル１００である。負荷状況テーブル１００は、負荷状況と、優先ポイントの項目を含み構成されているが、これ以外の項目を設けてもよい。
【０１１０】
負荷状況の項目は、クライアント装置２２の負荷状況が設定される。優先ポイントの項目は、負荷状況に設定された状況に合わせて優先ポイントが設定される。
たとえば、分散処理システム２０は、クライアント装置２２の負荷状況が「高」である場合には、割り当てを受けることは好ましくないため優先ポイントを低く設定する。そして、分散処理システム２０は、クライアント装置２２の負荷状況が「低」である場合には、優先ポイントを高く設定する。
【０１１１】
クライアント稼働状況管理部４２は、負荷状況テーブル１００を参照することで、稼働状況データ８０の負荷状況「高」を、優先ポイント「０」と一意に換算することができる。
【０１１２】
次に、バックグラウンド処理の有無テーブルについて図１８を用いて説明する。図１８は、第二実施形態のバックグラウンド処理の有無テーブルの一例を示す図である。
図１８は、バックグラウンド処理の有無テーブル１０５である。バックグラウンド処理の有無テーブル１０５は、バックグラウンド処理の有無と、優先ポイント倍率の項目があるが、これ以外の項目を設けてよい。優先ポイント倍率は、算出したクライアント装置２２の優先ポイントにかける倍率である。
【０１１３】
バックグラウンド処理の有無の項目は、「有」と「無」が設定される。優先ポイント倍率の項目は、バックグラウンド処理の有無に設定された状況に合わせて倍率が設定される。
【０１１４】
たとえば、分散処理システム２０は、バックグラウンド処理が有る場合には、バックグラウンド処理部３１に新たな割当対象処理を割り当てることができないため、優先ポイント倍率を「０」と設定する。そして、分散処理システム２０は、バックグラウンド処理が無い場合には、バックグラウンド処理部３１に新たな割当対象処理を割り当てることができるため、優先ポイント倍率を「１」と設定する。
【０１１５】
クライアント稼働状況管理部４２は、バックグラウンド処理の有無テーブル１０５を参照することで、稼働状況データ８０のバックグラウンド処理の有無「有」を、優先ポイント倍率「０」と一意に換算することができる。
【０１１６】
以上が参照テーブルの一例である。なお、クライアント稼働状況管理部４２は、換算した各項目の値を「優先ポイント＝（業務グループ＋ログイン状況＋実行中業務＋負荷状況）×バックグラウンド処理の有無」に代入することで稼働状況データ８０の優先ポイントを「０」と算出できる。
【０１１７】
このように、取得した稼働状況の各項目を換算し、優先ポイントを算出することで、クライアント装置２２について負荷状況以外のクライアント装置２２の稼働状況（たとえば、ログイン状況）を考慮して優先ポイントを算出することができる。また、業務グループの項目を換算することで、業務の特性を考慮して優先ポイントを算出することができる。
【０１１８】
従って、分散処理システム２０は、算出した優先ポイントを用いてクライアント装置２２の割当順位を決めることで、クライアント装置２２が担当する業務の効率的な実行を保つようにクライアント装置２２の割当順位を決定することができる。
【０１１９】
次に、割当対象処理決定処理について図１９を用いて説明する。図１９は、第二実施形態の割当対象処理決定処理のフローチャートである。割当対象処理決定処理は、割当対象処理選択部４４がＳＱ３１で実行する。
【０１２０】
［ステップＳ３１］割当対象処理選択部４４は、ＤＢサーバ２５の割当対象処理ＤＢ４６から割当対象処理のリストを取得する。
［ステップＳ３２］割当対象処理選択部４４は、取得した割当対象処理の業務種別の時限性でソートする。割当対象処理選択部４４は、業務種別テーブルを用いて割当対象処理の時限性を特定し、割当対象処理を時限性の有無にもとづいてソートする。
【０１２１】
ここで業務種別テーブルについて図２０を用いて説明する。図２０は、第二実施形態の業務種別テーブルの一例を示す図である。
業務種別テーブル１１０は、業務種別毎の時限性を示すテーブルである。業務種別テーブルは、業務種別と時限性の項目を含み構成されているが、これ以外の項目を設けてもよい。業務種別の項目には、割当対象処理の業務の一覧が設定される。時限性の項目には、業務種別に設定された業務に合わせて時限性が設定される。たとえば、割当対象処理の業務種別を「為替」と特定すると、割当対象処理は時限性があることがわかる。
【０１２２】
［ステップＳ３３］割当対象処理選択部４４は、割当対象処理を時限性毎にサイズの降順でソートする。
［ステップＳ３４］割当対象処理選択部４４は、処理中の割当対象処理を除外する。割当対象処理選択部４４は、処理時間の項目に処理中と設定されている割当対象処理を除外する。割当対象処理選択部４４は、処理中の割当対象処理を除外することで重複した処理を防ぐ。
【０１２３】
［ステップＳ３５］割当対象処理選択部４４は、前回の処理時間が所定時間以上の割当対象処理を除外する。割当対象処理選択部４４は、処理時間が所定時間（たとえば、１０分）以上の割当対象処理を、タイムアウトやダンマリが発生して中断した処理であると判定し、割当対象から除外する。このように割当対象処理選択部４４が所定時間以上の割当対象処理を除外することで、分散処理システム２０は、障害事象（タイムアウトやダンマリ）の伝播を防止することができる。
【０１２４】
［ステップＳ３６］割当対象処理選択部４４は、割当対象処理の割当順を決定する。ここで割当順を決定した割当対象処理について図２１を用いて説明する。図２１は、第二実施形態の割当対象処理の割当順の一例を示す図である。
【０１２５】
割当対象処理リスト１３０は、割当対象処理ＤＢ４８をソートし、処理時間が「処理中」および、「１０分」である割当対象処理を除外したものである。割当対象処理リスト１３０は、割当対象処理ＤＢ４８が業務種別の時限性の有無でソートされ、それぞれの時限性においてさらにサイズでソートされたものである。すなわち割当対象処理リスト１３０は、時限性「有」かつサイズ「大」、時限性「有」かつサイズ「小」、時限性「無」かつサイズ「大」、時限性「無」かつサイズ「小」の順に割当対象処理が割当順として並んでいる。
【０１２６】
［ステップＳ３７］割当対象処理選択部４４は、クライアント装置２２に割り当てる割当対象処理を決定する。割当対象処理選択部４４は、処理先クライアントリスト８１と割当対象処理リスト１３０にもとづいてクライアント装置２２に、割当対象処理を割り当てる。
【０１２７】
具体的には割当対象処理選択部４４は、クライアントＩＤ「♯０００４」に処理ＩＤ「♯００６」を割り当て、クライアントＩＤ「♯０００５」に処理ＩＤ「♯００１」を割り当て、クライアントＩＤ「♯０００２」に処理ＩＤ「♯００５」を割り当てる。
【０１２８】
このようにＡＰサーバ２４が、優先ポイントの高いクライアント装置２２に、時限性が有りかつサイズが大きい割当対象処理から割り当てることで、分散処理システム２０は、割当対象処理が要求する時限性を守りつつ、全体で効率的に割当対象処理を実行できる。
【０１２９】
次に、クライアント装置２２で実行する割当対象処理について図２２を用いて説明する。図２２は、第二実施形態の割当対象処理の実行の流れを示すシーケンス図である。
［ＳＱ４１］クライアント稼働状況管理部４２は、ポーリング処理部３３に割当対象処理を送信する。
【０１３０】
［ＳＱ４２］ポーリング処理部３３は、受信した割当対象処理をバックグラウンド処理部３１に送信し、ＳＱ４６へすすむ。
［ＳＱ４３］また、ポーリング処理部３３は、処理時間測定部３４に割当対象処理の実行開始を通知する。
【０１３１】
［ＳＱ４４］処理時間測定部３４は、割当対象処理の処理時間の測定を開始する。
［ＳＱ４５］処理時間測定部３４は、ポーリング処理部３３に処理時間の測定を開始したことを通知する。
【０１３２】
［ＳＱ４６］バックグラウンド処理部３１は、割当対象処理を実行開始する。
［ＳＱ４７］バックグラウンド処理部３１は、割当対象処理が終了またはプロセスの再起動等で割当対象処理を中断したことと、割当対象処理の処理結果とを併せてポーリング処理部３３へ通知する。
【０１３３】
［ＳＱ４８］ポーリング処理部３３は、処理時間測定部３４に割当対象処理の終了を通知する。
［ＳＱ４９］処理時間測定部３４は、割当対象処理の処理時間の測定を終了する。
【０１３４】
［ＳＱ５０］処理時間測定部３４は、割当対象処理に要した処理時間を算出する。
［ＳＱ５１］処理時間測定部３４は、算出した処理時間をポーリング処理部３３に通知する。
【０１３５】
［ＳＱ５２］ポーリング処理部３３は、割当対象処理の処理結果と、処理時間をＡＰサーバ２４の処理結果格納部４５に送信する。
［ＳＱ５３］処理結果格納部４５は、ＤＢサーバ２５に割当対象処理の処理結果と、処理時間を通知する。
【０１３６】
［ＳＱ５４］ＤＢサーバ２５は、割当対象処理ＤＢ４６の更新を実行する。ＤＢサーバ２５は、割当対象処理が終了している場合には、割当対象処理ＤＢ４６から当該割当対象処理を除外する。またＤＢサーバ２５は、割当対象処理が中断している場合には、当該割当対象処理の処理時間の項目に、受信した処理時間を設定する。
【０１３７】
［ＳＱ５５］ＤＢサーバ２５は、処理結果格納部４５に処理結果格納の終了を通知する。
［ＳＱ５６］処理結果格納部４５は、ポーリング処理部３３に処理結果格納の終了を通知する。
【０１３８】
以上が第二実施形態の分散処理システム２０である。
このような分散処理システム２０によれば、クライアント稼働状況管理部４２が、第一実施形態の、資源情報取得部４と割当部８の機能を実現する。また、処理先判定部４３が、第一実施形態のクライアント装置割当順位決定部５の機能を実現する。また、割当対象処理選択部４４が、第一実施形態の、割当要求取得部３と第二処理割当順位決定部６と割当決定部７の機能を実現する。
【０１３９】
このような分散処理システム２０によれば、ＡＰサーバ２４は、クライアント装置２２で担当する業務の特性を考慮してクライアント装置２２の割当対象処理を割当可能な資源に関する情報を優先ポイントとして算出することができる。
【０１４０】
そして、ＡＰサーバ２４は、優先ポイントの高さにもとづいて、クライアント装置２２の割当順を決定する。
また、ＡＰサーバ２４は、割当対象処理の時限性の有無でソートし、さらに時限性の有無毎にサイズの大きさの降順でソートし、割当対象処理の割当順を決定する。
【０１４１】
つまり、ＡＰサーバ２４は、時限性が有りかつサイズが大きい割当対象処理、時限性が有りかつサイズが小さい割当対象処理、時限性が無くかつサイズが大きい割当対象処理、時限性が無くかつサイズが小さい割当対象処理の順に割当順を決定する。
【０１４２】
従って、クライアント装置２２の割当順と割当対象処理の割当順にもとづいて割り当てることで、分散処理システム２０は、割当可能な資源が多いクライアント装置２２に優先して時限性が有る割当対象処理を割り当てることができる。また、分散処理システム２０は、割当可能な資源が多いクライアント装置２２に優先してサイズ（処理量）が大きい割当対象処理を割り当てることができる。
【０１４３】
分散処理システムは、このように割当対象処理を割り当てることで、割当対象処理が要求する時限性を満たしつつ、全体で効率的に割当対象処理を実行できる。
このようにして分散処理システム２０は、クライアント装置２２が担当する業務の効率的な実行と、サーバ装置２３がクライアント装置２２に割り当てる割当対象処理の効率的な実行とを両立するように、割当対象処理を割り当てることができる。
【０１４４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、サーバ装置１、分散処理システム２０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（可搬型記録媒体を含む）に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）などがある。
【０１４５】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４６】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４７】
なお、上述の実施の形態は、実施の形態の要旨を逸脱しない範囲内において種々の変更を加えることができる。
さらに、上述の実施の形態は、多数の変形、変更が当業者にとって可能であり、説明した正確な構成および応用例に限定されるものではない。
【符号の説明】
【０１４８】
１  サーバ装置
２  クライアント装置
２ａ  第一処理
２ｂ  第二処理
３  割当要求取得部
４  資源情報取得部
４ａ  資源情報
５  クライアント装置割当順位決定部
６  第二処理割当順位決定部
７  割当決定部
８  割当部
【図１】
2014074998.tif 000003
【図２】
2014074998.tif 000004
【図３】
2014074998.tif 000005
【図４】
2014074998.tif 000006
【図５】
2014074998.tif 000007
【図６】
2014074998.tif 000008
【図７】
2014074998.tif 000009
【図８】
2014074998.tif 000010
【図９】
2014074998.tif 000011
【図１０】
2014074998.tif 000012
【図１１】
2014074998.tif 000013
【図１２】
2014074998.tif 000014
【図１３】
2014074998.tif 000015
【図１４】
2014074998.tif 000016
【図１５】
2014074998.tif 000017
【図１６】
2014074998.tif 000018
【図１７】
2014074998.tif 000019
【図１８】
2014074998.tif 000020
【図１９】
2014074998.tif 000021
【図２０】
2014074998.tif 000022
【図２１】
2014074998.tif 000023
【図２２】
2014074998.tif 000024