JP6897136B2 - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP6897136B2
JP6897136B2 JP2017023637A JP2017023637A JP6897136B2 JP 6897136 B2 JP6897136 B2 JP 6897136B2 JP 2017023637 A JP2017023637 A JP 2017023637A JP 2017023637 A JP2017023637 A JP 2017023637A JP 6897136 B2 JP6897136 B2 JP 6897136B2
Authority
JP
Japan
Prior art keywords
state
processing
processing unit
standby state
information
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.)
Active
Application number
JP2017023637A
Other languages
English (en)
Other versions
JP2018129003A (ja
Inventor
道村 唯夫
唯夫 道村
森田 雅夫
雅夫 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2017023637A priority Critical patent/JP6897136B2/ja
Priority to US15/806,881 priority patent/US10503540B2/en
Publication of JP2018129003A publication Critical patent/JP2018129003A/ja
Application granted granted Critical
Publication of JP6897136B2 publication Critical patent/JP6897136B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、情報処理装置及びプログラムに関する。
クラウドコンピューティングのように、サービス提供者が有するプロセッサやメモリ等のリソースを、例えば課金方式等の形式でユーザに使用させる技術が知られている。このようなサービスは、一般的に、処理に用いられるリソース(例えば処理部(仮想マシン、VM))を必要に応じて自動的に増減する、いわゆるオートスケーリング機能を備えている。一般的に、処理部の数を増加させる処理を「スケールアウト」と称し、処理部の数を減少させる処理を「スケールイン」と称している。
特許文献1には、仮想マシン間でのタスクの切り替えに関する技術が開示されている。特許文献2には、社内のサーバ環境が高負荷になった場合、事前に契約した社外のクラウドサービスを利用する技術が開示されている。特許文献3には、ライブマイグレーションとトラフィックエンジニアリングを組み合わせることで、特定の環境下においてクラウドサービス全体の性能低下を抑制する技術が開示されている。
特表2009−536762号公報 特表2014−532354号公報 特開2013−179456号公報
一般的に、ユーザから処理の要求を受け付けた場合、処理部を起動させ(処理部の状態を停止状態から起動状態に遷移させ)、処理の実行が完了した場合、処理部を停止させる(処理部の状態を起動状態から停止状態に遷移させる)。ユーザ毎に処理部で使用されるパラメータが異なる場合があるため、あるユーザが要求した処理を実行するために処理部を起動させたとしても、その処理部によって、別のユーザが要求した処理を実行できるとは限らない。そのため、通常は、処理の実行が完了した場合、処理部を停止させ(スケールイン)、処理の要求を新たに受け付けた場合に、処理部を起動させる(スケールアウト)。しかし、この場合、処理部の起動と停止(スケールアウトとスケールイン)を繰り返すことになるため、処理の効率が低下する。つまり、ユーザから処理の要求を受け付けたタイミングで処理部を起動し始めるので、その起動に要する時間分、処理の実行が遅れる。
本発明の目的は、処理の要求を受け付けたときに処理部を起動し始める場合と比べて、処理部による処理の実行開始を早めることにある。
請求項1に記載の発明は、データを処理する処理部の起動を制御する制御手段と、処理部の状態に関する情報を記憶する記憶手段と、を有し、前記制御手段は、複数の処理部の起動を制御する手段であり、複数の処理部の中の少なくとも1つの処理部の状態を停止状態から起動状態の間の待機状態に予め遷移させ、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報と、待機状態の処理部の状態に関する情報と、を用いて、処理部の状態を待機状態から起動状態に遷移させ、優先度の高いユーザからの処理要求を優先度の低いユーザからの処理要求よりも優先的に待機状態の処理部に割り当てる、ことを特徴とする情報処理装置置である。
請求項2に記載の発明は、前記制御手段は、処理を実行するための機能を処理部に予め割り当てることで、処理部の状態を停止状態から待機状態に予め遷移させておき、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報を待機状態の処理部に設定することで、処理部の状態を待機状態から起動状態に遷移させる、ことを特徴とする請求項1に記載の情報処理装置である。
請求項3に記載の発明は、前記制御手段は、処理部に割り当てられた機能が更新された場合、待機状態の処理部の状態を停止状態に遷移させる、ことを特徴とする請求項2に記載の情報処理装置である。
請求項4に記載の発明は、前記制御手段は、共通の処理を利用する複数のユーザを同一のグループに分類し、同一のグループ毎に処理部を割り当て、各グループの処理部に、共通の処理を実行するための機能を割り当てて処理部の状態を停止状態から待機状態に遷移させる、ことを特徴とする請求項2又は請求項3に記載の情報処理装置である。
請求項5に記載の発明は、前記制御手段は、複数のユーザの間で、利用される処理が完全に一致する場合、当該複数のユーザを同一のグループに分類する、ことを特徴とする請求項4に記載の情報処理装置である。
請求項6に記載の発明は、前記制御手段は、複数のユーザの間で、利用される処理が部分的に一致する場合、当該複数のユーザを同一のグループに分類し、部分的に一致する処理を実行するための処理部を当該同一のグループに割り当て、部分的に一致する処理を実行するための機能をその処理部に割り当てて処理部の状態を停止状態から待機状態に遷移させる、ことを特徴とする請求項4に記載の情報処理装置である。
請求項に記載の発明は、前記制御手段は、優先度の高いユーザからの処理要求を待機状態の処理部に割り当て、優先度の低いユーザからの処理要求を停止状態の処理部に割り当てる、ことを特徴とする請求項1から請求項6のいずれか一項に記載の情報処理装置である。
請求項に記載の発明は、利用可能な処理の数が多いユーザほど、優先度が高くなる、ことを特徴とする請求項1から請求項7のいずれか一項に記載の情報処理装置である。
請求項に記載の発明は、データを処理する処理部の起動を制御する制御手段と、処理部の状態に関する情報を記憶する記憶手段と、を有し、前記制御手段は、複数の処理部の起動を制御する手段であり、負荷の大きい処理を実行するための機能を負荷の小さい処理を実行するための機能よりも優先的に処理部に予め割り当てることで、その処理部の状態を停止状態から起動状態の間の待機状態に予め遷移させ、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報を待機状態の処理部に設定することで、処理部の状態を待機状態から起動状態に遷移させる、ことを特徴とする情報処理装置である。
請求項1に記載の発明は、負荷の大きい処理は画像処理を含む処理であり、負荷の小さい処理はユーザのログイン処理を含む処理である、ことを特徴とする請求項に記載の情報処理装置である。
請求項1に記載の発明は、前記制御手段は、要求された処理の実行が完了した処理部の状態を起動状態から待機状態に遷移させる、ことを特徴とする請求項1から請求項1のいずれか一項に記載の情報処理装置である。
請求項1に記載の発明は、前記制御手段は、予め定められた上限数の処理部の状態が既に待機状態に遷移されている場合、新たに処理の実行が完了した処理部の状態を起動状態から停止状態に遷移させる、ことを特徴とする請求項1に記載の情報処理装置である。
請求項1に記載の発明は、コンピュータを、データを処理する処理部の起動を制御する起動制御手段、処理部の状態に関する情報を記憶手段に記憶させる記憶制御手段、として機能させ、前記起動制御手段は、複数の処理部の起動を制御する手段であり、複数の処理部の中の少なくとも1つの処理部の状態を停止状態から起動状態の間の待機状態に予め遷移起動させ、前記記憶制御手段は、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、前記起動制御手段は、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報と、待機状態の処理部の状態に関する情報と、を用いて、処理部の状態を待機状態から起動状態に遷移させ、優先度の高いユーザからの処理要求を優先度の低いユーザからの処理要求よりも優先的に待機状態の処理部に割り当てる、ことを特徴とするプログラムである。
請求項14に記載の発明は、コンピュータを、データを処理する処理部の起動を制御する起動制御手段、処理部の状態に関する情報を記憶手段に記憶させる記憶制御手段、として機能させ、前記起動制御手段は、複数の処理部の起動を制御する手段であり、負荷の大きい処理を実行するための機能を負荷の小さい処理を実行するための機能よりも優先的に処理部に予め割り当てることで、その処理部の状態を停止状態から起動状態の間の待機状態に予め遷移させ、前記記憶制御手段は、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、前記起動制御手段は、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報を待機状態の処理部に設定することで、処理部の状態を待機状態から起動状態に遷移させる、ことを特徴とするプログラムである。
請求項1,2,1に記載の発明によれば、処理の要求を受け付けたときに処理部を起動し始める場合と比べて、処理部による処理の実行開始が早くなる。
請求項3に記載の発明によれば、機能が更新された後の処理の実行開始が早くなる。
請求項4−6に記載の発明によれば、各ユーザに待機状態の処理部を予め割り当てる場合と比べて、待機状態の処理部の数を減らせる。
請求項1,,8に記載の発明によれば、優先度の高いユーザからの要求に係る処理の実行開始が早くなる。
請求項,10,14に記載の発明によれば、負荷の大きい処理の実行開始が早くなる。
請求項1に記載の発明によれば、処理の実行が完了した処理部の状態を停止状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
請求項1に記載の発明によれば、処理部を待機状態に維持する場合にコストが発生する場合において、待機状態の処理部の上限数を定めない場合と比べて、そのコストを抑えることが可能となる。
本実施形態に係る情報処理システムの一例を示す図である。 VM管理テーブルの一例を示す図である。 本実施形態に係る情報処理システムの一例を示す図である。 各テナントが利用可能な処理を示す図である。
図1を参照して、本発明の実施形態に係る情報処理システムについて説明する。図1には、本実施形態に係る情報処理システムの一例が示されている。
本実施形態に係る情報処理システム10は、処理を実行するというサービスをユーザに提供する。情報処理システム10においては、一例として、複数のユーザ(テナント)がリソースを共有するマルチテナント方式が採用されている。処理は、例えば、画像処理(画像処理ジョブ)、印刷に関する処理(印刷ジョブ)、スキャンに関する処理(スキャンジョブ)、等である。情報処理システム10は、これらの処理の中の少なくとも1つの処理を実行する機能を備えていてもよい。もちろん、これら以外の処理が情報処理システム10によって実行されてもよい。
画像処理ジョブは、例えば、複数の図面(画像)の差分を演算する図面差分処理、OCR(Optical character recognition)処理等の文字認識処理、等である。情報処理システム10は、例えば、図示しないネットワーク等の通信経路を介して、PC(パーソナルコンピュータ)やモバイル端末等の端末装置12から画像データを受け取り、その画像データに対して画像処理を適用し、画像処理の結果を端末装置12に送る。
印刷ジョブは、ユーザが指定した印刷対象の文書データをプリンタで印刷するために行うデータ処理である。印刷ジョブは、例えば、文書データを印刷データに変換する処理、変換結果の印刷データをユーザによって指定されたプリンタに送信する処理、文書データを画像に変換して画像から情報を抽出する処理、処理結果を他のサーバ等へ転送する処理、等を含む。情報処理システム10は、例えば、通信経路を介して端末装置12から文書データを受け取り、その文書データを図示しないプリンタで取扱可能なデータ形式の印刷データに変換し、その印刷データを通信経路経由でプリンタに提供して印刷を実行させる。
スキャンジョブは、スキャン(画像読取処理)によって得られた画像に対するデータ処理や画像の転送処理等を含むジョブである。この場合、端末装置12は、スキャナ、ファクシミリ装置、複合機(プリンタ、スキャナ、コピー機、ファクシミリ装置等の機能を併せ持つ装置)等であってもよい。
情報処理システム10は、1又は複数のVM(Virtual Machine:仮想マシン)を含む。図1に示す例では、情報処理システム10はVM群14を含み、VM群14は、6個のVM(VM14a,14b,14c,14d,14e,14f)を含む。もちろん、この数は一例に過ぎない。VMは、ユーザからの指示に対応する処理(例えば、画像処理ジョブや印刷ジョブやスキャンジョブ等)を実行する。VMは、例えば、IaaS(Infrastructure as a Service)プロバイダから提供されるインフラ上に構築されるものであってよい。
VMは、割り当てられるジョブの他に、ユーザからの要求を処理するユーザインターフェース処理も実行する。ユーザインターフェース処理は、情報処理システム10に対するユーザの接続(ログイン)の可否を判定するログイン処理、ジョブについてのパラメータ(例えば印刷部数等の印刷属性)の設定を受け付ける処理、ジョブの実行開始要求を受け付ける処理、ジョブの状態確認の要求を受け付けてジョブの状態情報をユーザに提供する処理、等を含む。
ユーザ振り分け部16は、ユーザ(端末装置12)からの処理要求をいずれかのVMに振り分ける(割り当てる)機能を備えている。
テナント管理部18は、情報処理システム10が提供するサービスを利用する各テナント(各ユーザ)に関する情報(テナント管理情報28)を作成し、各テナントを管理する機能を備えている。テナント管理情報28はストレージ22に記憶される。テナント管理情報28は、例えば、各テナントを一意に識別する情報、各テナント(各ユーザ)が利用可能な処理(例えば画像処理ジョブ、印刷ジョブ、スキャンジョブ等)を示す情報、各テナント(各ユーザ)の多重度を示す情報、等を含む。
テナントが利用可能な処理は、例えば、サービスの利用契約等に従って予め定められる。例えば、テナントA(ユーザA)が、情報処理システム10が提供するサービスの利用契約を締結しており、その利用契約によって、テナントAが利用可能な処理として図面差分処理が定められているものとする。この場合、テナントAは、情報処理システム10が提供する図面差分処理を利用することが可能となる。
多重度は、同時実行可能な処理の数、つまり、並列的に実行可能な処理の数である。同時実行可能な処理の数は、例えばサービスの利用契約等に従って、テナント毎(ユーザ毎)に予め定められる。例えば、サービスの利用契約によって、テナントAの多重度が「3」に定められているものとする。この場合、テナントAは、3つの処理が並列的に実行されるように要求することができる。例えば、テナントAから要求された2つのジョブがVMによって実行中の場合において、テナントAから別のジョブ(3つ目のジョブ)の実行要求が与えられた場合、当該別のジョブ(3つ目のジョブ)もVMによって実行される。テナントAから要求された3つのジョブが実行中の場合において、テナントAから別のジョブ(4つ目のジョブ)の実行要求が与えられた場合、当該別のジョブ(4つ目のジョブ)は実行されず、実行中の3つのジョブの中で少なくとも1つのジョブの実行が完了すると、4つ目のジョブが実行される。
VM制御部20は、各VMを制御する機能を備えている。VM制御部20は、例えば、停止状態のVMを起動させたり、起動状態(すなわち稼働状態)のVMを停止させたりする。また、VM制御部20は、VMの状態を停止状態から起動状態までの間の待機状態(Ready状態)まで予め遷移させ、待機状態のVMの状態に関する情報をストレージ22に記憶させる。待機状態は、処理を実行するための機能がVMに割り当てられている状態であって、処理を要求したユーザの固有の設定情報がVMに設定されていない状態である。具体的には、待機状態は、処理を実行するためのプログラムがロードされているが、ユーザの固有のパラメータがVMに設定されていない状態である。VM制御部20は、例えば、待機状態のVMの状態に関する情報として、待機状態のVMのスナップショットを作成し、そのスナップショットをストレージ22に記憶させる。スナップショットは、例えば、ある時点におけるVMを構成する情報(例えば、メモリの情報、ディスクイメージ、レジスタの情報、ファイル、ディレクトリ、データベースファイル、ソースコード等)を抜き出したものである。VM制御部20は、テナント(ユーザ)から処理要求を受けた場合、当該ユーザの固有の設定情報(パラメータ)と、待機状態のVMの状態に関する情報(スナップショット)と、を用いて、VMの状態を待機状態から起動状態へ遷移させる。つまり、VM制御部20は、待機状態のVM(処理を実行するためのプログラムがロードされた状態のVM)に、ユーザの固有の設定情報(パラメータ)をマウントすることで、VMを起動させる。これにより、当該ユーザ固有の処理を提供するVMが構築される。なお、例えば、ユーザ振り分け部16とVM制御部20によって、制御手段、起動制御手段及び記憶制御手段が構成される。
例えば、ユーザIDを入力するための画面を提供するという処理に関して、テナント毎(ユーザ毎)に、その画面に表示される情報が異なる場合がある。例えば、あるテナントに係る処理においては、ユーザIDとして文字列「社員ID」が画面上に表示され、別のテナントに関する処理においては、ユーザIDとして文字列「会員ID」が画面上に表示される場合がある。ユーザIDを入力するための画面を表示するという処理を実行するためのプログラムがロードされた状態のVMが、待機状態のVMである。文字列「社員ID」や文字列「会員ID」が、ユーザ固有のパラメータ(設定情報)に相当する。テナントAの固有のパラメータ(社員ID)が待機状態のVMに適用されると、そのVMの状態は待機状態から起動状態に遷移する。起動したVMは、ユーザIDを入力するための画面を提供するという処理を実行する。テナントAの固有のパラメータが適用された場合、ユーザIDの文字列として文字列「社員ID」が画面上に表示され、その社員IDを入力するための入力欄がその画面上に表示される。テナントBの固有のパラメータ(会員ID)が待機状態のVMに適用された場合も同様に、VMは起動し、ユーザIDを入力するための画面を提供するという処理を実行する。この場合、ユーザIDの文字列として文字列「会員ID」が画面上に表示され、その会員IDを入力するための入力欄がその画面上に表示される。このように、複数のテナント間において、処理(例えば、ユーザIDを入力するための画面を提供するという処理)が共通する場合であっても、固有のパラメータ(例えば文字列「社員ID」や「会員ID」等)が互いに異なる場合がある。ユーザの固有のパラメータを待機状態のVMに適用することで、当該ユーザ固有の処理が提供される。
VMがユーザ(端末装置12)から受ける処理要求は、例えば、ログイン要求、ジョブ実行要求、ジョブ状態確認要求、等を含む。
端末装置12からログイン要求を受けると、ユーザ振り分け部16からそのログイン要求を割り当てられたVMが、端末装置12から受け取ったパスワード等のユーザ認証情報を用いてユーザのログインを認めるか否かを判定する。ログインが認められると、ユーザは情報処理システム10に対してログインしている状態となる。ログイン状態のユーザからの要求は、ログインを受け付けたVMが受け取って処理する。すなわち、ユーザは、そのVMにログインしたと捉えることができる。
例えば、印刷ジョブが実行される場合、ログイン状態においては、ユーザ(端末装置12)からそのVMに印刷データや印刷パラメータの入力が行われる。すると、当該VMは、一意なジョブ識別子を発行し、それら入力された情報をそのジョブ識別子に対応付けて、ストレージ22に保存する。端末装置12からVMにジョブ実行要求が入力されると、そのVMは、そのジョブ識別子をキュー(印刷待ち行列)の末尾に追加する。各VMは、それぞれ次の印刷ジョブを受け入れ可能になると、そのキューの先頭の印刷ジョブを受け入れる。ユーザは、キューに入れられた印刷ジョブの状態を確認したい場合、ジョブ状態の確認を要求する。これに応じて、端末装置12から情報処理システム10にジョブ状態確認要求が送られる。この要求を受け取った情報処理システム10内のVMは、その要求の対象である印刷ジョブの現在の状態を示す情報を端末装置12に返す。
ユーザが明示的にログアウトを要求した場合、又は、操作をしない状態が予め定められた時間続いてタイムアウトとなった場合、ユーザのログイン状態は解除される。ログイン解除の後、ユーザが情報処理システム10に対して要求を行う場合は、再度ログインを行う必要がある。例えば、ユーザがログインしてジョブを投入し、ジョブ実行要求を行った後、ログインが解除され、その後、そのユーザがそのジョブの状態を知りたい場合、そのユーザは再びログイン要求を行って情報処理システム10にログインした上で、ジョブ確認要求を行うことになる。
なお、ユーザ振り分け部16、テナント管理部18及びVM制御部20は、仮想マシン上に構築されたものであってもよい。
ストレージ22は、VM群14、ユーザ振り分け部16、テナント管理部18及びVM制御部20の間で共有される記憶装置である。ストレージ22には、VM管理情報24、スナップショット管理情報26、テナント管理情報28、パラメータ管理情報30及びジョブ管理情報32が記憶されている。VM群14、ユーザ振り分け部16、テナント管理部18及びVM制御部20は、これらの情報を参照しながら処理を実行する。
VM管理情報24は、各VMを管理するための情報であり、例えば、各VMが実行中のジョブを示す情報等を含む。VM管理情報24においては、例えば、VM毎に、VMを一意に識別するVM識別子、そのVMが実行中のジョブを示す情報、等が互いに対応付けられている。
スナップショット管理情報26は、各VMの状態に関する情報(スナップショット)を管理するための情報である。スナップショット管理情報26においては、例えば、VM毎に、VMを一意に識別するVM識別子と、そのVMの状態に関する情報(スナップショット)と、が互いに対応付けられている。例えば、VM制御部20は、VMの状態を停止状態から待機状態まで遷移させ、その待機状態のVMのスナップショットを作成する。そのスナップショットはスナップショット管理情報26に含まれてストレージ22に記憶される。
テナント管理情報28は、上述したように、各テナント(ユーザ)に関する情報である。テナント管理情報28においては、例えば、テナント毎(ユーザ毎)に、テナント(ユーザ)を一意に識別するユーザ識別子、そのテナントが利用可能な処理(例えば画像処理ジョブ、印刷ジョブ、スキャンジョブ等)を示す情報、そのテナントの多重度を示す情報、等が互いに対応付けられている。
パラメータ管理情報30は、VMに適用される設定情報(パラメータ)を管理するための情報である。パラメータ管理情報30においては、例えば、テナント毎(ユーザ毎)に、テナント(ユーザ)を一意に識別するユーザ識別子と、そのテナントの固有の設定情報(パラメータ)と、が互いに対応付けられている。各テナントの設定情報は、例えば、画像処理パラメータ、処理結果、ログ、ユーザ情報、ユーザインターフェース用の情報、等を含む。各テナントの設定情報は予め作成されて、ストレージ22に予め記憶される。
ジョブ管理情報32は、処理(ジョブ)を管理するための情報である。ジョブ管理情報32においては、例えば、ジョブ毎に、ジョブ(例えば画像処理ジョブ、印刷ジョブ、スキャンジョブ等)を一意に識別するジョブ識別子、そのジョブを投入したテナント(ユーザ)を一意に識別するユーザ識別子、そのジョブで使用されるデータの格納場所を示す情報、そのジョブの現在の状況を示す情報、そのジョブの負荷(例えば、VMがジョブの実行を完了するのに要する時間)を示す情報、等が互いに対応付けられている。
以下、図2を参照して、VM管理情報24について詳しく説明する。図2には、VM管理情報24の一例としてのVM管理テーブルが示されている。
VM管理テーブルにおいては、例えば、VM毎に、VMを一意に識別するVM識別子、そのVMの状態(起動、停止、待機)、そのVMが同時に受付可能なユーザ数、そのVMに現在ログインしているユーザ数(ログインユーザ数)、現在ログインしているユーザのユーザ識別子のリスト(ログインユーザ)、そのVMが並列的に実行可能な最大ジョブ数、及び、そのVMが現在実行しているジョブのジョブ識別子のリスト(実行中ジョブ)が、互いに対応付けられている。
最大ジョブ数と最大ユーザ数は、各VMの処理能力に応じて予め定められた値である。VMの状態として、起動状態、停止状態及び待機状態が設けられている。起動状態とは、VMが起動済みである状態、すなわち、ジョブやユーザインターフェース処理を実行可能な状態である。停止状態とは、VMが停止している状態である。停止状態のVMがジョブやユーザインターフェース処理を実行可能になるには、そのVMを起動させる起動処理が必要であり、この起動処理にはある程度の時間がかかる。待機状態とは、起動状態と停止状態の中間の状態(アイドル状態)であり、いわば起動又は停止の準備段階である。より詳しく説明すると、待機状態とは、上述したように、処理を実行するためのプログラムがロードされているが、ユーザの固有のパラメータがVMに設定されていない状態である。待機状態ではVMは停止していないが、新たなジョブは受け入れないし、ユーザインターフェース処理も実行しない。これらの処理を実行するには、VMは起動状態に復帰する必要がある。ただし、待機状態のVMは、まだ停止していないので、停止した状態から起動状態に復帰する場合と比べて、起動に要する時間が削減される。
VM管理テーブル(VM管理情報24)は、ユーザ振り分け部16、VM制御部20及び各VMによって随時更新される。例えば、VM制御部20がVMの状態を遷移させた場合、VM管理テーブル内のそのVMの状態が遷移後の値に更新される。ユーザ振り分け部16がユーザからのログイン要求をいずれかのVMに振り分けた場合、VM管理テーブル内のそのVMのログインユーザ数に1が加算される。VMがログイン処理を実行してユーザを認証した場合、そのユーザ識別子がログインユーザとしてVM管理テーブルに追加される。VMにログイン中のユーザがログアウトした場合、そのVMのログインユーザ数が1つ減算され、そのユーザのユーザ識別子がVM管理テーブルから削除される。VMがキューから新たなジョブを取得して実行を開始すると、そのジョブのジョブ識別子が実行中のジョブの欄に追加される。VMがそのジョブの実行を完了すると、実行中ジョブの欄からそのジョブのジョブ識別子が削除される。
以下、情報処理システム10について更に詳しく説明する。
図3を参照して、VMにテナント(ユーザ)が振り分けられた状態の情報処理システム10について説明する。図3には、情報処理システム10の一例が示されている。図3に示す例では、VM14a,14bにテナントA(ユーザB)が既に振り分けられており、VM14c,14d,14eにテナントB(ユーザB)が既に振り分けられている。VM14fは、いずれのテナントにも振り分けられていない。
VM制御部20は、VM14a,14bの状態を停止状態から待機状態まで遷移させる。つまり、VM制御部20は、テナントAが利用可能な処理を実行するためのプログラムをVM14a,14bにロードすることで、VM14a,14bの状態を待機状態に遷移させる。これにより、VM14a,14bに、テナントAが利用可能な処理を実行するための機能が割り当てられる。また、VM制御部20は、待機状態のVM14a,14bのそれぞれのスナップショットを作成する。VM14a,14bのそれぞれのスナップショットは、スナップショット管理情報26に含まれてストレージ22に記憶される。
VM14a,14bは、異なる処理を実行してもよいし、同じ処理を実行してもよい。VM14a,14bが異なる処理を実行する場合、VM制御部20は、VM14a,14bのそれぞれに別々のプログラムをロードする。例えば、テナントAが図面差分処理と文字認識処理を利用することができる場合、VM制御部20は、例えば、VM14aに図面差分処理用のプログラムをロードすることでVM14aの状態を待機状態に遷移させ、VM14bに文字認識処理用のプログラムをロードすることでVM14bの状態を待機状態に遷移させる。これにより、図面差分処理を実行するための機能がVM14aに割り当てられ、文字認識処理を実行するための機能がVM14bに割り当てられる。VM14a,14bが同じ処理を実行する場合、VM制御部20は、VM14a,14bに同じプログラムをロードすることでVM14a,14bの状態を待機状態に遷移させる。
VM制御部20は、テナントAから処理の要求を受けると、その処理に関するテナントAの固有の設定情報(パラメータ)をストレージ22から取得し、要求された処理を実行するための機能が割り当てられたVM(VM14a又はVM14b)のスナップショットをストレージ22から取得し、テナントAの固有の設定情報とスナップショットを用いて、そのVMの状態を待機状態から起動状態へ遷移させる。つまり、VM制御部20は、テナントAの固有の設定情報を待機状態のVM(VM14a又はVM14b)に設定し(マウントし)、そのVMの状態を待機状態から起動状態に遷移させる。これにより、そのVMは起動し、自身に割り当てられた処理を実行する。
テナントBについても同様であり、VM制御部20は、テナントBが利用可能な処理を実行するためのプログラムをVM14c,14d,14eにロードすることで、14c,14d,14eの状態を待機状態から起動状態に遷移させる。これにより、VM14c,14d,14eに、テナントBが利用可能な処理を実行するための機能が割り当てられる。また、VM制御部20は、待機状態のVM14c,14d,14eのそれぞれのスナップショットを作成する。VM14c,14d,14eのそれぞれのスナップショットは、スナップショット管理情報26に含まれてストレージ22に記憶される。
VM制御部20は、テナントBから処理の要求を受けると、その処理に関するテナントBの固有の設定情報(パラメータ)をストレージ22から取得し、要求された処理を実行するための機能が割り当てられたVM(VM14c、VM14d又はVM14e)のスナップショットをストレージ22から取得し、テナントBの固有の設定情報とスナップショットを用いて、そのVMの状態を待機状態から起動状態に遷移させる。つまり、VM制御部20は、テナントBの固有の設定情報を待機状態のVM(VM14c、VM14d又はVM14e)に設定し(マウントし)、そのVMの状態を待機状態から起動状態に遷移させる。これにより、そのVMは起動し、自身に割り当てられた処理を実行する。
なお、テナントが振り分けられていないVM14fは停止している。VM14fにテナントが振り分けられた場合、VM制御部20は、そのテナントが利用可能な処理を実行するための機能をVM14fに割り当てて、VM14fの状態を停止状態から待機状態に遷移させ、待機状態のVM14fのスナップショットを作成する。
以下、図4を参照して、具体例を挙げて情報処理システム10について詳しく説明する。図4には、各テナントが利用可能な処理の一例が示されている。
例えば、テナントA,B(ユーザA,B)は、画像処理ジョブの一例として、図面差分処理を利用することができ、テナントC,D(ユーザC,D)は、画像処理ジョブの一例として、図面差分処理と文字認識処理を利用することができるものとする。利用可能な処理は、例えば、テナント毎(ユーザ毎)に、サービスの利用契約等によって予め定められる。各テナントが利用可能な処理を示す情報は、上述したテナント管理情報28に含まれてストレージ22に予め記憶されている。
また、各テナントの固有の設定情報(パラメータ)は、パラメータ管理情報30に含まれてストレージ22に予め記憶されている。例えば、図面差分処理に関する設定情報(パラメータ)として、テナントA(ユーザA)の固有の設定情報、テナントB(ユーザB)の固有の設定情報、テナントC(ユーザC)の固有の設定情報、及び、テナントD(ユーザD)の固有の設定情報が、パラメータ管理情報30に含まれてストレージ22に予め記憶されている。同様に、文字認識処理に関する設定情報(パラメータ)として、テナントCの固有の設定情報、及び、テナントDの固有の設定情報が、パラメータ管理情報30に含まれてストレージ22に予め記憶されている。
例えば、ユーザ振り分け部16は、テナントAをVM14aに振り分け、テナントBをVM14bに振り分け、テナントCをVM14c,14dに振り分け、テナントDをVM14e,14fに振り分けたものとする。
VM制御部20は、VM14a,14b,14c,14d,14e,14fの状態を停止状態から待機状態まで遷移させ、各VMのスナップショットを作成してストレージ22に記憶させる。例えば、VM制御部20は、図面差分処理を実行するためのプログラムをVM14a,14b,14c,14eにロードすることで、VM14a,14b,14c,14eの状態を停止状態から待機状態に遷移させ、VM14a,14b,14c,14eのそれぞれのスナップショットを作成してストレージ22に記憶させる。つまり、VM制御部20は、図面差分処理を実行するための機能をVM14a,14b,14c,14eに割り当てて、VM14a,14b,14c,14eの状態を停止状態から待機状態に遷移させ、VM14a,14b,14c,14eのそれぞれのスナップショットを作成してストレージ22に記憶させる。また、VM制御部20は、文字認識処理を実行するためのプログラムをVM14d,14fにロードすることで、VM14d,14fの状態を停止状態から待機状態に遷移させ、VM14d,14fのそれぞれのスナップショットを作成してストレージ22に記憶させる。つまり、VM制御部20は、文字認識処理を実行するための機能をVM14d,14fに割り当てて、VM14d,14fの状態を停止状態から待機状態に遷移させ、VM14d,14fのそれぞれのスナップショットを作成してストレージ22に記憶させる。
VM制御部20は、テナントAから図面差分処理の要求を受けると、図面差分処理に関するテナントAの固有の設定情報をストレージ22から取得し、テナントAが振り分けられたVM14aのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、VM14aの状態を待機状態から起動状態に遷移させる。つまり、VM制御部20は、テナントAの固有の設定情報を待機状態のVM14aに設定し(マウントし)、これにより、VM14aを起動させる。VM14aは、テナントAの固有の設定情報を用いて図面差分処理を実行することになる。その図面差分処理の実行が完了した場合、VM制御部20は、VM14aの状態を起動状態から待機状態に遷移させる。これにより、テナントAから次の図面差分処理の要求を受け付けたときに、VM14aの状態を停止状態から起動状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
VM制御部20は、テナントBから図面差分処理の要求を受けると、図面差分処理に関するテナントBの固有の設定情報をストレージ22から取得し、テナントBが振り分けられたVM14bのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、VM14bの状態を待機状態から起動状態に遷移させる。つまり、VM制御部20は、テナントBの固有の設定情報を待機状態のVM14bに設定し(マウントし)、これにより、VM14bを起動させる。VM14bは、テナントBの固有の設定情報を用いて図面差分処理を実行することになる。その図面差分処理の実行が完了した場合、VM制御部20は、VM14bの状態を起動状態から待機状態に遷移させる。これにより、テナントBから次の図面差分処理の要求を受け付けたときに、VM14bの状態を停止状態から起動状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
VM制御部20は、テナントCから図面差分処理の要求を受けると、図面差分処理に関するテナントCの固有の設定情報をストレージ22から取得し、テナントCが振り分けられたVM14cのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、VM14cの状態を待機状態から起動状態に遷移させる。つまり、VM制御部20は、テナントCの固有の設定情報を待機状態のVM14cに設定し(マウントし)、これにより、VM14cを起動させる。VM14cは、テナントCの固有の設定情報を用いて図面差分処理を実行することになる。その図面差分処理の実行が完了した場合、VM制御部20は、VM14cの状態を起動状態から待機状態に遷移させる。これにより、テナントCから次の図面差分処理の要求を受け付けたときに、VM14cの状態を停止状態から起動状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
VM制御部20は、テナントCから文字認識処理の要求を受けると、文字認識処理に関するテナントCの固有の設定情報をストレージ22から取得し、テナントCが振り分けられたVM14dのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、VM14dの状態を待機状態から起動状態に遷移させる。つまり、VM制御部20は、テナントCの固有の設定情報を待機状態のVM14dに設定し(マウントし)、これにより、VM14dを起動させる。VM14dは、テナントCの固有の設定情報を用いて文字認識処理を実行することになる。その文字認識処理の実行が完了した場合、VM制御部20は、VM14dの状態を起動状態から待機状態に遷移させる。これにより、テナントCから次の文字認識処理の要求を受け付けたときに、VM14dの状態を停止状態から起動状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
VM制御部20は、テナントDから図面差分処理の要求を受けると、図面差分処理に関するテナントDの固有の設定情報をストレージ22から取得し、テナントDが振り分けられたVM14eのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、VM14eの状態を待機状態から起動状態に遷移させる。つまり、VM制御部20は、テナントDの固有の設定情報を待機状態のVM14eに設定し(マウントし)、これにより、VM14eを起動させる。VM14eは、テナントDの固有の設定情報を用いて図面差分処理を実行することになる。その図面差分処理の実行が完了した場合、VM制御部20は、VM14eの状態を起動状態から待機状態に遷移させる。これにより、テナントDから次の図面差分処理の要求を受け付けたときに、VM14eの状態を停止状態から待機状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
VM制御部20は、テナントDから文字認識処理の要求を受けると、文字認識処理に関するテナントDの固有の設定情報をストレージ22から取得し、テナントDが振り分けられたVM14fのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、VM14fの状態を待機状態から起動状態に遷移させる。つまり、VM制御部20は、テナントDの固有の設定情報を待機状態のVM14fに設定し(マウントし)、これにより、VM14fを起動させる。VM14fは、テナントDの固有の設定情報を用いて文字認識処理を実行することになる。その文字認識処理の実行が完了した場合、VM制御部20は、VM14fの状態を起動状態から待機状態に遷移させる。これにより、テナントDから次の文字認識処理の要求を受け付けたときに、VM14fの状態を停止状態から起動状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
以上のように、本実施形態によると、VMの状態を待機状態に予め遷移させて、そのVMのスナップショットを作成しておき、テナント(ユーザ)から処理要求を受け付けた場合、そのテナントの固有の設定情報とスナップショットを用いてVMを起動させる。処理要求を受け付けたときにVMの状態が既に待機状態に遷移しているため、VMの状態を停止状態から待機状態へ遷移させる時間分(処理を実行するためのプログラムをロードする時間分)、起動に要する時間が削減される。これにより、処理要求を受け付けたときにVMを起動し始める場合(つまり、VMの状態を停止状態から起動状態に遷移させる場合)と比べて、VMによる処理の実行開始が早くなる。
また、要求された処理の実行が完了した場合、その処理を実行していたVMの状態を起動状態から待機状態に遷移させることで、次の処理を受け付けたときにVMの状態を停止状態から起動状態に遷移させる場合と比べて、次の処理の実行開始が早くなる。
なお、VMが起動している時間に応じて課金処理が行われる場合がある。この場合、処理を実行していないVMの状態を起動状態に維持した場合、サービスを利用していないにもかかわらず利用コストが増大することがある。これを回避するために、処理の実行が完了したVMの状態を起動状態から停止状態に遷移させる(スケールイン)ことが考えられる。しかし、VMを停止させた場合、そのVMの起動に時間を要するため、その時間の分、VMによる処理の実行開始が遅れる。本実施形態によると、VMの状態を待機状態に予め遷移させているため、起動に要する時間が削減され、その分、VMによる処理の実行開始が早くなる。
以下、変形例について説明する。
(変形例1)
VMに割り当てられている機能(プログラム)が更新された場合、VM制御部20は、VMの状態を待機状態から停止状態に遷移させ、そのVMについてのスナップショットをストレージ22から削除してもよい。機能(プログラム)が更新された場合、そのVMの待機状態は、更新後の機能を反映したものではなく、また、そのVMのスナップショットも、更新後の機能を反映したものではない。それ故、VM制御部20は、VMの状態を停止状態に遷移させる。これにより、VMがリセットされる。VM制御部20は、停止状態のVMに更新後の機能(更新後のプログラム)をロードして、そのVMの状態を停止状態から待機状態に遷移させてもよい。これにより、機能の更新がVMに反映される。
(変形例2)
VM制御部20は、予め定められた上限数のVMの状態を待機状態に予め遷移させ、上限数を超えるVMの状態を待機状態に予め遷移させずに停止状態に維持してもよい。上限数は、例えば、管理者等によって定められた任意の数であってもよいし、サービスを利用するテナントの数(ユーザの数)に基づいて決定された数(例えば、テナント数と同数、テナント数よりも多い数又は少ない数)であってもよいし、各テナントの多重度の総数に基づいて決定された数(例えば、総数と同数、総数よりも多い数又は少ない数)であってもよい。
VM制御部20は、テナントから処理の要求を受け付けると、停止状態のVMよりも待機状態のVMを優先的に利用する。つまり、VM制御部20は、テナントからの処理の要求に応じて、待機状態のVMを起動させて処理を実行させ、待機状態の全VMが処理を実行している場合、停止状態のVMを起動させて処理を実行させる。例えば、待機状態のVMの数に応じて課金される場合においては、待機状態のVMの上限数を設定することで、全VMの状態を待機状態に予め遷移させる場合と比べて、利用コストが削減される。また、全VMの状態を待機状態に予め遷移させた場合、利用されないにもかかわらず待機状態に維持されたVMが存在することがあり、この場合、利用していないにもかかわらず利用コストが発生する。待機状態のVMの上限数を設定することで、このようなコストが削減される。
また、VM制御部20は、処理の実行が完了したVMの状態を起動状態から待機状態に遷移させる。上限数のVMが既に待機状態に遷移している場合、VM制御部20は、新たに処理の実行が完了したVMの状態を起動状態から停止状態に遷移させる(スケールイン)。
例えば、各テナントの多重度の総数と同じ数が上限数として用いられ、その上限数のVMの状態が待機状態に予め遷移されている場合、各テナントから要求された全処理が、待機状態のVMに割り当てられることになる。それ故、いずれの処理もその実行開始が早くなる。
テナント数と同じ数が上限数として用いられ、各テナントに1つの待機状態のVMが割り当てられていてもよい。これにより、各テナントは、最低限、1つの待機状態のVMを利用することができる。
なお、VM制御部20は、VM群14に含まれるすべてのVMの状態を停止状態から待機状態に予め遷移させてもよい。
(変形例3)
VM制御部20は、共通の処理を利用する複数のテナント(複数のユーザ)を同一のグループに分類し、同一のグループ毎に1又は複数のVMを割り当ててもよい。この場合、VM制御部20は、各グループのVMに、当該共通の処理を実行するためのプログラムをロードすることで、当該共通の処理を実行するための機能(プログラム)を割り当てて、VMの状態を停止状態から待機状態に予め遷移させる。
図4を参照して、変形例3について詳しく説明する。例えば、テナントA,Bは、いずれも図面差分処理を利用するため、テナントA,Bは共通の処理(図面差分処理)を利用しており、また、テナントA,Bの間で、利用される処理が完全に一致している。この場合、VM制御部20は、テナントA,Bを同一のグループαに予め分類し、例えば、上限数のVMをグループαに割り当てる。上限数は、例えば、共通処理の種類数に基づいて決定された数(例えば、その種類数以上の数)であってもよいし、同一のグループに含まれるテナントの数に基づいて決定された数(例えば、テナント数と同数、テナント数よりも多い数又は少ない数)であってもよいし、各テナントの多重度の総数に基づいて決定された数(例えば、総数と同数、総数よりも多い数又は少ない数)であってもよい。
例えば、共通処理の種類数以上の数が上限数として用いられるものとする。グループαの共通処理は図面差分処理であるため、共通処理の種類数は1つである。従って、VM制御部20は、1又は複数のVMをグループαに割り当てる。VM制御部20は、グループαに割り当てられた1又は複数のVMに、共通の処理(図面差分処理)を実行するためのプログラムをロードすることで、当該共通の処理(図面差分処理)を実行するための機能(プログラム)を割り当てて、その1又は複数のVMの状態を停止状態から待機状態に予め遷移させる。また、VM制御部20は、待機状態のVMのスナップショットを作成してストレージ22に記憶させる。共通処理の種類数以上のVMがグループαに割り当てられることで、各共通処理を実行するための機能が、少なくとも1つのVMに割り当てられることになる。
上限数が、テナント数や多重度の総数によって定められる場合も同様である。例えば、テナント数以上の数が上限数として用いられ、各テナントに少なくとも1つの待機状態のVMが割り当てられてもよい。これにより、各テナントは、少なくとも1つの待機状態のVMを利用することができる。また、各テナントの多重度の総数以上の数が上限数として用いられてもよい。この場合、各テナントから要求された全処理が、待機状態のVMに割り当てられることになる。
VM制御部20は、例えば、テナントAから図面差分処理の要求を受け付けた場合、図面差分処理に関するテナントAの固有の設定情報をストレージ22から取得し、グループαに割り当てられて図面差分処理を実行するための機能が割り当てられたVMのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、そのVMの状態を待機状態から起動状態に遷移させる。そのVMは、テナントAの固有の設定情報を用いて図面差分処理を実行することになる。テナントBから図面差分処理の要求を受け付けた場合も同様である。
1つのVMがグループαに割り当てられている場合において、テナントAに係る図面差分処理の実行中にテナントBから図面差分処理の要求を受け付けた場合、テナントAに係る図面差分処理の実行が完了した後に、テナントBに係る図面差分処理が実行される。テナントAに係る図面差分処理の実行が完了した場合、VM制御部20は、その処理の実行を完了したVMの状態を起動状態から待機状態に遷移させ、その待機状態のVMに、テナントBの固有の設定情報を設定(マウント)することで、そのVMの状態を待機状態から起動状態に遷移させる。その後、そのVMは、テナントBから要求された図面差分処理を実行する。
複数のVMがグループαに割り当てられている場合において、テナントAに係る図面差分処理の実行中にテナントBから図面差分処理の要求を受け付けた場合、テナントBから要求された図面差分処理は、テナントAから要求された図面差分処理を実行しているVMとは異なるVMによって実行される。これにより、テナントAから要求された図面差分処理とテナントBから要求された図面差分処理が、並列的に実行される。
また、テナントC,Dは、いずれも図面差分処理と文字認識処理を利用するため、テナントC,Dは共通の処理(図面差分処理と文字認識処理)を利用しており、また、テナントC,Dの間で、利用される処理が完全に一致している。この場合、VM制御部20は、テナントC,Dを同一のグループβに予め分類し、例えば、上限数のVMをグループβに割り当てる。
例えば、共通処理の種類数以上の数が上限数として用いられているものとする。グループβの共通処理は図面差分処理と文字認識処理であるため、共通処理の種類数は2つである。従って、VM制御部20は、2つ以上のVMをグループβに割り当てる。具体的には、VM制御部20は、グループβに割り当てられた1又は複数のVMに、共通処理(図面差分処理)を実行するための機能(プログラム)を割り当てて、その1又は複数のVMの状態を停止状態から待機状態に予め遷移させる。同様に、VM制御部20は、グループβに分類された別の1又は複数のVMに、共通処理(文字認識処理)を実行するための機能(プログラム)を割り当てて、その1又は複数のVMの状態を停止状態から待機状態に予め遷移させる。また、VM制御部20は、待機状態のVMのスナップショットを作成してストレージ22に記憶させる。上限数が、テナント数や多重度の総数によって定められる場合も同様である。
VM制御部20は、例えば、テナントCから文字認識処理の要求を受け付けた場合、文字認識処理に関するテナントCの固有の設定情報をストレージ22から取得し、グループβに割り当てられて文字認識処理を実行するための機能が割り当てられたVMのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、そのVMの状態を待機状態から起動状態に遷移させる。そのVMは、テナントCの固有の設定情報を用いて文字認識処理を実行することになる。テナントCから図面差分処理の要求を受け付けた場合や、テナントDから図面差分処理や文字認識処理を受け付けた場合も同様である。
グループα,βに割り当てられていないVMの状態は停止状態に維持される。そのVMに処理を実行させる場合、VM制御部20は、そのVMを起動させて処理を割り当てることになる。
変形例3によると、共通の処理を利用する複数のテナントを同一のグループに分類して、当該同一のグループにVMを予め割り当てることで、各テナントに待機状態の処理部を予め割り当てる場合と比べて、待機状態のVMの数を減らせる。
(変形例4)
VM制御部20は、複数のテナントの間で、利用される処理が部分的に一致(共通)する場合、当該複数のテナントを同一のグループに分類し、同一のグループ毎に1又は複数のVMを割り当ててもよい。この場合、VM制御部20は、各グループのVMに、部分的に一致(共通)する処理を実行するための機能(プログラム)を割り当てて、VMの状態を停止状態から待機状態に予め遷移させる。
図4を参照して、変形例4について詳しく説明する。例えば、テナントA,Bはいずれも図面差分処理を利用し、テナントC,Dはいずれも図面差分処理と文字認識処理を利用するため、テナントA,B,C,Dはいずれも図面差分処理を利用する。つまり、テナントA,B,C,Dの間で、利用される処理が部分的に一致(共通)している。この場合、VM制御部20は、テナントA,B,C,Dを同一のグループγに予め分類し、例えば、上限数のVMをグループγに割り当てる。上限数は、変形例3と同様に、例えば、共通処理の種類数に基づいて決定された数であってもよいし、同一のグループに含まれるテナントの数に基づいて決定された数であってもよいし、各テナントの多重度の総数に基づいて決定された数であってもよい。
例えば、共通処理の種類数以上の数が上限数として用いられるものとする。グループγの共通処理は図面差分処理であるため、共通処理の種類数は1つである。従って、VM制御部20は、1又は複数のVMをグループγに割り当てる。VM制御部20は、グループγに割り当てられた1又は複数のVMに、共通の処理(図面差分処理)を実行するためのプログラムをロードすることで、当該共通の処理(図面差分処理)を実行するための機能(プログラム)を割り当てて、その1又は複数のVMの状態を停止状態から待機状態に予め遷移させる。また、VM制御部20は、待機状態のVMのスナップショットを作成してストレージ22に記憶させる。
VM制御部20は、例えば、テナントAから図面差分処理の要求を受け付けた場合、図面差分処理に関するテナントAの固有の設定情報をストレージ22から取得し、グループγに割り当てられて図面差分処理を実行するための機能が割り当てられたVMのスナップショットをストレージ22から取得し、その設定情報とスナップショットを用いて、そのVMの状態を待機状態から起動状態に遷移させる。そのVMは、テナントAの固有の設定情報を用いて図面差分処理を実行することになる。テナントB,C,Dから図面差分処理の要求を受け付けた場合も同様である。変形例3と同様に、各テナントから要求された処理が順番に実行されてもよいし、複数の処理が並列的に実行されてもよい。
変形例3と同様に、グループγに割り当てられていないVMの状態は停止状態に維持される。そのVMに処理を実行させる場合、VM制御部20は、そのVMを起動させて処理を割り当てることになる。
また、VM制御部20は、テナントCやテナントDから文字認識処理の要求を受け付けた場合、グループγに割り当てられていないVMを起動させて文字認識処理を割り当てる。なお、テナントC,Dは、共通の文字認識処理を利用することができるため、変形例3と同様に、テナントC,Dは、グループγとは別に、グループβに割り当てられてもよい。この場合、VM制御部20は、グループβにVMを割り当てて、そのVMの状態を停止状態から待機状態に遷移させる。VM制御部20は、テナントCやテナントDから文字認識処理の要求を受け付けた場合、グループβに割り当てられた待機状態のVMを起動させて文字認識処理を実行させる。
なお、変形例3,4において、VM制御部20は、グループに割り当てられた待機状態のVMを起動させて処理を実行させる場合、そのグループに待機状態のVMを補充してもよい。つまり、VM制御部20は、停止状態のVMをそのグループに割り当て、そのグループの共通処理を実行するためのプログラムをロードすることで、その共通処理を実行するための機能(プログラム)をその停止状態のVMに割り当てて、そのVMの状態を停止状態から起動状態に遷移させてもよい。これにより、同一のグループに分類された待機状態のVMの数が一定に維持される。VM制御部20は、処理の実行が完了したVMの状態を起動状態から待機状態に遷移させる。このとき、同一のグループに分類された待機状態のVMの数が一定に維持されるように、VM制御部20は、余剰となった待機状態のVMの状態を停止状態に遷移させてもよい(スケールイン)。もちろん、余剰となった待機状態のVMがグループに含まれる場合であっても、VM制御部20は、その余剰となった待機状態のVMの状態を待機状態に維持してもよい。
(変形例5)
VM制御部20は、VM群14の中の少なくとも1つのVMの状態を停止状態から待機状態に遷移させ、ユーザ振り分け部16は、優先度の高いテナントからの処理要求を優先度の低いテナントからの処理要求よりも優先的に待機状態のVMに割り当ててもよい。例えば、ユーザ振り分け部16は、優先度の高いテナントからの処理要求を待機状態のVMに割り当て、優先度の低いテナントからの処理要求を停止状態のVMに割り当ててもよい。より詳しく説明すると、ユーザ振り分け部16は、優先度が予め定められた順位以上となるテナントからの処理要求を待機状態のVMに割り当て、優先度が予め定められた順位未満となるテナントからの処理要求を停止状態のVMに割り当ててもよい。別の例として、ユーザ振り分け部16、すべての待機状態のVMに処理要求が割り当てられるまで、優先度の高いテナントからの処理要求から順番に待機状態のVMに割り当てていき、すべての待機状態のVMに処理要求が割り当てられた場合、それ以降の優先度のテナントからの処理要求を停止状態のVMに割り当ててもよい。
各テナントの優先度は、例えば、各テナントの多重度(利用可能な処理の数)に基づいて定められてもよいし、情報処理システム10が提供するサービスの利用に対する各テナントの支払金額に基づいて定められてもよい。例えば、多重度の高いテナントほど(利用可能な処理の数が多いテナントほど)、優先度が高くなる。多重度は、上述したように、サービスの利用契約等によって定められる。また、支払金額の多いテナントほど、優先度が高くなってもよい。
以上のように、各テナントの優先度に応じて処理要求を待機状態のVM又は停止状態のVMに割り当てることで、各テナントの個別的な事情を考慮して処理がVMに割り当てられる。
変形例3,4に変形例5が適用されてもよい。例えば、図4に示されているグループαを例に挙げて説明する。テナントAの多重度は「100」であり、テナントBの多重度は「1」であるとする。この場合、テナントAはテナントBよりも優先度が高いため、VM制御部20は、テナントAからの処理要求をテナントBの処理要求よりも優先して待機状態のVMに割り当てる。
(変形例6)
VM制御部20は、負荷の大きい処理を実行するための機能を負荷の小さい処理を実行するための機能よりも優先的にVMに予め割り当てて、そのVMの状態を停止状態から待機状態に予め遷移させてもよい。例えば、VM制御部20は、負荷の大きい処理を実行するための機能をVMに予め割り当てて、そのVMの状態を停止状態から待機状態に予め遷移させ、負荷の小さい処理を実行するための機能を予めVMに割り当てなくてもよい。もちろん、負荷の大きい処理を実行するための機能をVMに予め割り当てた場合において、機能が予め割り当てられていないVMが存在する場合、VM制御部20は、そのVMに負荷の小さい処理を実行するための機能を割り当ててもよい。上述した実施形態と同様に、VM制御部20は、待機状態のVMのスナップショットを作成してストレージ22に記憶させておく。
負荷の大きい処理は、例えば画像処理を含む処理であり、負荷の小さい処理は、例えば、ユーザログイン処理を含む処理である。
VM制御部20は、負荷の大きい処理の要求をテナントから受け付けた場合、その処理を実行するための機能が割り当てられた待機状態のVMのスナップショットと、そのテナントの固有の設定情報と、を用いて、そのVMの状態を待機状態から起動状態に遷移させ、そのVMに負荷の大きい処理を実行させる。VM制御部20は、負荷の小さい処理の要求をテナントから受け付けた場合、その処理を実行するための機能を停止状態のVMに割り当て、そのテナントの固有の設定情報をそのVMに適用することで、そのVMの状態を停止状態から起動状態に遷移させ、そのVMに負荷の小さい処理を実行させる。
通常、処理の負荷が大きくなるほど、処理を実行するためのプログラムをロードする時間が長くなるため、VMを停止状態から起動させた場合、その処理を実行するVMを起動させるための時間が長くなる。例えば、画像処理を実行するためのプログラムをロードする時間は、通常、ユーザログイン処理を実行するためのプログラムをロードする時間よりも長いため、画像処理を実行するVMを起動させる時間は、ユーザログイン処理を実行するVMを起動させる時間よりも長くなる。変形例6によると、負荷の大きい処理を実行するためのプログラムが予めロードされてVMに割り当てられ、そのVMの状態が停止状態から待機状態に予め遷移される。それ故、負荷の大きい処理の要求を受け付けてからVMを起動し始める場合と比べて、負荷の大きい処理の実行開始が早くなる。
待機状態のVMの数に制限がある場合等のように、すべてのVMの状態を停止状態から待機状態に予め遷移させることができない場合や、利用される処理の数よりもVMの数の方が少ない場合等のように、すべての機能をVMに予め割り当てることができない場合がある。変形例6によると、このような場合において、負荷の大きい処理を実行するための機能が負荷の小さい処理を実行するための機能よりも優先的にVMに予め割り当てられて、そのVMの状態が停止状態から待機状態に予め遷移するので、負荷の大きさに関わらず機能をVMに予め割り当てる場合や、負荷の小さい処理を実行するための機能を負荷の大きい処理を実行するための機能よりも優先的にVMに予め割り当てる場合と比較して、情報処理システム10の全体の処理の効率が向上し得る。つまり、負荷の大きい処理を実行するための機能をVMに割り当てて、そのVMを停止状態から待機状態に遷移させるのに要する時間は、負荷の小さい処理を実行するための機能をVMに割り当てて、そのVMを停止状態から待機状態に遷移させるのに要する時間よりも長くなる。変形例6では、その長い時間が削減されるので、情報処理システム10の全体の処理の効率が向上する。
上述した実施形態及び変形例1から変形例6においては、ホスティングサービス(Hosting Service)が適用されてもよいし、クラウドサービス(Cloud Service)が適用されてもよいし、ホスティングサービスとクラウドサービスの両方が適用されてもよい。つまり、VMは、ホスティングサービスに含まれていてもよいし、クラウドサービスに含まれていてもよいし、ホスティングサービスとクラウドサービスの両方に含まれていてもよい。
上記の情報処理システム10は、一例としてハードウェアとソフトウェアとの協働により実現される。具体的には、情報処理システム10は、図示しないCPU等の1又は複数のプロセッサを備えている。当該1又は複数のプロセッサが、図示しない記憶装置に記憶されたプログラムを読み出して実行することにより、情報処理システム10の各部の機能が実現される。上記プログラムは、CDやDVD等の記録媒体を経由して、又は、ネットワーク等の通信経路を経由して、記憶装置に記憶される。別の例として、情報処理システム10の各部は、例えばプロセッサや電子回路やASIC(Application Specific Integrated Circuit)等のハードウェア資源により実現されてもよい。その実現においてメモリ等のデバイスが利用されてもよい。更に別の例として、情報処理システム10の各部は、DSP(Digital Signal Processor)やFPGA(Field Programmable Gate Array)等によって実現されてもよい。
10 情報処理システム、12 端末装置、14 VM群、16 ユーザ振り分け部、18 テナント管理部、20 VM制御部、22 ストレージ、24 VM管理情報、26 スナップショット管理情報、28 テナント管理情報、30 パラメータ管理情報、32 ジョブ管理情報。

Claims (14)

  1. データを処理する処理部の起動を制御する制御手段と、
    処理部の状態に関する情報を記憶する記憶手段と、
    を有し、
    前記制御手段は、複数の処理部の起動を制御する手段であり、複数の処理部の中の少なくとも1つの処理部の状態を停止状態から起動状態の間の待機状態に予め遷移させ、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報と、待機状態の処理部の状態に関する情報と、を用いて、処理部の状態を待機状態から起動状態に遷移させ、優先度の高いユーザからの処理要求を優先度の低いユーザからの処理要求よりも優先的に待機状態の処理部に割り当てる、
    ことを特徴とする情報処理装置。
  2. 前記制御手段は、処理を実行するための機能を処理部に予め割り当てることで、処理部の状態を停止状態から待機状態に予め遷移させておき、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報を待機状態の処理部に設定することで、処理部の状態を待機状態から起動状態に遷移させる、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御手段は、処理部に割り当てられた機能が更新された場合、待機状態の処理部の状態を停止状態に遷移させる、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記制御手段は、共通の処理を利用する複数のユーザを同一のグループに分類し、同一のグループ毎に処理部を割り当て、各グループの処理部に、共通の処理を実行するための機能を割り当てて処理部の状態を停止状態から待機状態に遷移させる、
    ことを特徴とする請求項2又は請求項3に記載の情報処理装置。
  5. 前記制御手段は、複数のユーザの間で、利用される処理が完全に一致する場合、当該複数のユーザを同一のグループに分類する、
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記制御手段は、複数のユーザの間で、利用される処理が部分的に一致する場合、当該複数のユーザを同一のグループに分類し、部分的に一致する処理を実行するための処理部を当該同一のグループに割り当て、部分的に一致する処理を実行するための機能をその処理部に割り当てて処理部の状態を停止状態から待機状態に遷移させる、
    ことを特徴とする請求項4に記載の情報処理装置。
  7. 前記制御手段は、優先度の高いユーザからの処理要求を待機状態の処理部に割り当て、優先度の低いユーザからの処理要求を停止状態の処理部に割り当てる、
    ことを特徴とする請求項1から請求項6のいずれか一項に記載の情報処理装置。
  8. 利用可能な処理の数が多いユーザほど、優先度が高くなる、
    ことを特徴とする請求項1から請求項7のいずれか一項に記載の情報処理装置。
  9. データを処理する処理部の起動を制御する制御手段と、
    処理部の状態に関する情報を記憶する記憶手段と、
    を有し、
    前記制御手段は、複数の処理部の起動を制御する手段であり、負荷の大きい処理を実行するための機能を負荷の小さい処理を実行するための機能よりも優先的に処理部に予め割り当てることで、その処理部の状態を停止状態から起動状態の間の待機状態に予め遷移させ、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報を待機状態の処理部に設定することで、処理部の状態を待機状態から起動状態に遷移させる、
    ことを特徴とする情報処理装置。
  10. 負荷の大きい処理は画像処理を含む処理であり、負荷の小さい処理はユーザのログイン処理を含む処理である、
    ことを特徴とする請求項に記載の情報処理装置。
  11. 前記制御手段は、要求された処理の実行が完了した処理部の状態を起動状態から待機状態に遷移させる、
    ことを特徴とする請求項1から請求項1のいずれか一項に記載の情報処理装置。
  12. 前記制御手段は、予め定められた上限数の処理部の状態が既に待機状態に遷移されている場合、新たに処理の実行が完了した処理部の状態を起動状態から停止状態に遷移させる、
    ことを特徴とする請求項1に記載の情報処理装置。
  13. コンピュータを、
    データを処理する処理部の起動を制御する起動制御手段、
    処理部の状態に関する情報を記憶手段に記憶させる記憶制御手段、
    として機能させ、
    前記起動制御手段は、複数の処理部の起動を制御する手段であり、複数の処理部の中の少なくとも1つの処理部の状態を停止状態から起動状態の間の待機状態に予め遷移起動させ、
    前記記憶制御手段は、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、
    前記起動制御手段は、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報と、待機状態の処理部の状態に関する情報と、を用いて、処理部の状態を待機状態から起動状態に遷移させ、優先度の高いユーザからの処理要求を優先度の低いユーザからの処理要求よりも優先的に待機状態の処理部に割り当てる、
    ことを特徴とするプログラム。
  14. コンピュータを、
    データを処理する処理部の起動を制御する起動制御手段、
    処理部の状態に関する情報を記憶手段に記憶させる記憶制御手段、
    として機能させ、
    前記起動制御手段は、複数の処理部の起動を制御する手段であり、負荷の大きい処理を実行するための機能を負荷の小さい処理を実行するための機能よりも優先的に処理部に予め割り当てることで、その処理部の状態を停止状態から起動状態の間の待機状態に予め遷移させ、
    前記記憶制御手段は、待機状態の処理部の状態に関する情報を前記記憶手段に記憶させておき、
    前記起動制御手段は、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報を待機状態の処理部に設定することで、処理部の状態を待機状態から起動状態に遷移させる、
    ことを特徴とするプログラム。
JP2017023637A 2017-02-10 2017-02-10 情報処理装置及びプログラム Active JP6897136B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017023637A JP6897136B2 (ja) 2017-02-10 2017-02-10 情報処理装置及びプログラム
US15/806,881 US10503540B2 (en) 2017-02-10 2017-11-08 Information processing apparatus and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017023637A JP6897136B2 (ja) 2017-02-10 2017-02-10 情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2018129003A JP2018129003A (ja) 2018-08-16
JP6897136B2 true JP6897136B2 (ja) 2021-06-30

Family

ID=63104650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017023637A Active JP6897136B2 (ja) 2017-02-10 2017-02-10 情報処理装置及びプログラム

Country Status (2)

Country Link
US (1) US10503540B2 (ja)
JP (1) JP6897136B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347295B2 (en) * 2017-07-19 2022-05-31 Citrix Systems, Inc. Virtual machine power management
US11216315B2 (en) * 2018-02-21 2022-01-04 Rubrik, Inc. Distributed semaphore with a different keys to reduce contention for dynamic reservation of disk space
JP7455601B2 (ja) * 2020-02-05 2024-03-26 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP2021170173A (ja) 2020-04-14 2021-10-28 キヤノン株式会社 画像形成装置、その制御方法、及びプログラム
JP7405008B2 (ja) 2020-06-08 2023-12-26 富士通株式会社 情報処理装置、情報処理プログラム、及び、情報処理方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504621B1 (en) * 1998-01-28 2003-01-07 Xerox Corporation System for managing resource deficient jobs in a multifunctional printing system
US7653794B2 (en) 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US20100229218A1 (en) * 2009-03-05 2010-09-09 Microsoft Corporation Quota management for network services
US8359594B1 (en) * 2009-06-30 2013-01-22 Sychron Advanced Technologies, Inc. Automated rapid virtual machine provisioning system
US8700745B2 (en) * 2010-04-30 2014-04-15 Sap Ag Life-cycle management of multi-tenant SAAS applications
US8417817B1 (en) * 2010-09-15 2013-04-09 Google Inc. Preventing server overload
JP2014038364A (ja) * 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
US8601583B1 (en) * 2011-04-14 2013-12-03 Trend Micro Incorporated Certification of virtual machine images in cloud computing environments
EP2761813A4 (en) 2011-09-30 2015-05-20 Zte Corp SYSTEM AND METHOD FOR CLOUD-BASED IMPLEMENTATION OF NETWORK ELEMENT CONCENTRATE OVERLOAD REGULATION (COFO-NE)
JP5682070B2 (ja) 2012-02-28 2015-03-11 日本電信電話株式会社 統合制御装置及び統合制御方法
SG10201802428QA (en) * 2013-09-23 2018-04-27 Gopc Pty Ltd Virtual computing systems and methods
US9183039B2 (en) * 2013-11-26 2015-11-10 Google Inc. Associating a task completion step of a task with a related task of the same group of similar tasks
JP2015191246A (ja) * 2014-03-27 2015-11-02 株式会社Nttドコモ 通信システムおよび管理方法
TWI537827B (zh) * 2014-10-06 2016-06-11 第五代虛擬科技股份有限公司 應用軟體試用系統、方法及其伺服器與使用者裝置
JP6540107B2 (ja) * 2015-03-09 2019-07-10 富士通株式会社 並列演算装置、並列演算システム、およびジョブ制御プログラム
JP6477081B2 (ja) * 2015-03-18 2019-03-06 富士ゼロックス株式会社 プログラム、情報処理装置及び情報処理方法
US10228864B1 (en) * 2016-12-30 2019-03-12 Parallels International Gmbh Pre-fetching data based on memory usage patterns

Also Published As

Publication number Publication date
US20180232253A1 (en) 2018-08-16
JP2018129003A (ja) 2018-08-16
US10503540B2 (en) 2019-12-10

Similar Documents

Publication Publication Date Title
JP6897136B2 (ja) 情報処理装置及びプログラム
US9383950B2 (en) Information processing system, information processing apparatus, and process execution method
US11032436B2 (en) Information processing apparatus, information processing system, and non-transitory computer readable medium storing program for workflow generation
US20160259933A1 (en) Information processing system, information processing apparatus, and information processing method
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
US20070112441A1 (en) Modular layer for abstracting peripheral hardware characteristics
US20160274946A1 (en) System and method for controlling workflow execution, and recording medium
US20130107309A1 (en) Job management apparatus, method of managing jobs, and recording medium
US10097626B2 (en) Cooperation system
US20080229327A1 (en) Information processing apparatus, information processing mehtod and computer program product
US10754695B2 (en) Information processing apparatus and non-transitory computer readable medium
US20180067701A1 (en) Information processing apparatus, control method therefor, and storage medium
US11704143B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP2019016241A (ja) 情報処理装置、情報処理システム及び情報処理プログラム
US11755263B2 (en) Information processing apparatus, control method, and storage medium
US8760703B2 (en) Job control system and job control method
JP6492865B2 (ja) 情報処理装置、プログラム及び情報処理方法
US10891095B2 (en) Image forming apparatus, printing system, and job control method
JP7230374B2 (ja) 情報処理装置およびプログラム
JP2014182412A (ja) 情報処理装置、情報処理方法およびプログラム
US11481171B2 (en) Image forming system, server, control method for image forming system, control method for server, and storage medium
JP6477081B2 (ja) プログラム、情報処理装置及び情報処理方法
US11200088B2 (en) Information processing system, information processing method, and information processing apparatus
US20240118847A1 (en) Information processing apparatus, control method thereof, and medium and printing system thereof
JP2010061212A (ja) データ配信方法、データ配信プログラムおよび記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210524

R150 Certificate of patent or registration of utility model

Ref document number: 6897136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150