JP2014149690A - 情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラム - Google Patents
情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラム Download PDFInfo
- Publication number
- JP2014149690A JP2014149690A JP2013018219A JP2013018219A JP2014149690A JP 2014149690 A JP2014149690 A JP 2014149690A JP 2013018219 A JP2013018219 A JP 2013018219A JP 2013018219 A JP2013018219 A JP 2013018219A JP 2014149690 A JP2014149690 A JP 2014149690A
- Authority
- JP
- Japan
- Prior art keywords
- task
- scale
- job
- job processing
- server
- 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.)
- Pending
Links
Images
Abstract
【課題】ジョブの実行状況とスケーリングの効果に基づいて、スケーリング条件を定義することなしに自動スケーリングを実現する情報処理装置を提供すること。
【解決手段】情報処理システムが備える監視装置109は、複数のジョブ処理装置103、104の動作状況を監視し、特定のジョブ処理装置103、104が規定数を超えるジョブを処理していることに応じて、いずれか一つのジョブ処理装置103、104のタスクを増加させるように指示し、スケールアウト指示に基づきタスクを増加させてジョブを処理するジョブ処理装置103、104を規定時間の間監視し、タスクを増加させた前記ジョブ処理装置103、104においてスループットが向上されているか否かを確認し、前記スループットが向上されていないと確認された場合、増加された前記タスクを削減するように指示する。
【選択図】図1
【解決手段】情報処理システムが備える監視装置109は、複数のジョブ処理装置103、104の動作状況を監視し、特定のジョブ処理装置103、104が規定数を超えるジョブを処理していることに応じて、いずれか一つのジョブ処理装置103、104のタスクを増加させるように指示し、スケールアウト指示に基づきタスクを増加させてジョブを処理するジョブ処理装置103、104を規定時間の間監視し、タスクを増加させた前記ジョブ処理装置103、104においてスループットが向上されているか否かを確認し、前記スループットが向上されていないと確認された場合、増加された前記タスクを削減するように指示する。
【選択図】図1
Description
本発明は、情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラムに関する。
サーバコンピュータ側で各種処理を行う形態として、クラウドコンピューティングシステムやSaaS(Software as a Service)という技術が利用され始めている。クラウドコンピューティングでは、多くのコンピューティング・リソースを利用し、データ変換やデータ処理を分散実行することで、多くのクライアントからの要求を同時に処理することが可能となる。また、クラウドコンピューティングの特徴を活用するため、下記のような方式でクライアントからの要求を実行する技術が存在する。
まず、サーバでの一連の処理であるジョブを細かく規定されたタスクの連結として定義する。次に、それらを複数のサーバ、複数のプロセスによって同時並行で処理する。それによって、多数のジョブをスケーラブルに処理することができる。上記のタスクは、複数のサーバが、キューイングされたクライアントの要求を非同期で取得して実行している。この構成は、コンピュータリソースのスケーラビリティ向上や、クライアントからの要求のピーク時にシステムダウンを防ぐ効果をもたらす。本明細書ではこのようなシステムをクラウドシステムと称する。
クラウドシステムにおいて、タスクを起動、停止することにより、クラウドシステムとしてのスループットを拡大、縮小することができる。スループットの拡大のためにタスクを起動させることをスケールアウト、スループットの縮小のためにタスクを停止させることをスケールインと呼ぶ。スケールアウトすることによって、スループットが拡大し、より多くのクライアントからの要求を処理することができる。また、スケールインすることで、スループットは減少するもの、サーバリソースを運用するためのコストを削減することができる。以下では、スケールアウト、スケールインをまとめてスケーリングと呼ぶ。
スケーリングは管理装置等を介してクライアントが手動で実施することができるが、クライアントからの要求に対してより適した細やかなスケーリングを実施するために、自動的にスケーリングを実行できることが求められる。また、自動的にスケーリングを行うためには、その判断基準となるスケーリング条件が必要になる。例えば、特許文献1は、ジョブを処理するジョブ処理装置を監視する監視装置から計測値を取得し、当該計測値と予め定義されたスケーリング条件に基づいてスケーリングを実行する情報処理システムを開示する。
上述の自動スケーリング技術では、スケーリング条件をあらかじめ厳密に定義する必要がある。しかしながら、ジョブの実行に必要なリソースは、実行するジョブの内容や、サーバのリソース消費状況によって変化するため、スケーリング条件を厳密に定義するのは難しいという課題がある。スケーリング条件を誤って設定してしまった場合には、効果のないスケーリング、逆効果となるスケーリングを実施してしまう可能性もある。そこで、本発明は、ジョブの実行状況とスケーリングの効果に基づいて、スケーリング条件を定義することなしに自動スケーリングを実現する情報処理装置を提供することを目的とする。
本発明の一実施形態の情報処理システムは、ユーザ装置からジョブ処理要求を受付ける管理装置と、前記管理装置にジョブを問合せ、前記問合せに応じて取得したジョブを処理する複数のジョブ処理装置と、監視装置とを備える。前記監視装置は、前記情報処理システム上で動作する前記複数のジョブ処理装置の動作状況を監視する監視手段と、前記監視手段により、特定のジョブ処理装置が規定数を超えるジョブを処理していることが監視されたことに応じて、前記複数のジョブ処理装置のうちいずれか一つのジョブ処理装置のタスクを増加させるスケールアウトを指示するスケールアウト指示手段と、前記スケールアウト指示手段による指示に基づきタスクを増加させてジョブを処理する前記ジョブ処理装置を規定時間の間監視し、タスクを増加させた前記ジョブ処理装置においてスループットが向上されているか否かを確認する確認手段と、前記確認手段による確認の結果、前記スループットが向上されていないと確認された場合、増加された前記タスクを削減するスケールインを指示するスケールイン指示手段と、を有する。
本発明の情報処理システムによれば、ジョブの実行状況とスケーリングの効果に基づいて、スケーリング条件を定義することなしに自動スケーリングを実現することが可能となる。
(実施例1)
図1は、本実施形態の情報処理システムの全体構成を示す図である。本実施形態の情報処理システムは、クラウドシステムであって、クライアント端末106のユーザに画像処理サービスを提供する。
図1は、本実施形態の情報処理システムの全体構成を示す図である。本実施形態の情報処理システムは、クラウドシステムであって、クライアント端末106のユーザに画像処理サービスを提供する。
図1中の情報処理システムは、スキャンサービスサーバ群101、フローサービスサーバ群102、タスクサーバ103、104、クライアント端末106、画像形成装置107、クラウドサービスサーバ108、スケーリングサーバ109を備える。図1に示す例では、タスクサーバは2台であるが、情報処理システムが備えるタスクサーバの数は、2台に限定されない。情報処理システムは、複数の任意数のタスクサーバを備えることができる。
スキャンサービスサーバ群101乃至タスクサーバ104は、ネットワーク110を介して通信可能に接続されている。クライアント端末106および画像形成装置107と、スキャンサービスサーバ群101乃至タスクサーバ104とは、ネットワーク111およびネットワーク110を介して通信可能に接続されている。また、クラウドサービスサーバ群108とスキャンサービスサーバ群101乃至タスクサーバ104とは、ネットワーク112およびネットワーク110を介して通信可能に接続されている。スケーリングサーバ109と、スキャンサービスサーバ群101乃至タスクサーバ104とは、ネットワーク110を介して通信可能に接続されている。
タスクサーバ、クライアント端末106、画像形成装置107、クラウドサービスサーバ群108は、複数台設けられている。ネットワーク110乃至112は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等である。LANは、Local Area Networkの略称である。WANは、Wide Area Networkの略称である。ATMは、Asynchronous Transfer Modeの略称である。
ネットワーク110乃至112が、上述したLAN乃至データ放送用無線回線の組み合わせにより実現される通信ネットワークであってもよい。すなわち、ネットワーク110乃至112は、データの送受信が可能であればよい。この例では、本実施形態の情報処理システムは、クラウドシステムであるので、ネットワーク110、112は、インターネット、ネットワーク111は、企業内ネットワークやサービスプロバイダーのネットワークである。
スキャンサービスサーバ群101、フローサービスサーバ群102、タスクサーバ103、104は、複数のサーバコンピュータ群を有する。これらサーバコンピュータ群がクラウドサービスサーバ群を構成しており、ユーザに対してクラウドサービスを提供する。
この例では、クライアント端末106のユーザからの要求に応じて、画像形成装置107がスキャン実行を行って画像データを生成し、生成した画像データをスキャンサービスサーバ群101に投入する。スキャンサービスサーバ群101は、当該画像データに対応するジョブをフローサービスサーバ群102に投入するジョブ投入部として機能する。この例では、ジョブは、複数のタスクから構成される。例えば、ユーザからの要求に従い発行されるジョブがスキャンジョブであった場合、スキャン画像に対し画像処理を行う工程と、画像処理が施されたスキャン画像を保存する工程とが実行されるケースが考えられる。本願発明は、夫々の工程をタスクという単位で区切ることで、1つのジョブを複数のタスクで構成する。この形態のメリットは、複数のタスクを組み合わせることで、多様なジョブ処理を行うことができるという点である。フローサービスサーバ群102は、投入されたジョブを管理する。すなわちフローサービスサーバ群102は、ジョブ処理要求を受付ける管管理装置として機能する。
タスクサーバ103、104は、フローサービスサーバ群102にジョブを問合せ、問合せに応じて取得したジョブを処理する。このとき、タスクサーバ103、104は、フローサービスサーバ群102が管理するジョブに含まれるタスクを非同期で取得要求する。フローサービスサーバ群102は、管理しているジョブに含まれる複数のタスクのうち、取得要求元のタスクサーバに対応するタスクであって、処理待ち状態のタスクを、取得要求元のタスクサーバに渡す。タスクを受け取ったタスクサーバ103は、特定のジョブ処理を施す。タスクサーバ103は、例えば、処理対象の画像データに対して画像処理を行ったり、ファイル共有機能を提供する他のクラウドサービスサーバ群に対して、画像データを送信する処理を行う。
なお、スキャンサービスサーバ群101乃至タスクサーバ104で構成されるクラウドサービスサーバ群とは異なる他のクラウドサービスサーバ群108がインターネット上に公開されており、これらも複数のサーバコンピュータ上にて実行されている。
クライアント端末106は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、PDA(パーソナルデータシスタント)等である。クライアント端末106が、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末106では、Webブラウザ(インターネットブラウザ、WWWブラウザ、WorldWideWebの利用に供するブラウザ)等のプログラムを実行する環境が内蔵されている。
本実施形態の制御方法は、図1に示す情報処理システムの制御方法である。また、本実施形態のコンピュータプログラムは、この制御方法をコンピュータに実行させる。
図2は、クライアント端末、スキャンサービスサーバ群、フローサービスサーバ群、タスクサーバを実現するサーバコンピュータのハードウェア構成図の例である。クライアント端末106、サーバコンピュータは、CPU202、RAM203、ROM204、HDD205を備える。CPUは、Central Processing Unitの略称である。RAMは、Random Access Memoryの略称である。ROMは、Read Only Memoryの略称である。HDDは、Hard Disk Driveの略称である。また、クライアント端末106、サーバコンピュータは、NIC209、キーボード207、ディスプレイ206、インタフェース208を備える。NICは、Network Interface Cardの略称である。
CPU202は、装置全体の制御を行う。CPU202は、HDD205に格納されているアプリケーションプログラム、OS等を実行し、RAM203にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。OSは、Operating Sustemの略称である。ROM204は、記憶手段であり、内部には、基本I/Oプログラム等の各種データを記憶する。RAM203は、一時記憶手段であり、CPU202の主メモリ、ワークエリア等として機能する。HDD205は、外部記憶手段の一つであり、大容量メモリとして機能し、Webブラウザ等のアプリケーションプログラム、サービス群のプログラム、OS、関連プログラム等を格納している。
ディスプレイ206は、表示手段であり、キーボード207から入力したコマンド等を表示したりする。インタフェース208は、外部装置I/Fであり、プリンタ、USB機器、周辺機器を接続する。キーボード207は指示入力手段である。システムバス201は、装置内におけるデータの流れを司る。CPU202乃至インタフェース208は、システムバス201に接続されている。インタフェースNIC209は、インタフェース208およびネットワーク110乃至112を介して、外部装置とのデータのやり取りを行う。なお、図2中に示す装置構成は一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM204、RAM203、HDD205のうちのいずれであってもよい。
図3は、クライアント端末を示す図である。図3は、クライアント端末106の構成例を示す。クライアント端末106は、Webブラウザ301を備える。Webブラウザ301は、スキャンサービスサーバ群101(図1)が提供するWebアプリケーションへのリクエストの送信と、レスポンスの表示等を行う。クラウドサービスを利用するユーザは、クライアント端末106のWebブラウザ301を利用して、クラウドサービスを利用する。
図4は、画像形成装置107の構成例を示す。この例では、画像形成装置107は、スキャン機能とプリント機能を併せ持つ装置である。なお、スキャンサービスを実現するためには、画像形成装置107が、プリント機能のない、スキャン専用装置であってもよい。
画像形成装置107は、画像処理ユニット401、印刷ユニット402、読み込みユニット403を備える。画像処理ユニット401は、画像処理を実行する。画像処理ユニット401は、例えば、印刷設定に応じたプリントデータを生成する。印刷ユニット402は、画像処理ユニット401によって生成されたプリントデータを媒体(例えば、紙媒体)に印刷出力する。読み込みユニット402は、例えば、不図示のスキャン装置を用いて、画像データを読み込む。
画像処理ユニット401は、CPU404、直接記憶部405、間接記憶部406、ユーザインタフェース407、外部インタフェース408を備える。CPU404は、所定のプログラムを実行し、画像形成装置107の各種制御を指示する。CPU404は、Central Processing Unitの略称である。直接記憶部405は、CPU404がプログラムを実行する際に使用するワークメモリである。CPU404が実行するプログラムは、直接記憶部405にロードされる。なお、CPU404は、マルチプロセッサでもよい。
直接記憶部405は、RAMにより実現される。間接記憶部406には、アプリケーションプログラムおよびプラットフォームプログラムを含む各種プログラムが記憶されている。CPU404が、間接記憶部406に記憶されている各種プログラムの実行時に、この各種プログラムを直接記憶部405へ移動する。間接記憶部406は、SSD(Solid State Drive)、または、HDD(Hard Disc Drive) により実現される。
この例では、ユーザが独自に開発した新しいアプリケーションを画像形成装置107上で実行できるプラットフォームを実現するプラットフォームプログラムが、間接記憶部406に記憶されている。プラットフォームによれば、画像形成装置107の操作画面をカスタマイズすることも可能になる。
以下に、プラットフォームの実現方法について説明する。CPU404は、間接記憶部406に記憶されたプラットフォームプログラムを直接記憶部405に移動する。移動が完了するとCPU404は、プラットフォームプログラム(例えば、Java(登録商標))を実行することができる状態になる。この例では、CPU404が、プラットフォームプログラムを実行することを、プラットフォームが起動すると称する。なお、プラットフォームは、画像形成装置107のファームウェア上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供する。
次に、プラットフォーム上でアプリケーションプログラムを実行する方法について詳細に説明する。この例では、プラットフォーム上には、スキャンした画像をクラウドサービスに送信するスキャンソフトウェアが動作している。スキャンソフトウェアは、ネットワークを介して接続されているスキャンサービスサーバ群101より、例えば、HTTP(Hyper Text Transfer Protocol)などの通信プロトコルによってスキャンチケットの一覧の受信を行う。スキャンチケットにはスキャンの為の設定や、その後の処理フローといった情報が記録されている。以降、スキャンソフトウェアを実行することで実現するソフトウェア部をスキャンソフトウェア部と呼ぶ。
ユーザは、スキャンソフトウェア部にて表示されたスキャンチケット一覧からスキャンチケットを選択し、原稿を読み込ませることでスキャンを完了できる。スキャンソフトウェア部は、ユーザが選択したスキャンチケットの情報とスキャンした画像データを合わせてスキャンサービスサーバ群101に送信する。このように、プラットフォームでアプリケーションプログラムを実行することによって、画像形成装置107の制御を実現することができる。
次に、アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部406に記憶されたアプリケーションプログラムを直接記憶部405に移動する。移動が完了すると、プラットフォームは、アプリケーションプログラムを実行することができる状態になる。そして、プラットフォームは、アプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、この例ではプラットフォームアプリケーションと呼ぶ。さらに、プラットフォームは、本実施形態で開示するフローチャートの各処理の一部を行うことが可能である。
ユーザインタフェース407は、ユーザからの処理依頼を受け付ける。ユーザインタフェース407は、例えば、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。外部インタフェース408は、外部装置からのデータ受信や外部装置へのデータ送信が可能である。上記外部装置は、例えば、外付けHDDや外付けUSBメモリ等の外付け記憶装置、またはネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置である。画像形成装置107は、ネットワーク110、111を介して、クライアント端末106、スキャンサービスサーバ群101と通信可能である。
次に、クラウドサービスを提供するスキャンサービスサーバ群101、タスクサーバ103、104の各サービスサーバ群に関して説明する。さらには、各サービスサーバ群の説明とともに、スキャン処理の流れを合わせて説明する。
図5は、スキャンサービスサーバ群の構成例を示す図である。スキャンサービスサーバ群101はクラウドサービスにおけるスキャン機能の提供を行うサービスサーバ群である。
スキャンサービスサーバ群101は、Webアプリケーション部501、チケット管理DB502、テンプレート管理DB503を備える。これら構成要素により各種処理が実行されることでスキャンサービスサーバ群101がユーザに提供される。
Webアプリケーション部501は、スキャン機能を提供するアプリケーションプログラムを提供する。Webアプリケーション部501は、チケット作成部511、チケット一覧部512、スキャン受信部513、外部I/F514、チケット管理部515、テンプレート管理部516を備える。チケット作成部511は、ユーザがスキャンチケットを作成するための一連の機能を実現する。スキャンチケットは、画像形成装置107で原稿をスキャンする際の設定や、その後の処理フローの定義、各処理フローで実施されるタスクの為のパラメータ等を含む定義情報である。
以下に、スキャンチケットの作成処理について説明する。クライアント端末106のWebブラウザ301が、ユーザ操作にしたがって、チケット作成画面リクエスト(この例では、スキャンチケット作成画面リクエスト)をスキャンサービスサーバ群101に対して行う。チケット作成部511が、チケット作成画面リクエストにしたがって、チケット作成画面(この例では、スキャンチケット作成画面)をクライアント端末106に提供する。クライアント端末106のWebブラウザ301が、スキャンチケット作成画面を表示する。
図6は、スキャンチケット作成画面の例を示す図である。スキャンチケット作成画面601には、テンプレート602乃至604が表示される。テンプレートは、画像処理(例えばスキャン処理)の設定を行うための定義情報である。例えば、テンプレート602は、スキャンして得られる画像データをクラウドサービスサーバ108に送信する処理を定義している。テンプレート管理部516が、テンプレート管理DB503内に記憶されているテンプレートを管理している。
チケット作成部511は、テンプレートをテンプレート管理DB503から取得し、取得したテンプレートを含むスキャンチケット作成画面をWebブラウザ301に対して提供する。
ユーザが、スキャンチケット作成画面601上に表示されたテンプレートの中から、実行するテンプレートを選択すると、Webブラウザ301が、詳細設定画面605を表示する。詳細設定画面605は、詳細なチケット設定を行うための画面である。
図6に示す例では、同一画面内にテンプレートと詳細設定画面605とが表示されているが、Webブラウザ301が、詳細設定画面605を、テンプレートが表示されている画面とは異なる画面(別ウィンドウ)で開くようにしてもよい。ユーザは、詳細設定画面605上で、選択したテンプレートに応じたスキャンの設定を行うことができる。例えば、スキャン設定の例としては、図6中に示すように、サイズや、カラー、白黒といった色調、またスキャンデータのフォーマット等の設定がある。ユーザが、詳細な設定を行った後、チケット発行ボタン606を押下すると、Webブラウザ301からスキャンサービスサーバ群101に対して、スキャンチケット作成リクエストが発行される。スキャンチケット作成リクエストは、スキャンチケットの作成を求める要求であり、スキャンチケット作成画面上で行われたチケット設定の情報を含む。
チケット作成部511は、スキャンチケット作成リクエストに含まれるチケット設定の情報に基づいて、スキャンチケットを作成し、チケット管理部515に指示してスキャンチケットに関する情報(チケット情報)を保存させる。チケット管理部515は、チケット作成部511からの指示にしたがって、チケット管理DB502にチケット情報を保存する。
外部I/F514は、画像形成装置107上で動作するスキャンソフトウェア部との通信を行う。具体的には、外部I/F514は、スキャンソフトウェア部から、チケット一覧部512の機能や、スキャン受信部513の機能へのアクセスを受け付ける。チケット一覧部512は、画像形成装置107からの要求にしたがい、チケット管理部515に保存されているチケット情報に基づいて、チケットの一覧を生成して画像形成装置107に返す。画像形成装置107は、取得したチケット一覧をチケット一覧画面上に表示する。
図7は、チケット一覧画面の一例を示す図である。この例では、チケット一覧画面407上には、チケット901乃至906(この例ではスキャンチケット)が表示される。ユーザが、チケット一覧画面407上に表示されたスキャンチケットのいずれかを選択し、画像形成装置107に備え付けられたスキャン装置に紙を設置し、スキャンボタン907を押し下げすると、スキャン実行される。そして、画像形成装置107が、チケット一覧画面上で選択されたスキャンチケットと、スキャン実行により得られた画像データとをスキャンサービスサーバ群101に対して送信する。
スキャンサービスサーバ群101が備えるスキャン受信部513は、画像形成装置107からスキャンチケットと画像データとを受信する。そして、スキャン受信部513は、受信した画像データをフローサービスサーバ群102に投入する。
図8は、チケット管理DBとテンプレート管理DBの一例を示す図である。図8(A)は、チケット管理DB502の一例を示す。チケット管理DB502が保存しているチケットの情報は、ユーザID701、チケットID702、ルートID703、パラメータ704といったデータ項目を有する。ユーザID701は、チケットを作成したユーザを一意に識別する識別情報である。具体的には、ユーザID701は、スキャンサービスサーバ群101が管理しているIDであり、スキャンサービスサーバ群101を利用する際に発行されるものである。チケットID702は、チケットを一意に識別する識別情報である。チケットID702は、図6に示すスキャンチケット作成画面上でチケット発行606が押下げられたときにチケット作成部511によって生成され、チケット管理DB502に保存される。
ルートID703は、ルート情報を一意に識別する識別情報である。ルート情報は、スキャンチケット作成画面601上で選択されたテンプレートに対応する処理(例えばスキャン処理)を示す情報である。具体的には、ルート情報は、テンプレートに対応する処理を実現するジョブに含まれる各々のタスクを連結させたルートの情報であって、そのジョブにおけるタスクの処理順序を示す処理順情報を含む。すなわち、ルート情報は、タスクの連結をルートという単位で定義するための情報である。
ユーザが、テンプレートを選択し、スキャンを実行した場合には、スキャンデータは、ルートID703に対応付けて定義されたタスクの順番で処理される。パラメータ704は、図5中に示す詳細設定画面605上で設定されたスキャンの設定情報である。
図8(B)は、テンプレート管理DBの一例を示す図である。テンプレート管理DB503には、テンプレート情報が設定されている。テンプレート情報は、図12を参照して後述するルート情報管理DB1301で管理されるルート情報と、チケット作成画面上に表示されるテンプレートとを紐づける情報である。テンプレート情報は、テンプレートID801、テンプレート名802、ルートID803といったデータ項目を有する。
テンプレートID801は、テンプレートを一意に識別する識別情報である。テンプレート名802は、テンプレートの名称である。テンプレート名は、図5中のチケット作成画面601上に表示される。ルートID803は、ルート情報管理DB1301が管理するルート情報に含まれるルートID1401(図12)への外部キーである。
図9は、タスクサーバの構成例を示す図である。タスクサーバ103は、タスクプロセス1010、1011、およびエージェント1020を備える。タスクプロセス1010、1011は、スキャンサービスを実現するための要素機能を実現する実行プロセスである。タスクプロセス1010、1011は、タスクサーバ103のリソース残量が多い、つまりサーバリソースに余裕がある限り任意の数を起動させることができる。
図9に示すように、タスクプロセス1010は、タスク取得部1012、データ取得部1013、データ保存部1014、タスクステータス通知部1015、タスク処理部1016を備える。タスク取得部1012は、定期的にフローサービスサーバ群102に問い合わせを行い、タスクサーバ103にて処理可能なタスクを取得する。データ取得部1013は、タスク取得部1012が取得したタスクの情報に基づいて、フローサービスサーバ群102から、処理すべき画像データを取得する。タスク処理部1016は、データ取得部1013が取得した画像データに対して各種処理を行う。また、タスク処理部1016は、タスク処理部1016による処理結果をデータ保存部1014に渡す。データ保存部1014は、タスク処理部1016から受け取った処理結果をフローサービスサーバ群103に保存する。タスクステータス通知部1015は、定期的にフローサービスサーバ群102に状態通知を行う。状態通知は、タスクサーバがタスク処理中であることを知らせる通知である。
なお、タスクプロセスの例としては、画像データに対して画像処理を行うタスクプロセスや、ファイル共有機能を提供するような他のクラウドサービスサーバ群108に対して、画像データを送信する処理を行うタスクプロセスがある。本実施例においては、タスクプロセス1010は、画像データに対してOCR処理を行いOCR結果のテキストデータを画像データに埋め込む処理を行う。また、タスクプロセス1011は、クラウドサービスサーバ群108の中のストレージ機能を提供する特定のサービスに対して、画像データをアップロードし保管する処理を行う。
エージェント1020は、外部I/F1021、タスク起動部1022、タスク停止部1023、タスク監視部1024を備える。エージェント1020は、タスクサーバ103上でのタスクプロセス1010、1020の数を監視し、スケーリングサーバ109に対して一定周期でタスクサーバ103上でのタスクプロセス1010、1020の数を通知する。また、スケーリングサーバ109からタスクサーバ103上でのタスクプロセス1010、1020の数の通知に基づく指示を受け付け、タスクプロセス1010、1020の起動、停止を行う。
図10は、フローサービスサーバ群の構成例を示す図である。フローサービスサーバ群102は、ルート管理、ジョブ管理、一時ファイル管理を行うサービスサーバ群である。フローサービスサーバ群102は、ルート管理サービスサーバ群1201、ジョブ管理サービスサーバ群1202、一時ファイル管理サービスサーバ群1203を備える。ルート管理サービスサーバ群1201は、ルート情報を管理する。ジョブ管理サービスサーバ群1202は、ルート情報に基づいて、ジョブの処理を管理する。
一時ファイル管理サービスサーバ群1203は、ジョブ投入時のデータや各タスクの処理結果データの保存を管理する。具体的には、一時ファイル管理サービスサーバ群1203は、スキャンサービスサーバ群101やタスクサーバ(103、104)からの要求に応じて、ファイルを格納し、その格納先のパスを管理する。スキャンサービスサーバ群101は、タスクサーバからファイル取得要求があった場合には、保存したファイルのバイナリデータをタスクサーバに返却する。また、一時ファイル管理サービスサーバ群1203は、タスクサーバやジョブ管理サービスサーバ群1202からファイル削除の要求があった場合には、保存したファイルを削除する。一時ファイル管理サービスサーバ群1203の機能を利用することによって、スキャンサービスサーバ群101やタスクサーバは、ファイルの格納先のパスやファイルサーバの状態を気にすることなく、ファイルの保存、取得、削除を行うことができる。
図11は、ルート管理サービスサーバ群の構成例を示す図である。ルート管理サービスサーバ群1201は、ルート情報管理DB1301、タスク情報管理DB1302、外部I/F1303を備える。ルート情報管理DB1301は、ルート情報を保持する。タスク情報管理DB1302は、タスクに関する情報(タスク情報)を保持している。この例では、タスクは、ジョブに含まれる処理単位を示す。外部I/F1303は、ルート管理サービスサーバ群1201への問い合わせに用いられるI/Fである。ジョブ管理サービスサーバ群1202等は、外部I/F1303を介して、ルート情報管理DB1301やタスク情報管理DB1302を参照する。
図12は、ルート情報管理DBの一例を示す図である。ルート情報は、ルートID1401、シーケンス番号1402、タスクID1403といったデータ項目を有する。ルートIDは、ルートを一意に識別する識別情報である。タスクID1403は、各々のルートを構成するタスク、つまり、ユーザによって選択されたテンプレートに対応する処理を実現するジョブに含まれるタスクを一意に識別する識別情報である。
シーケンス番号1402は、タスクが、そのタスクが含まれるルートにおいて、何番目に実行されるタスクであるかを示す番号である。言い換えると、シーケンス番号1402は、ルートに対応するジョブに含まれる各々のタスクが、ジョブ内で何番目に実行されるタスクであるかを示す処理順情報である。したがって、ルート情報管理DB1301は、処理順情報を含むルート情報を記憶する処理順情報記憶部として機能する。
図12を参照すると、例えば、ルートIDが002であるルートは、シーケンス番号が小さい順に、Task1、Task3、Task5、Task7を含んでいる。したがって、このルートに対応するジョブに含まれるタスクのうち、最先に実行されるタスクは、Task1であり、2番目に実行されるタスクは、Task3である。また、3番目に実行されるタスクは、Task5であり、4番目に実行されるタスクは、Task7である。
図13は、タスク情報管理DBの一例を示す図である。タスク情報管理DB1302は、タスク情報を記憶するタスク情報記憶部である。タスク情報は、タスクID1501、タスク名1502、中止時間1503、状態通知時間1504、最大処理時間(実測)1505、最大処理時間(予想)1506といったデータ項目を有する。
タスクID1501は、タスクを一意に識別する識別情報である。タスク名1502は、タスクの名称である。中止時間1503は、その時間以内にタスク処理が完了しない場合に、ジョブ管理サービスサーバ群1202が、タスク処理を実行中のタスクサーバ(103、104)から他のタスクサーバにジョブを委譲する時間である。
タスクを実行中のタスクサーバが、所定の時間以内つまりこのタスクに対応する中止時間1503に設定された時間以内にタスク処理が完了しない場合、ジョブ管理サービスサーバ群1202は、このタスクを実行中のタスクサーバに異常が発生したと判断する。そして、ジョブ管理サービスサーバ群1202は、以下の処理を実行する。まず、ジョブ管理サービスサーバ群1202は、このタスクを他のタスクサーバに渡す。具体的には、ジョブ管理サービスサーバ群1202は、実行中のタスク処理と同じタスク処理が可能なタスクサーバに対してタスク処理を代理で実行するように命令(代理実行命令を発行)する。また、ジョブ管理サービスサーバ群1202は、所定のタイミングで、異常が発生したタスクサーバに対して、タスク処理を中止するよう命令する(中止命令を発行する)。これにより、他のタスクサーバにジョブ処理が委譲される。
タスクサーバには、ハードウェア故障やソフトウェアバグが発生したり、ネットワーク切断などにより通信できなくなったりなど、様々な異常が発生する。さらに、例えば、画像処理や外部クラウドへの保存処理など、処理対象のデータが巨大な場合にも、タスクサーバは長時間実行状態となる。このような場合も、異常が発生したと判断される。
状態通知時間1504は、ジョブ管理サービスサーバ群1202が、タスクサーバに対して状態通知させる時間(通知時間間隔)である。最大処理時間(実測)、最大処理時間(予想)は、各々のタスクの処理内容に対応する処理時間である。最大処理時間(実測)1505は、タスクサーバによる当該タスクの処理時間の実測値のうちの最大値である。例えば、ジョブ管理サービスサーバ群1202は、最大処理時間(実測)1505に基づいて、中止時間1503を決定して設定する。ジョブ管理サービスサーバ群1202が、最大処理時間(実測)1505の値そのものを中止時間1503として設定してもよい。また、ジョブ管理サービスサーバ群1202は、最大処理時間(実測)1505に予め決められた猶予時間を足し合わせたものを中止時間1503として設定するようにしてもよい。なお、中止時間1503の決定方法としては、上記のものに限定されない。
最大処理時間(予想)1506は、タスクの処理時間のうち、予想される最大処理時間である。この例では、タスクサーバ103は、画像データに対する処理を行う。したがって、ジョブ管理サービスサーバ群1202は、一時ファイル管理サービスサーバ群1203が管理できる最大サイズの画像データに対する処理時間を予め計測しておき、この計測結果に基づいて、最大処理時間(予想)1506を算出して設定する。また、この例では、タスクサーバ104は、画像データをアップロードし保管する処理を行う。したがって、ジョブ管理サービスサーバ群1202は、クラウドサービスサーバ群108がアップロードを許容する最大のサイズの画像データをアップロードするために要する時間から、最大処理時間(予想)1506を算出することができる。なお、ジョブ管理サービスサーバ群1202は、最大処理時間(予想)1506を、クラウドサービスサーバ群108のアップロードタイムアウト値から算出してもよい。最大処理時間(予想)1506の算出方法としては、上記のものに限定されない。
最大処理時間(予想)1506を、中止時間1503を決定する要素として用いるようにしてもよい。例えば、最大処理時間(予想)1506の値そのものを中止時間1503としてもよいし、最大処理時間(予想)1506に予め決められた猶予時間を足し合わせたものを中止時間1503としてもよい。前述したように、ジョブ管理サービスサーバ群1202は、タスク情報管理DB1302に設定された中止時間に基づいて、タスク処理を実行中のタスクサーバから他のタスクサーバにジョブを委譲することを決定する。すなわち、ジョブ管理サービスサーバ群1202は、前述した中止命令、代理実行命令を発行するタイミングを、タスクの処理内容に対応するタスクの処理時間に応じて変化させる。
図14は、ジョブ管理サービスサーバ群の構成例を示す図である。ジョブ管理サービスサーバ群1202は、タスクサーバ(103、104)からのタスク要求(タスク取得リクエスト)に応じて、タスクを渡す。タスク取得リクエストは、タスクの取得を求める要求である。処理待ち状態のタスクサーバは、所定のポーリング時間毎に、タスク取得リクエストを送信する。また、ジョブ管理サービスサーバ群1202は、各タスクの状態を管理する。
ジョブ管理サービスサーバ群1202は、外部I/F1601、ジョブ情報管理DB1602、ジョブ追加部1603、ジョブ情報取得部1604、ジョブ情報更新部1605、ジョブ状態通知部1606を備える。
外部I/F1601は、タスクサーバおよび画像形成装置107との間の通信インタフェースである。外部I/F1601を通じて、ジョブ管理サービスサーバ群1202の各機能へのアクセスが行われる。ジョブ情報管理DB1602には、ジョブ情報が記憶される。ジョブ情報は、ジョブに含まれる複数のタスクのうち、現在最先の処理順序のタスクと、そのタスクの状態と、そのタスクを実行中のタスクサーバからタスク処理中であることの通知を受けた最終通知時刻に関する情報とを含む。
ジョブ追加部1603は、スキャンサービスサーバ群101によって投入されるジョブに関するジョブ情報を、ジョブ情報管理DB1602に記憶する。ジョブ情報取得部1604は、タスクサーバからのタスク取得リクエストに応じて、リクエスト元のタスクサーバが処理対象とするタスクに対応するジョブ情報をジョブ情報管理DB1602から、取得し、タスクサーバに渡す。このジョブ情報をタスクサーバに渡すことを、本明細書では「タスクを渡す」と記述している。
ジョブ情報更新部1605は、タスクサーバからのジョブ情報更新リクエストに応じて、ジョブ情報管理DB1602内のジョブ情報を更新する。ジョブ情報更新リクエストは、ジョブ情報の更新を求める要求である。ジョブ状態通知部1606は、タスクサーバから状態通知を受け付ける。タスクサーバは、自身に対応する状態通知時間毎に状態通知を行う。
図15は、ジョブ情報管理DBの一例を示す図である。ジョブ情報管理DB1602は、ジョブ情報を記憶するジョブ情報記憶部である。ジョブ情報は、ジョブID1701、ルートID1702、ファイルグループID1703、カレントタスクID1704、ステータス1705といったデータ項目を有する。また、このジョブ情報は、最終更新時刻1706、パラメータ1707、タイムスタンプ1708、最終状態通知時刻1709といったデータ項目を有する。
ジョブID1701は、ジョブ情報を一意に識別する識別情報である。ルートID1702は、ルートを一意に識別する識別情報である。ルートID1702には、図5のチケット作成画面601上で選択されたテンプレートに対応するルートのルートIDが設定される。
ファイルグループID1703は、ジョブに含まれる画像データに関するファイルグループを一意に識別する識別情報である。カレントタスクID1704は、当該ジョブに含まれるタスクのうち、現在最先の処理順序のタスクであるカレントタスクを一意に識別する識別情報である。ジョブ管理サービスサーバ群1202のジョブ情報取得部1604は、カレントタスクID1704に設定されたタスクIDが、タスク取得リクエスト元のタスクサーバに割り当てられたタスクIDと合致するレコード(一行分のデータ)を特定する。そして、ジョブ情報取得部1604は、特定したレコードに対応するカレントタスクを、タスクサーバに渡す。
ジョブ情報更新部1605は、タスクの処理が完了した場合には、そのタスクに対応するレコードに含まれるルートIDを特定する。ジョブ情報更新部1605は、ルート情報管理DB1301を参照して、上記特定したルートIDに対応するタスクのうち、処理が完了したタスクの次に処理対象となるタスクを決定する。そして、ジョブ情報更新部1605は、ジョブ情報管理DB1602の上記レコードに対応するカレントタスクIDを上記決定したタスクのタスクIDに更新する。
ステータス1705は、当該タスクの状態である。具体的には、ステータス1705には、処理待ち状態を示す「0」、実行中状態を示す「1」、またはエラー発生を示す「2」が設定される。ジョブ情報更新部1605は、タスクの処理が完了した場合には、ステータス1705を0に更新する。
ジョブ情報取得部1604がタスクサーバに渡すタスクを選択する際には、ステータスが0であるレコードを選択する。これにより、複数のタスクサーバが同一のタスクを処理するといった事態を防ぐことができる。タスクサーバにタスクが渡されると、ジョブステータス変更部1605が、ステータス1705を0から1に変更する。
最終更新時刻1706は、ジョブ情報の最終更新時刻である。タスクのステータスが更新された時や、タスクサーバにタスクが渡された時に、最終更新時刻1706が現在時刻に更新される。ジョブ情報取得部1604は、タスク取得リクエスト元のタスクサーバに割り当てられたタスクIDがカレントタスクIDと等しいレコードが複数存在している場合、最終更新時刻1706が最も古いレコードを選択し、選択したレコードに対応するタスクを渡す。これにより、全てのジョブを平均的に処理することが可能となる。
パラメータ1707には、詳細設定画面605(図5)を用いて設定された設定情報や、タスクサーバが他のタスクサーバに渡す設定情報が設定される。タイムスタンプ1708は、ジョブ情報が更新される度に自動的に更新される固有情報である。例えば、タスク処理中のタスクが他のタスクサーバに委譲される度に、タイムスタンプ1708が更新される。
タスクサーバとジョブ情報更新部1605およびジョブ状態通知部1606との間の通信の際に、タイムスタンプの受け渡しを行うことで、他のタスクサーバにジョブが委譲されていないことを保証できる。最終状態通知時刻1709は、タスク処理を実行中のタスクサーバから状態通知を受けた最終時刻である。ジョブ情報取得部1604は、最終状態通知時刻1709から中止時間1503経過した場合に、他のタスクサーバへジョブを委譲する。
図16は、ジョブ量管理DBの一例を示す図である。ジョブ量管理DB1606は、タスクサーバに投入されたタスクの投入数とスループットを記憶するジョブ量記憶部である。ジョブ量管理DB1606は、タスクID2301、投入数2302、スループット2303、開始時刻2304、終了時刻2305といったデータ項目を有する。タスクID2301は、タスクの種別を一意に識別するためのIDである。投入数2302は、開始時刻2304から終了時刻2305までの間にタスクサーバが受け付けたタスク数のことである。スループット2303は、開始時刻2304から終了時刻2305までの間にタスクサーバが実行したタスク数のことである。開始時刻2304、終了時刻2305は本実施例においては5秒の間隔である。ジョブ管理サービスサーバ群1202は、5秒ごとに新しい行を追加して、投入数2302、スループット2303を記録する。
図17は、スケーリングサーバの構成例を示す図である。スケーリングサーバ109は、ジョブ管理サービスサーバ群1202のジョブ情報管理DB1602を一定周期で監視することで、スケールアウト、またはスケールインの必要性を判断し、スケールアウト、またはスケールインを指示する。すなわち、スケーリングサーバ109は、情報処理システム上で動作する前記複数のジョブ処理装置の動作状況を監視する監視装置として機能する。スケールアウト、スケールインの指示は、スケーリングサーバ109のCPU202がエージェント1020に対するタスクの起動、または停止の命令を送信することによって行われる。スケーリングサーバ109は、外部I/F1801、監視履歴DB1802、スケールアウト実行履歴DB1803、実行履歴画面表示部1804、タスクステータスDB1805、スケールイン実行履歴DB1806を備える。
外部I/F1801は、ジョブ管理サービスサーバ群1202のジョブ情報管理DB1602、ジョブ量管理DB1606からデータを取得するためのI/Fである。また、タスクサーバ103のエージェント1020からタスクの起動状況の通知を受け取り、タスクステータスDB1805に格納する。また、エージェント1020に対して、タスクの起動、または停止の通知を送信する。
図18は、監視履歴DBの一例を示す図である。監視履歴DB1802は、スケーリングサーバ109が一定周期でジョブ情報管理DB1602、ジョブ量管理DB1606に対する監視を実行するたびに更新される。監視履歴DB1802は、監視ID1901、タスクID1902、待ち数1903、日時1904といったデータ項目を有する。
監視ID1901は、監視記録を一意に識別するIDである。タスクID1902は、後述のルート管理サービスサーバ群1201のタスク情報管理DB1302で管理されるIDである。スケーリングサーバ109は、タスクID1902ごとに、ジョブ情報管理DB1602に問い合わせを行う。待ち数1903は上記の問い合わせにより算出された、実行待ちとなっているジョブ数を表わす。実行待ちとなっているジョブ数は、ジョブ情報管理DB1602のカレントタスクID1704が問い合わせ対象のタスクIDと等しい。また、ステータスが0(待ち)状態となっているジョブ数をスケーリングサーバ109が取得することで算出できる。日時1904は、問い合わせを実施した日時を表わす。本実施例については、スケーリングサーバ109は5分ごとに監視を実施しているため、日時1904は5分間隔で記録される。
図19は、タスクステータスの一例を示す図である。タスクステータスDB1805は、各タスクサーバ103上でのタスクプロセス1010、1011の起動数を管理する。スケーリングサーバ109は、エージェント1020からタスクID、起動数の通知を受け付けると、タスクステータスDB1805を更新する。エージェント1020は一定周期で通知を行うため、タスクステータスDB1805も一定周期で更新される。タスクステータスDB1805は、タスクサーバID2001、タスクID2002、起動数2003といったデータ項目を有する。タスクサーバID2001は、タスクプロセス1010、1011が起動しているタスクサーバ103を一意に識別するIDである。タスクID2002は、タスクの種別を一意に識別するIDである。起動数2003は、タスクサーバ103上でのタスクの起動数を示す。
図20は、スケールアウト実行履歴DBの一例を示す。スケールアウト実行履歴DBは、スケールアウトID2101、結果2102、タスクID2103、タスクサーバID2104、日時2105といったデータ項目を有する。スケールアウトID2101は、実施されたスケールアウトを一意に識別するためのIDである。結果2102は、スケールアウトを実施した結果である。結果2102のOKは、スケールアウトの効果があったことを示す。NGは、スケールアウトの効果が無かったことを示す。スケールアウトの効果の確認方法は、図25のS2407で詳細に記述するため、省略する。
“Monitoring”は、スケールアウトの効果の有無を確認中であることを示す。Monitoring状態の行が一つでも存在すると、スケーリングサーバ109は新たなスケールアウト、スケールインを実施しないため、スケールアウト実行履歴DB1803においてMonitoring状態の行は常に一つである。タスクID2103は、スケーリングサーバ109がスケールアウトを実施したタスクの種別を一意に識別するためのIDである。タスクサーバID2104は、スケーリングサーバ109がスケールアウトを実施したタスクサーバ103を一意に識別するためのIDである。スケーリングサーバ109は、結果2102、タスクID2103、タスクサーバID2104から、タスクサーバ103上での、タスクID2103で示される種類のタスクのスケールアウト効果の有無を確認することができる。日時2105は、結果2102を登録した日時を表わす。
図21は、スケールイン実行履歴DBの一例を示す。スケールイン実行履歴DB1806は、スケールインID2201、結果2202、タスクID2203、タスクサーバID2204、日時2205といったデータ項目を有する。スケールインID2201は、実施されたスケールインを一意に識別するためのIDである。結果2202は、スケールインを実施した結果である。結果2202のOKは、スケールインした結果、スループットが低下してしまい、結果としてスケールアウトが必要な状況にならなかったことを示す。NGは、スループットが低下してしまい、スケールアウトが必要な状況になったことを示す。
“Monitoring”であれば、スケールインの効果の有無を確認中であることを示す。Monitoring状態の行が一つでも存在すると、スケーリングサーバ109は新たなスケールアウト、スケールインを実施しないため、スケールイン実行履歴DB1806においてMonitoring状態の行は常に一つである。タスクID2203はスケーリングサーバ109がスケールアウトを実施したタスクの種別を一意に識別するためのIDである。タスクサーバID2204は、スケーリングサーバ109がスケールアウトを実施したタスクサーバ103を一意に識別するためのIDである。上記の結果2202、タスクID2203、タスクサーバID2204から、タスクサーバID2204で示されるタスクサーバ103上での、タスクID2203で示される種類のタスクのスケールインが有効であったかを確認することができる。日時2205は、結果2202を登録した日時を表わす。
図22は、実行履歴画面の一例を示す図である。スケーリングサーバ109は、運用者が利用するウェブブラウザ301に対して、前述のスケールアウト実行履歴DB1803で示されるスケールアウトの結果を確認する画面を送付する機能を有する。実行履歴画面表示2600において、運用者はスケールアウトの結果を確認し、必要であれば実行ボタン2601を押下することで、データスクサーバ103をスケールアウトすることができる。一般的に、タスクサーバ103のようなサーバをスケールアウトするとコストが発生する。例えば、IaaS(Infrastructure as a Service)を利用してサーバを運用している場合には、サーバをスケールアウトした時点で料金の請求が開始されるのが一般的である。よって、本実施例では、運用者の意思によって実行ボタン2601を押下することによってはじめて、タスクサーバを新たにスケールアウトする。ただし、VMのスケールアウトがあらかじめ想定されたコストであれば、実行履歴画面表示2600を介さず、自動的にタスクサーバをスケールアウトしてもよい。
図23は、本実施形態の情報処理システムの動作処理の例を説明するシーケンス図である。まず、クライアント端末106が備えるWebブラウザ301が、スキャンサービスサービスサーバ群101に対して、スキャンチケット作成画面リクエストを送信する(ステップS1101)。続いて、スキャンサービスサービスサーバ群101が備えるチケット作成部511は、スキャンチケット作成画面リクエストにしたがって、スキャンチケット作成画面を生成し、Webブラウザ301にレスポンスとして返す(ステップS1102)。具体的には、チケット作成部511は、テンプレート管理部516から、テンプレート管理DB503に登録されているスキャンチケットのテンプレートを取得する。そして、チケット作成部511は、取得したテンプレートに含まれるテンプレート名を含むスキャンチケット作成画面を作成し、Webブラウザ301に対して送信する。Webブラウザは、受信したスキャンチケット作成画面を表示する(図5)。
次に、スキャンチケット作成画面上でのユーザの操作にしたがって、Webブラウザ301が、スキャンサービスサーバ群101に対して、スキャンチケット作成リクエストを送信する(ステップS1103)。スキャンサービスサーバ群101が備えるチケット作成部511が、スキャンチケット作成リクエストにしたがってスキャンチケットを作成する。また、チケット管理部515が、作成されたスキャンチケットをチケット管理DB502に保存し、Webブラウザ301に対してレスポンスを返す。
次に、画像形成装置107のスキャンソフトウェア部が、外部I/F514を介し、チケット一覧部512に対して、チケット一覧取得リクエストを送信する(ステップS1105)。チケット一覧取得リクエストは、チケットの一覧の送信を求める要求である。チケット一覧部512は、チケット一覧取得リクエストにしたがって、チケットの一覧を生成してWebブラウザ301に返す(ステップS1106)。Webブラウザ301は、返されたチケット一覧をチケット一覧画面(図7)上に表示する。
次に、チケット一覧画面上でのユーザの操作にしたがって、画像形成装置107のスキャンソフトウェア部が、スキャン処理を実行して画像データを取得する(ステップS1107)。そして、スキャンソフトウェア部が、上記スキャン処理によって取得した画像データと、チケット一覧画面上でのユーザの操作により選択されたスキャンチケットとをスキャンサービスサーバ群101のスキャン受信部513に送信する(ステップS1108)
次に、スキャン受信部513が、受信した画像データをフローサービスサーバ群102に投入する(ステップS1109)。フローサービスサーバ群102が画像データを正しく受信できた場合には、フローサービスサーバ群102は、スキャンサービスサーバ群101に対して、受信した画像データに対応するファイルグループを応答する(ステップS110)。続いて、スキャンサービスサーバ群101のスキャン受信部513が、フローサービスサーバ群102に対して、ファイルグループIDとスキャンチケットとを送信する。これにより、フローサービスサーバ群102にジョブが投入される(S1111)。
次に、フローサービスサーバ群102がタスクサーバからのタスク取得リクエストに応じてタスクを渡す処理について説明する。各々のタスクサーバ(103,104)のタスク取得部1012が、定期的にフローサービスサーバ群102に問い合わせ(タスク取得リクエスト)を行う。そして、タスク取得部1012が、タスクサーバにて処理可能なタスクを取得する(ステップS1112、S1113、S1120、S1121)。
タスクサーバのデータ取得部1013が、タスク取得部1012によって取得したタスクに対応する、処理すべき画像データをフローサービスサーバ群102から取得する(ステップS1114、S1115、S1122、S1123)。タスクサーバのタスク処理部1016が、フローサービスサーバ群102から取得した画像データに対して各種処理(タスク処理)を実行する(ステップS1116、S1124)。また、タスクサーバのタスクステータス通知部1015は、定期的にフローサービスサーバ群102に状態通知を行う(ステップS1117、S1125)。
図23に示す例では、タスクサーバ103のタスク処理部1016は、ステップS1116におけるタスク処理の結果を、データ保存部1014を介してフローサービスサーバ群103に保存する(ステップS1118)。また、タスクサーバ104のタスク処理部1016は、ステップS1124におけるタスク処理の結果を、クラウドサービスサーバ群108にデータ送信する(ステップS1126)。
また、タスクサーバ(103、104)のタスクステータス通知部1015は、一連のタスク処理の終了結果をフローサービスサーバ群103に通知する(ステップS1119、S1127)。
次に、スケーリングサーバ109が実行するスケーアウト処理を図24、図25を用いて説明する。スケーリングサーバ109は、一定周期でジョブ情報管理DB1602を監視することにより図24、図25の処理をそれぞれ繰り返し実行する。図24、図25の処理は、スケーリングサーバ109の起動時、もしくは運用者のコマンドによる実行などにより開始される。また、本実施例においてスケーリングサーバ109は図24、図25の処理を続けて処理する。また、本フローに係るスケーリングサーバ109のプログラムは、ROM204やHDD205に記憶されており、RAM203に読み出されCPU202によって実行される。
図24、図25は、スケーリングサーバ109が実施するスケールアウトのフローチャートを示す。S2401で、スケーリングサーバ109は、S2401からS2418の処理を繰り返す。S2402で、スケーリングサーバ109のCPU202は、図15に示すフローサービスサーバ群102のジョブ情報管理DB1602を監視する。具体的には、スケーリングサーバ109は、図13に示すタスク情報管理DB1302で管理されるタスクIDごとに、ジョブ情報管理DB1602を監視し、ジョブの実行待ちとなっている待ち数を監視する。S2403で、スケーリングサーバ109は、S2402で監視した待ち数をもとに、図18に示す自装置の監視履歴DB1802を更新する。
S2404で、スケーリングサーバ109は、図20に示すスケールアウト実行履歴DB1803を参照する。S2405で、スケーリングサーバ109は、スケールアウトがすでに実行中であればS2406へ、実行中でなければS2411へ処理を分岐させる。スケールアウトが実行中であることは、スケールアウト実行履歴DB1803に、結果が“Monitoring”になっている行が存在するか否かを確認することで判断できる。
スケールアウトが実行中である場合、図25のS2406に処理が進み、スケーリングサーバ109は、スケールアウト実行履歴DB1803を確認する。具体的には、S2406で、スケーリングサーバ109は、スケールアウト実行履歴DB1803の結果が“Monitoring”になってから、確認期間以上経過しているか確認する。確認期間はあらかじめ定義された値であり、本実施例においては15分間としている。この確認期間は、実施したスケールアウトの効果があったかどうかを確認する期間である。つまり、スケーリングサーバ109のCPU202は、タスクを増加させたタスクサーバ103を規定時間の間監視し、タスクを増加させたタスクサーバ103においてスループットが向上されているか否かを確認する確認手段として機能する。
S2407で、スケーリングサーバ109はスケールアウトを実施したタスクについてのスケールアウトの効果を確認する。このとき、スケールアウトの効果があったかどうかは、図16に示すジョブ量管理DB1606のスループット列を確認することで判断できる。従って、スケーリングサーバは、スケールアウトが行われてから15分以上経過した場合に、ジョブ量管理DB1606のスループット列を確認する。本実施例では、スケーリングサーバ109がスケールアウトを行う前、つまりタスクの増加前のジョブの処理数と、スケールアウトを行った規定時間後のジョブの処理数を比較して、スループットが向上しているかを確認する。
例えば、スケーリングサーバ109は、図20中のスケールアウト実行履歴DB1803を参照し、2011/09/15 12:00:03 にスケールアウトが実行されていることを確認する。このとき、スケールアウトが実行されたのはタスクIDが1であるTask1のタスクである。次に、スケーリングサーバ109は、タスクIDが1であるタスクサーバについて、フローサービスサーバ群102のジョブ量管理DB1606のスループット列を参照する。この時、スケールアウトの実行時刻2011/09/15 12:00:03の前の時刻は2011/09/15 12:00:00である。また、スケールアウトの実行時刻2011/09/15 12:00:03の後の時刻は2011/09/15 12:00:25である。従って、スケーリングサーバ109は、スループットが6から10に増加していることを確認できる。スループットの比較方法については、平均値を比較する方法、最大値を比較する方法、最近のスループットに重みを付けて比較する方法などが想定されるが、任意の比較方法が適用されてよい。
S2408で、スケーリングサーバ109は、S2407において、スループットが向上されたと判断した場合は、スケールアウト実行履歴DB1803の結果が“Monitoring”となっている行の結果を、“OK”に変更する。スケーリングサーバ109は、スループットが向上されなかったと判断した場合は、スケールアウト実行履歴DB1803の結果が“Monitoring”となっている行の結果を、“NG”に変更する。そして、スケーリングサーバ109がスケールアウトの効果の判断結果をスケールアウト実行履歴DB1803に記憶させることで、“NG”と判断されたタスクサーバをスケールアウト対象から除外することが可能となる。
S2409で、スケーリングサーバ109は、S2408の結果が“OK”だった場合はS2418へ、“NG”だった場合はS2410へ処理を分岐させる。
S2410で、スケーリングサーバ109は、スケールインを実施する。このスケールインは、スケールアウト効果が“NG”だったため、タスクサーバ103上でスケールアウトされたタスクプロセス1010、1011の起動状況をスケールアウト前に戻すために実施される。具体的には、スケーリングサーバ109は、タスクサーバ103のエージェント1020が備えるタスク停止部1023に、タスク起動部1022がスケールアウトしたタスクを停止するように指示を出す。このように、タスクプロセス1010、1011をスケールアウトしても効果が無かった場合は、自動的に元の状態に戻せるため、自動的に適切なタスクプロセス1010、1011の起動数を調節することができる。
S2410で、スケーリングサーバ109は、スケールインを実施する。このスケールインは、スケールアウト効果が“NG”だったため、タスクサーバ103上でスケールアウトされたタスクプロセス1010、1011の起動状況をスケールアウト前に戻すために実施される。具体的には、スケーリングサーバ109は、タスクサーバ103のエージェント1020が備えるタスク停止部1023に、タスク起動部1022がスケールアウトしたタスクを停止するように指示を出す。このように、タスクプロセス1010、1011をスケールアウトしても効果が無かった場合は、自動的に元の状態に戻せるため、自動的に適切なタスクプロセス1010、1011の起動数を調節することができる。
S2405の処理において、スケールアウトが実行中ではなかった場合に、処理はS2411に進み、スケーリングサーバ109は監視履歴DB1802を確認する。S2411で、スケーリングサーバ109は、スケールアウト対象タスクを抽出する。スケーリングサーバ109は、タスクIDごとに、監視履歴DB1802を参照し、ジョブの実行待ちとなっている待ち数1903を確認する。本実施例では、あるタスクIDに対して、最新の確認結果から一定期間の間の待ち数が、タスクステータスDB1805で管理されたタスクプロセス1010、1011の規定数、つまり起動数以上の場合、スケールアウトが必要であると判断する。上記の状況は、タスクプロセス1010、1011が処理すべき待ちジョブ数がタスクプロセス1010、1011の総和より大きくなった状況であり、そのままにしてくと待ちジョブ数がより大きくなり続けると想定される。従って、実行待ち状態のジョブの数が当該ジョブに対応するタスクの起動数以上である場合にタスクを増加させることで、ジョブ処理の効率化を図る。
S2412で、スケーリングサーバ109は、S2411での判断の結果、スケールアウトが必要なタスクが存在すればS2413、存在しなければS2418へ処理を分岐させる。S2413で、スケーリングサーバ109はスケールアウトするタスクサーバ103を選択する。タスクサーバ103を選択する条件は、タスクステータスDB1805上データスクプロセス1010、1011の起動数が最も少なく、スケールアウト実行履歴DB1803で“NG“となった履歴が存在しないことである。つまり、スケーリングサーバ109は、スケールアウトの効果の判断結果に基づいて、スループットが向上していないタスクサーバを除くジョブ処理装置に対してタスクを増加させるように指示する。
例えば、タスクサーバIDが1であるタスクサーバ103の監視履歴DB1802にスケールアウトが必要なタスクが存在すれば、タスクプロセスの起動数が最も少ない、例えばタスクサーバIDが2であるタスクサーバ103を選択する。このように、タスクプロセス1010、1011の起動数が最も少ないタスクサーバ103を選択することで、比較的サーバリソースに余裕のあるタスクサーバ103上にタスクプロセス1010、1011を起動することが可能である。また、スケールアウト実行履歴DB1803で“NG”となっていないタスクサーバ103を選択することで、スケールアウトの効果がなかったタスクサーバ103で再度スケールアウトを実施することを防止することができる。
S2414で、スケーリングサーバ109は、S2413の結果、スケールアウトするタスクサーバ103が存在すればS2415へ、存在しなければS2417へ処理を分岐させる。S2415で、スケーリングサーバ109のCPU202は、S2414で選択されたタスクサーバ103上のエージェント1020に対して、スケールアウト指示を送信する。エージェント1020は、スケールアウト指示を受信すると、指定されたタスクプロセス1010、1011を起動する。S2416で、スケーリングサーバ109は、スケールアウト実行履歴DB1803にレコードを追加し、起動されたタスクプロセス1010、1011の結果を“Monitoring”に設定し、スケールアウト実行履歴を更新する。
S2417で、スケーリングサーバ109は、図22に示す実行履歴画面表示2600をウェブブラウザ301に送信する。実行履歴画面表示2600は、スケールアウトするためのタスクサーバ103が存在しなかったため、タスクサーバ103そのもののスケールアウトの実施を指示するための確認画面である。S2418で、スケーリングサーバ109は、一定時間停止する。S2419で、スケーリングサーバ109は、S2401へ処理を戻す。
図26および図27は、スケーリングサーバ109が実施するスケールインのフローチャートを示す。S2501で、スケーリングサーバ109は、S2502からS2518の処理を繰り返す。また、本フローに係るスケーリングサーバ109のプログラムは、ROM204やHDD205に記憶されており、RAM203に読み出されCPU202によって実行される。
S2502で、スケーリングサーバ109は、フローサービスサーバ群102のジョブ情報管理DB1602を監視する。監視対象は、タスク情報管理DB1302で管理されるタスクIDごとに、ジョブの実行待ちとなっている待ち数である。S2503で、スケーリングサーバ109は、S2502で監視した情報をもとに、監視履歴DB1802を更新する。S2504で、スケーリングサーバ109は、図21に示すスケールイン実行履歴DB1806を参照する。
S2505で、スケーリングサーバ109は、スケールインがすでに実行中であれば図27に示すS2506へ、実行中でなければS2511へ処理を分岐させる。スケールアウト、スケールインが実行中であることは、スケールアウト実行履歴DB1803、またはスケールイン実行履歴DB1806に、結果が“Monitoring”になっている行が存在するか否かを確認することで判断できる。
スケールインが実行中である場合、図26のS2506に処理が進み、スケーリングサーバ109は、スケールイン実行履歴DB1806を確認する。具体的には、S2506で、スケーリングサーバ109は、スケールイン実行履歴DB1806の結果が“Monitoring”になってから、確認期間以上経過しているか確認する。確認期間はあらかじめ定義された値であり、本実施例においては15分間としている。この確認期間は、実施したスケールインの結果、スループットが低下して、スケールアウトが必要な状況に陥っていないかを確認する期間である。
S2507で、スケーリングサーバ109はスケールインを実施したタスクについての待ちジョブ数が増加して、スケールアウトが必要な状況になってしまっていないかを確認する。スケールアウトが必要な状況の判断は、図25で説明したS2411の判断処理と同様であるため省略する。スケールアウトが必要な状況になることは、スケールインした結果、スループットが低下してしまったことを意味する。本実施例では、スケールアウトが必要な状況にならないことを確認することで、スケールインの結果を判断する。つまり、スケーリングサーバ109は、ジョブの処理の数をタスクの削減前と規定時間後とにおいて比較し、タスクの削減前よりもジョブの処理数が減少している場合に前記スループットが低下していることを確認する。そして、スケーリングサーバ109がスケールインの効果の判断結果をスケールイン実行履歴DB1806に記憶させることで、“NG”と判断されたタスクサーバをスケールイン対象から除外することが可能となる。しかし、例えばタスクサーバ103のCPU、メモリ、ストレージなどのリソース状況を監視して、スケールインによる高負荷の発生を監視する方法もある。本提案においては、スケールインした結果、その結果を確認し、必要であれば元の状態に戻せるという点が重要である。
S2508で、スケーリングサーバ109は、S2507において、スケールアウトが必要でないと判断した場合は、スケールイン実行履歴DB1806の結果が“Monitoring”となっている行の結果を、“OK”に変更する。スケールアウトが必要であると判断した場合は、スケールイン実行履歴DB1806の結果が“Monitoring”となっている行の結果を、“NG”に変更する。S2509で、スケーリングサーバ109は、S2508の結果が“OK”だった場合はS2517へ、“NG”だった場合はS2510へ処理を分岐させる。
S2510で、スケーリングサーバ109は、スケールアウトを実施する。このスケールアウトは、スケールインの効果が“NG”だったため、タスクサーバ103上でのタスクプロセス1010、1011の起動状況をスケールイン前に戻すために実施する。このように、タスクプロセス1010、1011をスケールインした結果、スループットが低下してしまい、スケールアウトが必要になった場合には、自動的に元の状態に戻せるため、自動的に適切なタスクプロセス1010、1011の起動数が調節される。スケールアウトの詳細な手順については、図25を用いて記載したため省略する。
S2505でスケールインが実行中でない場合、処理はS2511に進み、スケーリングサーバ109は監視履歴DB1802を確認する。S2511で、スケーリングサーバ109はスケールイン対象タスクを抽出する。タスクIDごとに、監視履歴DB1802を参照し、ジョブの実行待ちとなっている待ち数を確認する。本実施例では、あるタスクIDに対して、最新の確認結果から所定期間の間の待ち数が、規定数以下、つまり常に0〜1である場合、タスクの削減が必要であると判断する。上記の状況は、タスクプロセス1010、1011が処理すべき待ちジョブがほとんど存在しない場合であり、スケールインすることによってサーバリソースを開放すべき状況である。
S2512で、スケーリングサーバ109は、S2511での判断の結果、スケールインが必要なタスクが存在すればS2513、存在しなければS2517へ処理を分岐させる。S2513で、スケーリングサーバ109はスケールインするタスクサーバ103を選択する。タスクサーバ103を選択する条件は、タスクステータスDB1805上のデータスクプロセス1010、1011の起動数が最も多く、スケールイン実行履歴DB1806で“NG“となった履歴が存在しないことである。つまり、スケーリングサーバ109は、スケールインの効果の判断結果に基づいて、スループットが低下しているタスクサーバを除くジョブ処理装置に対してタスクを増加させるように指示する。さらに、複数のタスクサーバ103上にタスクプロセスが合計2つ以上存在することも条件である。
タスクプロセス1010、1011の起動数が最も多いタスクサーバ103を選択することで、比較的サーバリソースを多く消費しているタスクサーバ103上データスクプロセス1010、1011を停止することが可能である。また、スケールイン実行履歴DB1806で”NG“となっていないタスクサーバ103を選択することで、スケールインの効果、スケールアウトが必要になってしまったタスクサーバ103での再度のスケールインの実施を防止することができる。また、複数のタスクサーバ103データスクプロセス1010、1011が合計2つ以上存在することを保証することで、可用性を低下させないことができる。あるいは、起動数が最も多いタスクサーバ103であっても、当該タスクサーバ103の監視履歴DB1802に記録された一定期間の間の待ち数が、常に0であるデータスクプロセス1010、1011をスケールインしてもよい。これにより、例えば誤起動により起動され、実行されていないタスクプロセス1010、1011がスケールインされ、サーバリソースが解放される。
また、あるタスクサーバ103上で2つのタスクプロセス1010、1011が起動しているだけだと、タスクサーバ103が故障などにより停止してしまった場合に、タスクプロセス1010、1011が1つも起動していない状況になってしまう。そのため、複数のタスクサーバ103でのタスクプロセス1010、1011の起動を保証する必要がある。本実施例においては、2つ以上のタスクプロセス1010、1011を複数のタスクサーバ103で起動することを保証している。しかし、n個以上のタスクプロセス1010、1011を起動するなど、SLA(Service Level Agreement)に応じて適切な数を設定することが好ましい。
S2514で、スケーリングサーバ109は、S2513の結果、スケールインするタスクサーバ103が存在すればS2515へ、存在しなければS2517へ処理を分岐させる。S2515で、スケーリングサーバ109は、S2513で選択されたタスクサーバ103上のエージェント1020に対して、スケールイン指示を送信する。エージェント1020は、スケールイン指示を受信すると、指定されたタスクプロセス1010、1011を停止する。
S2516で、スケーリングサーバ109は、スケールイン実行履歴DB1806上で結果が“Monitoring”になっている行の結果を、“OK”に更新する。S2517で、スケーリングサーバ109は、一定時間停止する。S2518で、スケーリングサーバ109は、S2501へ処理を戻す。
以上のように、実施例1では、スケールアウト、スケールインが必要な状況であることをスケーリングサーバがフローサービスサーバ群のジョブ管理DB、ジョブ量管理DBを参照することで特定し、スケールアウト、スケールインを実施する。また、スケーリングサーバは、スケールアウト、スケールインの結果を保持しておくことで、効果のないスケールアウト、スケールインを繰り返すことを防止している。上述の処理により、情報処理システムによれば、ジョブの実行状況とスケーリングの効果に基づいて、スケーリング条件を定義することなしに自動スケーリングを実現することが可能となる。
(実施例2)
実施例1では、スケールアウトの実施後に、スケールアウトの効果が無かった場合には、スケールアウト実行履歴DB1803に“NG”を記録し、再度スケールアウト対象となってしまうことを防止した。しかしながら、一旦“NG”となったタスクプロセス1010、1011とタスクサーバ103の組み合わせであっても、タスクサーバ103でのスケールインが実施された後は、スケールアウト効果が表れる可能性がある。スケールインすることによって、タスクサーバ103のサーバリソースに空きが生じて、スケールアウトを実施できる可能性があるからである。
実施例1では、スケールアウトの実施後に、スケールアウトの効果が無かった場合には、スケールアウト実行履歴DB1803に“NG”を記録し、再度スケールアウト対象となってしまうことを防止した。しかしながら、一旦“NG”となったタスクプロセス1010、1011とタスクサーバ103の組み合わせであっても、タスクサーバ103でのスケールインが実施された後は、スケールアウト効果が表れる可能性がある。スケールインすることによって、タスクサーバ103のサーバリソースに空きが生じて、スケールアウトを実施できる可能性があるからである。
よって、実施例2においては、一旦“NG”となったタスクプロセス1010、1011であっても再度スケールアウトを行う処理を説明する。具体的には、スケーリングサーバ109は、図27のフローチャートにおいて、S2515のスケールインを実施した場合に以下の処理を行う。スケーリングサーバ109は、スケールアウト実行履歴DB1803で“NG”となっている行の中で、S2515でスケールインしたタスクサーバ103の結果2102をすべて“OK”とする。すなわち、スケーリングサーバ109のCPU202は、スケールアウト対象から除外されたタスクサーバのタスクが削減された場合に、当該タスクサーバ103、104をスケールアウト対象として復帰させる復帰手段として機能する。
例えば、スケールアウト実行履歴DB1803で“NG”となっている行はスケールアウトID2101が4である行である。そのため、スケーリングサーバ109は、タスクサーバID2104が1であるタスクサーバ103をスケールインした場合には、スケールアウトIDが4である行の結果2102を“OK”に更新する。これにより、タスクサーバID2104が1であるタスクサーバ103をスケールアウト対象として復帰させることができる。以上のように、実施例2では、タスクサーバ103をスケールアウト対象として復帰させることで、サーバリソースを最大限活用する方法について述べた。
(実施例3)
実施例1では、スケールインの実施後に、スループットが低下してしまい、スケールアウト対象となってしまった場合にはスケールイン実行履歴DB1806に“NG”を記録し、再度スケールイン対象となってしまうことを防止した。しかしながら、一旦“NG”となったタスクプロセス1010、1011とタスクサーバ103の組み合わせであっても、ジョブ管理サービスサーバ群1202に投入されるジョブ数が低下した場合には、スケールインできる可能性がある。投入するジョブ数が低下することで、ジョブを処理するタスクプロセス1010、1011をより縮小することができる可能性が生じるためである。
実施例1では、スケールインの実施後に、スループットが低下してしまい、スケールアウト対象となってしまった場合にはスケールイン実行履歴DB1806に“NG”を記録し、再度スケールイン対象となってしまうことを防止した。しかしながら、一旦“NG”となったタスクプロセス1010、1011とタスクサーバ103の組み合わせであっても、ジョブ管理サービスサーバ群1202に投入されるジョブ数が低下した場合には、スケールインできる可能性がある。投入するジョブ数が低下することで、ジョブを処理するタスクプロセス1010、1011をより縮小することができる可能性が生じるためである。
よって、実施例3においては、一旦“NG”となったタスクプロセス1010、1011であっても再度スケールインを行う処理を説明する。スケーリングサーバ109は、図26のS2504でのスケールイン実行履歴DB1806の参照の際に、ジョブ量管理DB1606を監視する。ジョブ量管理DB1606において、ジョブの投入数が減少傾向になっていると判断した場合には、スケールイン実行履歴DB1806で“NG”となっている行の中で、投入数が減少したタスクIDに関する実行履歴をすべて“OK”とする。すなわち、スケーリングサーバ109のCPU202は、スケールイン対象から除外されたタスクサーバのタスクが増加された場合に、当該タスクサーバ103、104をスケールイン対象として復帰させる。
例えば、ジョブ量管理DB1606において、タスクIDがTask2のタスクサーバ103に関しては、ジョブの投入数が8から5に減少している。このように、投入数を監視することで、減少傾向になっていることを判別する。投入数が減少傾向になっているタスクIDがTask2のタスクサーバ103はスケールイン実行履歴DB1806で結果2202が“NG”となっている。よって、スケールインIDが3である結果2202を“OK”とする。これにより、スケールイン対象のタスクプロセス1010、1011として復帰させることができる。
以上のように、実施例3では、タスクプロセス1010、1011をスケールイン対象として復帰させることで、できるだけスケールインを実施し、サーバリソースを最大限活用する方法について述べた。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
Claims (13)
- ユーザ装置からジョブ処理要求を受付ける管理装置と、前記管理装置にジョブを問合せ、前記問合せに応じて取得したジョブを処理する複数のジョブ処理装置と、監視装置とを備える情報処理システムであって、
前記監視装置は、
前記情報処理システム上で動作する前記複数のジョブ処理装置の動作状況を監視する監視手段と、
前記監視手段により、特定のジョブ処理装置が規定数を超えるジョブを処理していることが監視されたことに応じて、前記複数のジョブ処理装置のうちいずれか一つのジョブ処理装置のタスクを増加させるスケールアウトを指示するスケールアウト指示手段と、
前記スケールアウト指示手段による指示に基づきタスクを増加させてジョブを処理する前記ジョブ処理装置を規定時間の間監視し、タスクを増加させた前記ジョブ処理装置においてスループットが向上されているか否かを確認する確認手段と、
前記確認手段による確認の結果、前記スループットが向上されていないと確認された場合、増加された前記タスクを削減するスケールインを指示するスケールイン指示手段と、を有する
ことを特徴とする情報処理システム。 - 前記スケールイン指示手段は、前記監視手段により、特定のジョブ処理装置が、所定期間の間、規定数以下のジョブを処理していることが監視されたことに応じて、前記複数のジョブ処理装置のうちいずれか一つのジョブ処理装置のタスクを削減させるように指示し、
前記確認手段は、前記スケールイン指示手段による指示に基づきタスクを削減させてジョブを処理する前記ジョブ処理装置を規定時間の間監視し、タスクを削減させた前記ジョブ処理装置においてスループットが低下しているか否かを確認し、
前記スケールアウト指示手段は、前記確認手段による確認の結果、前記スループットが低下していると確認された場合、削減された前記タスクを増加するように指示する
ことを特徴とする請求項1に記載の情報処理システム。 - 前記確認手段は、
前記タスクを増加させた前記ジョブ処理装置においてスループットが向上されていないと確認した場合に、前記スケールアウトの効果がないと判断し、当該スケールアウトの効果の判断結果を記憶手段に記憶することで、前記ジョブ処理装置をスケールアウト対象から除外し、
前記タスクを削減させた前記ジョブ処理装置においてスループットが低下していると確認した場合に、前記スケールインの効果がないと判断し、当該スケールインの効果の判断結果を前記記憶手段に記憶することで、前記ジョブ処理装置をスケールイン対象から除外する
ことを特徴とする請求項1または2に記載の情報処理システム。 - 前記スケールアウト対象から除外された前記ジョブ処理装置のタスクが削減された場合に、当該ジョブ処理装置を前記スケールアウト対象として復帰させ、前記スケールイン対象から除外された前記ジョブ処理装置のタスクが増加した場合に、当該ジョブ処理装置をスケールイン対象として復帰させる復帰手段をさらに備える
ことを特徴とする請求項3に記載の情報処理システム。 - 前記スケールアウト指示手段は、前記記憶手段に記憶された前記スケールアウトの効果の判断結果に基づいて、前記スループットが向上していないジョブ処理装置を除くジョブ処理装置に対し前記タスクを増加させるように指示し、
前記スケールイン指示手段は、前記記憶手段に記憶された前記スケールインの効果の判断結果に基づいて、前記スループットが低下しているジョブ処理装置を除くジョブ処理装置に対して前記タスクを削減させるように指示する
ことを特徴とする請求項3または4に記載の情報処理システム。 - 前記スケールアウト指示手段は、前記監視手段により、前記特定のジョブ処理装置が規定数を超えるジョブを処理していることが監視されたことに応じて、前記複数のジョブ処理装置のうち、前記タスクの起動数が最も少ないか、またはリソース残量が最も多いジョブ処理装置に対し前記タスクを増加させるように指示し、
前記スケールイン指示手段は、前記監視手段により、特定のジョブ処理装置が、所定期間の間、規定数以下のジョブを処理していることが監視されたことに応じて、前記複数のジョブ処理装置のうち、前記タスクの起動数が最も多いか、またはリソース残量が最も少ないジョブ処理装置に対し前記タスクを減少させるように指示する
ことを特徴とする、請求項1乃至5のいずれか一項に記載の情報処理システム。 - 前記スケールアウト指示手段は、実行待ち状態のジョブの数が当該ジョブに対応するタスクの起動数以上である場合に当該タスクを増加させるように指示する
ことを特徴とする請求項1乃至6のいずれか一項に記載の情報処理システム。 - 前記確認手段は、
前記スケールアウト指示手段による指示に基づき前記タスクを増加させてジョブを処理する前記特定のジョブ処理装置におけるジョブの処理数を、前記タスクの増加前と規定時間後とにおいて比較し、前記タスクの増加前よりも前記ジョブの処理数が増加している場合に前記スループットが向上していると確認し、
前記スケールイン指示手段による指示に基づき前記タスクを削減させてジョブを処理する前記特定のジョブ処理装置におけるジョブの処理数を、前記タスクの削減前と規定時間後とにおいて比較し、前記タスクの削減前よりも前記ジョブの処理数が減少している場合に前記スループットが低下していると確認する
ことを特徴とする請求項1乃至7のいずれか一項に記載の情報処理システム。 - 前記監視手段は、スケールアウト対象のジョブ処理装置が存在しない場合に、前記ユーザ装置に対して前記ジョブ処理装置の追加を促す確認画面を送信する
ことを特徴とする請求項1乃至8のいずれか1項に記載の情報処理システム。 - 前記スケールアウト指示手段および前記スケールイン指示手段は、前記確認手段が前記ジョブ処理装置を規定時間の間監視している間は、全てのジョブ処理装置のタスクのスケールアウトおよびスケールインを指示しない
ことを特徴とする請求項1乃至9のいずれか一項に記載の情報処理システム。 - ユーザ装置からジョブ処理要求を受付ける管理装置にジョブを問合せ、前記問合せに応じて取得したジョブを処理する複数のジョブ処理装置と通信可能な監視装置であって、
特定のジョブ処理装置が規定数を超えるジョブを処理している場合、前記複数のジョブ処理装置のうちいずれか一つのジョブ処理装置のタスクを増加させるスケールアウトを指示するスケールアウト指示手段と、
前記スケールアウト指示手段による指示に基づきタスクを増加させてジョブを処理する前記ジョブ処理装置を規定時間の間監視し、スループットが向上されているか否かを確認する確認手段と、
前記確認手段による確認の結果、スループットが向上されていないと確認された場合、増加された前記タスクを削減するスケールインを指示するスケールイン指示手段と、を有する
ことを特徴とする監視装置。 - ユーザ装置からジョブ処理要求を受付ける管理装置と、前記管理装置にジョブを問合せ、前記問合せに応じて取得したジョブを処理する複数のジョブ処理装置と、監視装置とを備える情報処理システムの制御方法であって、
前記監視装置が、前記情報処理システム上で動作する前記複数のジョブ処理装置の動作状況を監視する監視工程と、
前記監視装置が、前記監視工程において、特定のジョブ処理装置が規定数を超えるジョブを処理していることが監視されたことに応じて、前記複数のジョブ処理装置のうちいずれか一つのジョブ処理装置のタスクを増加させるように指示するスケールアウト指示工程と、
前記スケールアウト指示工程における指示に基づきタスクを増加させてジョブを処理する前記ジョブ処理装置を規定時間の間監視し、タスクを増加させた前記ジョブ処理装置においてスループットが向上されているか否かを確認する確認工程と、
前記確認工程における確認の結果、前記スループットが向上されていないと確認された場合、増加された前記タスクを削減するように指示するスケールイン指示工程と、を有する
ことを特徴とする制御方法。 - 請求項12に記載の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013018219A JP2014149690A (ja) | 2013-02-01 | 2013-02-01 | 情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013018219A JP2014149690A (ja) | 2013-02-01 | 2013-02-01 | 情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014149690A true JP2014149690A (ja) | 2014-08-21 |
Family
ID=51572611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013018219A Pending JP2014149690A (ja) | 2013-02-01 | 2013-02-01 | 情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014149690A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416355B2 (en) | 2018-09-20 | 2022-08-16 | Fujifilm Business Innovation Corp. | Relay system |
-
2013
- 2013-02-01 JP JP2013018219A patent/JP2014149690A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416355B2 (en) | 2018-09-20 | 2022-08-16 | Fujifilm Business Innovation Corp. | Relay system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5882837B2 (ja) | 情報処理システム、画像形成装置、制御方法およびコンピュータプログラム | |
US8970876B2 (en) | Printing system, cloud computing system, printing system control method, and storage medium | |
US8717600B2 (en) | Network system, network system control method, and storage medium | |
US8836974B2 (en) | Image processing system and control method for managing a job related to image processing in a distributed environment | |
JP6364738B2 (ja) | 情報処理システム、情報処理装置、プログラム及び処理実行方法 | |
JP6383175B2 (ja) | 情報処理装置、方法、プログラム、及び情報処理システム | |
JP5966270B2 (ja) | システム及び機器管理プログラム | |
JP6732508B2 (ja) | データを保存するシステム、サーバー、方法、及びプログラム | |
JP6157181B2 (ja) | サーバーシステム、その制御方法、およびそのプログラム | |
JP2011253337A (ja) | クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム | |
JP6071482B2 (ja) | 情報処理装置、情報処理システム、それらの制御方法、及びプログラム | |
JP2020140439A (ja) | 印刷管理プログラム、印刷管理方法、および印刷管理装置 | |
US20110299130A1 (en) | Cloud computing system, document processing method, and storage medium | |
US8873089B2 (en) | Printing system, print management apparatus, print control method, and storage medium | |
JP6277726B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、及びプログラム | |
JP2014167679A (ja) | ジョブ実行制御システム、ジョブ実行システム、ジョブ実行制御方法及びプログラム | |
JP2015158721A (ja) | 情報処理システム、情報処理装置、情報処理方法、及びプログラム | |
JP2014149690A (ja) | 情報処理システム、監視装置、情報処理システムの制御方法およびコンピュータプログラム | |
JP2014063386A (ja) | 印刷管理サーバ、印刷管理サーバの制御方法、及び、プログラム | |
JP5974726B2 (ja) | プレビュー画面表示制御装置およびプログラム | |
JP2013149004A (ja) | 印刷試行装置、印刷試行プログラム、印刷試行方法、印刷制御サーバー | |
JP2014013628A (ja) | 遠隔管理装置、提案情報生成方法、及びプログラム | |
JP6413219B2 (ja) | 情報処理システム、変換送信システム及び変換送信方法 | |
JP5298971B2 (ja) | 遠隔管理システム | |
JP6477929B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、及びプログラム |