クラウドコンピューティングシステム、情報処理方法及びプログラム
【課題】クラウドコンピューティングシステムにおいても、要求を受け付けた順番で処理を行うことを目的とする。
【解決手段】要求受信部がネットワークプルプリント要求を画像形成装置から受け付け、要求に応じて発行されたキューメッセージを取得し、画像形成装置の状態に応じて取得したキューメッセージの優先度を決定し、キューメッセージを要求管理データに登録する登録手段と、登録手段により登録されたキューメッセージの中から優先度が高いキューメッセージを取得し、記憶サービスに取得した優先度が高いキューメッセージを格納するよう指示する指示手段と、を有することによって課題を解決する。
【解決手段】要求受信部がネットワークプルプリント要求を画像形成装置から受け付け、要求に応じて発行されたキューメッセージを取得し、画像形成装置の状態に応じて取得したキューメッセージの優先度を決定し、キューメッセージを要求管理データに登録する登録手段と、登録手段により登録されたキューメッセージの中から優先度が高いキューメッセージを取得し、記憶サービスに取得した優先度が高いキューメッセージを格納するよう指示する指示手段と、を有することによって課題を解決する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラウドコンピューティングシステム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、サーバーコンピュータ側で各種処理を行う形態として、クラウドコンピューティングシステムやSaaS(Software as a Service)という技術が利用され始めている。
クラウドコンピューティングでは、多くのクラウドリソース(コンピューティング・リソース、ストレージ・リソース)を利用し、データ変換やデータ処理を分散実行することで、多くのクライアントからの要求を同時に処理することが可能となる。
このようなクラウドコンピューティングシステムでは、スケーラビリティを重要視するため、ブリュワーのCAP定理における「可用性(Availability)」、「分割耐性(Partition Tolerance)」を採用し、「一貫性(Consistency)」を犠牲にしたシステムとなっている。
例えば、Windows(登録商標) Azureにおいても一貫性は保証されていない。より具体的には、Windows Azureは、参考文献1のように、クラウドコンピューティングにおけるキューでは、ファーストイン/ファーストアウト方式ではなく、処理する順番は、決まっていない。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】"WINDOWS AZURE の紹介"、MICROSOFT CORPORATION、2009年 12月、P23 キュー
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなクラウドコンピューティングシステム上に画像形成装置から指定されたドキュメントデータを取得し、そのドキュメントデータを印刷可能なデータ形式に変換するネットワークプルプリントサービスを構築した場合を想定する。
このようなネットワークプルプリントサービスに対して、多くの画像形成装置からプルプリント要求が行われると、その要求は、クラウドコンピューティングにおけるキューで管理されるため、どの順番で要求を処理するかは、保証されない。その結果、後から依頼したユーザのプリントが最初にプリントを依頼したユーザより先に処理される可能性がある。このような場合、最初にプリントを依頼したユーザは、長時間、プリントを待たされてしまう問題があった。
本発明はこのような問題点に鑑みなされたもので、クラウドコンピューティングシステムにおいても、要求を受け付けた順番で処理を行うことを可能にすることを目的とする。
【課題を解決するための手段】
【0005】
そこで、本発明のクラウドコンピューティングシステムは、画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶サービスに格納させる、要求受信プログラムを実行することにより実現される要求受信部と、前記記憶サービスに対し前記メッセージの取得要求を定期的に行い、前記記憶サービスから前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部と、を有するクラウドコンピューティングシステムであって、前記要求受信部がネットワークプルプリント要求を画像形成装置から受け付け、該要求に応じて発行されたキューメッセージを取得し、前記画像形成装置の状態に応じて該取得したキューメッセージの優先度を決定し、該キューメッセージを要求管理データに登録する登録手段と、前記登録手段により登録されたキューメッセージの中から優先度が高いキューメッセージを取得し、前記記憶サービスに該取得した優先度が高いキューメッセージを格納するよう指示する指示手段と、を有する。
【発明の効果】
【0006】
本発明によれば、クラウドコンピューティングシステムにおいても、要求を受け付けた順番で処理を行うことを可能にすることができる。
【図面の簡単な説明】
【0007】
【図1】本実施形態のシステム全体の構成の一例を示す図である。
【図2】本実施形態の画像形成装置のハードウェア構成の一例を示す図である。
【図3】本実施形態の情報処理装置のハードウェア構成の一例を示す図である。
【図4】従来のシステム等を説明するための図である。
【図5】従来のネットワークプルプリントシステムの処理依頼キューを説明するための図である。
【図6】本実施形態のシステム全体の機能構成の一例を示す図である。
【図7】本実施形態のネットワークプルプリントシステムの詳細を説明するための図である。
【図8A】キューメッセージ管理テーブルの一例を示す図(その1)である。
【図8B】キューメッセージ管理テーブルの一例を示す図(その2)である。
【図8C】キューメッセージ管理テーブルの一例を示す図(その3)である。
【図8D】キューメッセージ管理テーブルの一例を示す図(その4)である。
【図9】画像形成装置の処理の一例を示すフローチャートである。
【図10】ネットワークプルプリント要求・クライアント情報受信部の処理の一例を示すフローチャートである。
【図11A】キューメッセージスケジューラーの処理の一例を示すフローチャート(その1)である。
【図11B】キューメッセージスケジューラーの処理の一例を示すフローチャート(その2)である。
【図11C】キューメッセージスケジューラーの処理の一例を示すフローチャート(その3)である。
【図12】本実施形態のシステム全体の処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面に基づいて説明する。
【0009】
<実施形態1>
ネットワークプルプリントサービスを構成している各装置について、図1を参照して説明する。図1は、システム全体の構成の一例を示す図である。図1には、ネットワークプルプリントサービスを構成している各装置がネットワーク100を介して接続されている様子が示されている。ネットワークシステムを構成している各装置とは、ネットワークプルプリントシステム102、文書サーバー103、画像形成装置104である。
ネットワーク100は、上述の各装置の間で情報をやり取りするための通信回線である。インターネット101は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット101により、画像形成装置104が属するネットワーク100からは、ネットワークプルプリントシステム102等が属するネットワーク100と、ファイアウォールを越えて通信することができる。ネットワーク100、インターネット101は、例えば、TCP/IPプロトコル等をサポートする通信回線網であり、有線・無線は問わない。図1において、ネットワークプルプリントシステム102は、1台のサーバーとして示されているが複数台のサーバーコンピュータで構成されている。
【0010】
次に、図1のネットワークプルプリントサービスを構成している各装置の内部構成について説明する。始めに、画像形成装置104のハードウェア構成について図2を用いて説明する。図2は、画像形成装置104のハードウェア構成の一例を示す図である。
画像形成装置104は、画像処理ユニット201、印刷ユニット202、及び読み込みユニット203から構成される。画像処理ユニット201は、CPU204、直接記憶部205、間接記憶部206、ユーザインターフェース207、外部インターフェース208、消耗品管理ユニット209から構成されている。
CPU204は、所定のプログラムを実行し、画像形成装置104の各種制御を指示するユニットである。CPU204は、CPU(Central Processing Unit)により実現される。直接記憶部205は、CPU204がプログラムを実行する際に使用するワークメモリであり、CPU204が実行するプログラムは、直接記憶部205にロードされる。直接記憶部205は、RAM(Random Access Memory)により実現される。間接記憶部206は、アプリケーションプログラム、及びプラットフォームプログラムを含む各種プログラムが記憶されている。間接記憶部206に記憶されている各種プログラムは、CPU204がプログラムを実行する際に直接記憶部205へ移動される。間接記憶部206は、SSD(Solid State Drive)、又は、HDD(Hard Disc Drive)により実現される。なお、CPU204は、マルチプロセッサでもよい。
【0011】
ここで、プラットフォームについて説明する。プラットフォームの実現により、ユーザが独自に開発した新しいアプリケーションを画像形成装置104上で実行できる他、画像形成装置104の操作画面をカスタマイズすることが可能になる。
プラットフォームの実現方法について説明する。CPU204は、間接記憶部206に記憶されたプラットフォームプログラムを直接記憶部205に移動する。移動が完了するとCPU204は、プラットフォームプログラムを実行することができる状態になる。本実施形態では、CPU204がプラットフォームプログラムを実行することを、プラットフォームを起動すると称する。なお、プラットフォームは、画像形成装置104のファームウェア上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供するものである。
プラットフォーム上でアプリケーションプログラムを実行する方法について説明する。本実施形態において、プラットフォーム上には、印刷要求を受け付ける印刷ソフトウェアが動作している。印刷ソフトウェアは、ネットワークを介して接続されているデバイスから、例えば、HTTP(Hyper Text Transfer Protocol)等の通信プロトコルによって印刷データを受信することができる。印刷ソフトウェアは、受信した印刷データをファームウェアに送信し、印刷データを受信したファームウェアは、印刷データ処理を開始する。なお、印刷データが処理をせずに印刷できるようなものであれば、ファームウェアは、印刷データ処理を省く。このように、プラットフォームでアプリケーションプログラムを実行することによって、画像形成装置104の制御を実現することができる。
アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部206に記憶されたアプリケーションプログラムを直接記憶部205に移動する。移動が完了すると、プラットフォームは、アプリケーションプログラムを実行することができる状態になる。そして、プラットフォームは、アプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、本実施形態では、プラットフォームアプリケーションと呼ぶ。更に、プラットフォームは、本実施形態で開示するフローチャートの各処理の一部を行うことができる。
【0012】
ユーザインターフェース207は、ユーザからの処理依頼を受け付けるために必要なユニットである。例えば、ユーザインターフェース207は、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。外部インターフェース208は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリ等の外付け記憶装置、又は、ネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。画像形成装置104は、ネットワーク100、及びインターネット101を介してネットワークプルプリントシステム102等と通信可能である。
消耗品管理ユニット209は、印刷に必要な消耗品(トナーやインク、用紙等)を格納管理するユニットである。印刷を行うのに必要な消耗品がなくなる(トナー・インク切れや用紙切れ)と、消耗品管理ユニット209は、消耗品欠如イベントを発行する。また、欠如した消耗品を充填して印刷可能な状態になると、消耗品管理ユニット209は、消耗品充填イベントを発行する。これら消耗品欠如イベントや消耗品充填イベントは、プラットフォームアプリケーションにて検知する事が可能で、そのイベントに応じたプログラムを実行する事が可能である。
【0013】
起動制御ユニット210は、画像形成装置104の起動・終了を切り替える手段を有する。起動制御ユニット210により、画像形成装置104が起動状態に切り替えられると、CPU204は、起動状態にするために必要なプログラムを間接記憶部206から直接記憶部205へとロードして実行し、画像形成装置104を動作可能な状態にする。この起動状態にするために必要なプログラムは、定められた起動処理を完了すると、起動イベントを発行する。また、起動制御ユニット210により、画像形成装置104が終了状態に切り替えられると、CPU204は、終了状態にするために必要なプログラムを間接記憶部206から直接記憶部205へとロードして実行し、画像形成装置104を動作しない状態にする。この起動状態にするために必要なプログラムは、定められた起動処理を完了すると、終了イベントを発行する。前記起動イベント及び終了イベントは、プラットフォームアプリケーションにて検知する事が可能で、そのイベントに応じたプログラムを実行する事が可能である。
【0014】
次に、ネットワークプルプリントシステム102、文書サーバー103を含む情報処理装置のハードウェア構成について図3を用いて説明する。図3は、情報処理装置106のハードウェア構成の一例を示す図である。情報処理装置106は、CPU301、直接記憶部302、間接記憶部303、ユーザインターフェース304、外部インターフェース305から構成されている。
ユーザインターフェース304は、ユーザからの処理依頼を受け付けるために必要なユニットである。例えば、ユーザインターフェース304は、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。
CPU301は、所定のプログラムを実行し情報処理装置106の各種制御を指示するユニットである。CPU301は、CPUにより実現される。直接記憶部302は、CPU301がプログラムを実行する際に使用するワークメモリであり、CPU301が実行するプログラムは、直接記憶部302にロードされる。直接記憶部302は、RAMで構成されている。間接記憶部303は、アプリケーションプログラム、及びOS(Operating System)を含む各種プログラムが記憶されている。間接記憶部303に記憶されている各種プログラムは、CPU301がプログラムを実行する際に直接記憶部302へ移動する。間接記憶部303は、ROM、又は、HDDで構成されている。外部インターフェース305は、ネットワーク100に接続されており、ネットワーク100に接続されている他の装置と通信が可能となる。
次に、文書サーバー103の機能について説明する。文書サーバー103は、文書リポジトリ403の機能を持つ。文書リポジトリ403は、図3の間接記憶部303によって実現される。例えば、文書リポジトリ403には、ユーザが画像形成装置104から印刷指示したコンテンツが保存されている。
【0015】
次に、従来の画像形成装置104について図4を参照しながら説明する。図4は、従来のシステム等を説明するための図である。画像形成装置104には、デバイスブラウザ401、プルプリントアプリケーション402の機能がある。デバイスブラウザ401は、ネットワーク100を介して接続されているデバイス内に保存されているデータや情報をユーザが閲覧することができる機能を有する。デバイスブラウザ401は、図2の間接記憶部206に保存されているデバイスブラウザプログラムが、直接記憶部205にロードされ、CPU204により実行されることで実現される。また、ユーザは、デバイスブラウザ401を用いてコンテンツの印刷指示を出すことができる。デバイスブラウザ401は、例えば、Webブラウザである。
プルプリントアプリケーション402は、ネットワークプルプリント要求受信部404が作成した印刷データ取得URIに対して、定期的に印刷データ生成確認を行う。印刷データが生成されている場合は、プルプリントアプリケーション402は、印刷データの取得と印刷とを行う。
以上が、実施形態のネットワークプルプリントサービスにおける各装置が持つ機能の説明になる。
【0016】
次に、従来のネットワークプルプリントサービスを構成しているネットワークプルプリントシステム102のプラットフォームシステムについて図4を参照しながら説明する。ネットワークプルプリント要求受信部404は、画像形成装置104からのネットワークプルプリント要求を受け付けるモジュールである。ネットワークプルプリント要求受信部404は、画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶サービスに格納させる、要求受信プログラムを実行することにより実現される要求受信部に相当する。
ネットワークプルプリント要求受信部404は、処理依頼キュー407を介してネットワークプルプリント処理部406への処理依頼を送信する。処理依頼キュー407は、ネットワークプルプリント要求受信部404とネットワークプルプリント処理部406とが非同期でデータ通信するためのサービスを提供するものである。処理依頼キュー407は、記憶サービスに相当する。ネットワークプルプリント要求受信部404、及びネットワークプルプリント処理部406は、処理依頼キュー407に対し各種指示を出すことで、非同期でデータ通信する。ネットワークプルプリント処理部406は、前記記憶サービスに対し前記メッセージの取得要求を定期的に行う。また、記憶サービスから前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部に相当する。
ネットワークプルプリント処理部406は、処理依頼キュー407からキューメッセージを取得し、指定されたドキュメントの取得と、画像形成装置が印刷可能なデータフォーマットへの変換と、を行う。ネットワークプルプリント処理部406は、生成された画像形成装置が印刷可能なデータを、印刷データ格納部408に、印刷データを取得するための印刷データ取得URIと関連付けて保存する。これらの処理が完了すると、ネットワークプルプリント処理部406は、受取IDに対応するキューメッセージの削除指示を処理依頼キュー407に対して行う。削除指示を受けた処理依頼キュー407は、ネットワークプルプリント処理部406が指示した受取IDに対応するキュースメッセージをキューから削除する。印刷データ取得要求受信部405は、画像形成装置104から印刷データ取得要求を受け付けるモジュールである。印刷データ取得要求受信部405は、画像形成装置104が要望した印刷データ取得URIに対して、印刷データの存在を確認する。
印刷データ格納部408に指定されたURIの印刷データが存在する場合、印刷データ取得要求受信部405は、印刷データ格納部408に保存された該当データを画像形成装置に対して送信する。
【0017】
従来のネットワークプルプリントサービスを構成しているネットワークプルプリントシステム102のプラットフォームシステムの処理依頼キュー407について、図5を用いてより具体的に説明する。処理依頼キュー407は、例えば、クラウド環境におけるキューと同義である。
ネットワークプルプリント要求受信部404は、処理依頼キュー407に対してキューメッセージの追加指示を行う。一方、ネットワークプルプリント処理部406は、処理依頼キュー407に対してキューメッセージの取得指示とキューメッセージの削除指示とを行う。キューメッセージの取得指示とは、キューに登録されたキューメッセージを取得するオペレーションであり、キューメッセージの削除指示とは、指定したキューメッセージをキューから削除するオペレーションである。クラウド環境におけるキューとは、キューメッセージの取得だけでは、キューの情報は、削除されず、キューメッセージの処理が完了した後にキューメッセージの削除を行う必要がある。
ネットワークプルプリント要求受信部404は、ユーザから指定された情報をキューメッセージとして作成し、キューメッセージをキューに追加するように処理依頼キュー407に追加指示を送信する。追加指示を受信した処理依頼キュー407は、内部のキューにキューメッセージを追加する。このキューメッセージの追加は、処理依頼キュー407の内部に保持するキューで空き領域に追加される。
【0018】
一方、ネットワークプルプリント処理部406は、キューメッセージを取得するために、処理依頼キュー407に取得指示を出す。取得指示を受けた処理依頼キュー407は、処理依頼キューの任意の場所からキューメッセージを取得する。この取得処理は、FIFOではなく、任意の場所からキューメッセージが取得される。即ち、最初にシステムの処理依頼キュー407に追加されたキューメッセージが後続のキューメッセージよりも後で処理されることが発生する。
ネットワークプルプリント処理部406の処理が短時間であれば、このような順番の逆転は、大きな問題ではないが、ネットワークプルプリント処理部406の処理時間が長くなれば長くなるほど、このようなキューシステムによる不都合が目立ってしまう。例えば、要求処理に1分間かかる要求が10個たまった状態を考える。この状態で新規の要求を行うと、運が良ければ、最初に処理されるためそのユーザの待ち時間は、自身の要求処理時間の1分だけである。しかし、このようなことが頻発すると、先行して依頼していたキューメッセージが処理されず、そのユーザの処理待ち時間が非常に長くなってしまう。
【0019】
次に、本実施形態のネットワークプルプリントサービスを構成しているネットワークプルプリントシステム102のプラットフォームシステムについて図6を参照しながら説明する。
ネットワークプルプリント要求・クライアント情報受信部410は、画像形成装置104からのネットワークプルプリント要求と画像形成装置104の情報とを受け付けるモジュールである。画像形成装置104の情報とは、例えば画像形成装置の印刷部(印刷ユニット)のステータス(状態)であり、idle(印刷可能)、processing(印刷中)、error(印刷できず)、である。或いは、画像形成装置104の情報とは、現在印刷要求が行われている全印刷ジョブの総処理時間を示し、要求した印刷データが何分後に印刷できるかという情報であってもよいし、画像形成装置能力であってもよい。なお、画像形成装置104の情報は、画像形成装置情報の一例である。
本実施形態では、特に言及しない限り、画像形成装置104の情報として、印刷部の状態を用いて説明を行う。また、印刷部の状態も説明を判り易く行うために、印刷不可能(error)と印刷可能(ready)との2つの状態を用いて説明を行う。但し、このことは本実施形態を制限するものではない。
なお、以下、本明細書中では説明の簡略化のため、ネットワークプルプリント要求・クライアント情報受信部410を単に、受信部410という。
受信部410は、ネットワークプルプリント要求と、画像形成装置104の状態と、を受信すると、要求・状態変更受信キュー411に対して依頼・状態変更を通知する。要求・状態変更受信キュー411は、要求受信キューの一例である。受信部410は、受け付けた順序に応じて、キューメッセージに受付順番を付与する。例えば、後述する図7等に示される依頼「××」readyの「××」の部分が受付順番に対応する。
【0020】
キューメッセージスケジューラー412は、要求・状態変更受信キュー411からキューメッセージを取得して画像形成装置104から受信したメッセージが印刷要求か、リクエスタ情報通知であるかを確認し、そのメッセージに応じた処理を行う。キューメッセージスケジューラー412は、スケジュール手段の一例である。
キューメッセージスケジューラー412は、処理依頼キュー414の状態を確認し、処理依頼キュー414のジョブ状況に応じて、キューメッセージ管理テーブル413に保持されたキューメッセージを処理依頼キュー414に登録する。キューメッセージ管理テーブル413は、要求管理データの一例である。また、キューメッセージスケジューラー412は、処理依頼キューの未処理状況のジョブが一定数より少なくなったことを検知すると、キューメッセージ管理テーブル413から再も優先度が高いキューメッセージリストを取得する。そして、キューメッセージスケジューラー412は、キューメッセージリストに登録されたキューメッセージを処理依頼キュー414に登録する。キューメッセージスケジューラー412は、登録したキューメッセージを、キューメッセージ管理テーブル413から削除する。
ネットワークプルプリント処理部406は、処理依頼キュー414からキューメッセージを取得し、指定されたドキュメントの取得と画像形成装置が印刷可能なデータフォーマットへの変換とを行う。ネットワークプルプリント処理部406は、生成された画像形成装置が印刷可能なデータを、印刷データ格納部408に、印刷データを取得するための印刷データ取得URIと関連付けて印刷データ格納部408に保存する。
これらの処理が完了すると、ネットワークプルプリント処理部406は、受取IDに対応するキューメッセージの削除指示を処理依頼キュー414に対して行う。削除指示を受けた処理依頼キュー414は、ネットワークプルプリント処理部406が指示した受取IDに対応するキュースメッセージをキューから削除する。
印刷データ取得要求受信部405は、画像形成装置104から印刷データ取得要求を受け付けるモジュールである。印刷データ取得要求受信部405は、画像形成装置104が要望した印刷データ取得URIに対して、印刷データの存在を確認する。
印刷データ格納部408に指定されたURIの印刷データが存在する場合、印刷データ取得要求受信部405は、印刷データ格納部408に保存された該当データを画像形成装置に対して送信する。
【0021】
ネットワークプルプリントシステム102のプラットフォームシステムの要求・状態変更受信キュー411、キューメッセージスケジューラー412、キューメッセージ管理テーブル413、処理依頼キュー414について図7を用いてより具体的に説明する。要求・状態変更受信キュー411、処理依頼キュー414は、共にクラウド環境におけるキューと同義である。
受信部410は、要求・状態変更受信キュー411に対しキューメッセージの追加指示を行う。
一方、キューメッセージスケジューラー412は、要求・状態変更受信キュー411に対しキューメッセージの取得指示と、キューメッセージの削除指示と、を行う。キューメッセージの取得指示とは、キューに登録されたキューメッセージを取得するオペレーションであり、キューメッセージの削除指示とは、指定したキューメッセージをキューから削除するオペレーションである。クラウド環境におけるキューとは、キューメッセージの取得だけでは、キューの情報は、削除されず、キューメッセージの処理が完了した後にキューメッセージの削除を行う必要がある。
受信部410は、ユーザから指定された情報をキューメッセージとして作成する。ユーザから指定された情報とは、ネットワークプルプリントの依頼か、デバイスの状況変更通知である。そして、受信部410は、要求・状態変更受信キュー411にキューメッセージの追加指示を送信する。
【0022】
追加指示を受信した要求・状態変更受信キュー411は、内部のキューにキューメッセージを追加する。このキューメッセージの追加は、要求・状態変更受信キュー411の内部に保持するキューで空き領域に追加される。
キューメッセージスケジューラー412は、キューメッセージを取得するために、要求・状態変更受信キュー411に取得指示を出す。取得指示を受けた要求・状態変更受信キュー411は、処理依頼キューの任意の場所からキューメッセージを取得する。
要求・状態変更受信キュー411によるキューメッセージの取得は、FIFOではないため、最初に要求・状態変更受信キュー411に追加されたキューメッセージが後続のキューメッセージよりも後で処理されることが発生する。
キューメッセージスケジューラー412は、要求・状態変更受信キュー411から取得したキューメッセージの種別が依頼か、状態変更かを確認してそれぞれの処理を行う。
キューメッセージが印刷要求の場合、キューメッセージスケジューラー412は、キューメッセージに登録された受付順番及び画像形成装置104の情報を確認する。キューメッセージスケジューラー412は、キューメッセージに登録された受付順番及び画像形成装置104の情報から優先度を決定し、その優先度に基づいてキューメッセージ管理テーブル413にキューメッセージを登録する。
【0023】
キューメッセージ管理テーブル413とは、受信したキューメッセージに対して優先度を付けたものを管理するテーブルである。管理テーブルには、優先度に応じて複数のキューメッセージを束ねたリストが存在する。リストは、データ一覧の一例である。
キューメッセージスケジューラー412は、処理依頼キュー414に対して、この優先度毎のキューメッセージリスト単位でキューメッセージの登録を行う。これによって、クライアント(画像形成装置)から受信したキューメッセージの処理順番がランダムであっても、受付順番が守られることになる。また、受付順番だけでなく、このようなシステムで処理優先度を用いて処理順番を決定したい場合でも本仕組みを用いて実現することができる。なお、以下では説明の簡略化のため、特に言及しない限り、キューメッセージスケジューラー412は、画像形成装置104の情報に基づいて、優先度を決定するものとして説明を行う。
キューメッセージスケジューラー412は、処理依頼キュー414の未処理件数を取得し、その件数が一定数より減少した場合、キューメッセージ管理テーブル413から最も優先度が高いキューメッセージリストを処理依頼キュー414に追加する。キューメッセージスケジューラー412は、処理依頼キューに登録したキューメッセージを、キューメッセージ管理テーブル413から削除して、最優先リストも変更する。
なお、図7に示されるように、クラウドコンピューティングシステムにおいては、ネットワークプルプリント処理部406、キューメッセージスケジューラー412、受信部410は、処理を分散実行するため、複数のタスクが動作している。
【0024】
キューメッセージスケジューラー412とキューメッセージ管理テーブル413におけるキューメッセージの管理方法とについて、図8を用いて説明する。
ここでは、例としてキューメッセージは、2つの優先度に分けられているものとする。P1は、優先度が高く、Pendingは、優先度が低いキューメッセージを示す。
キューメッセージ管理テーブルは、この2つの優先度に応じて、それぞれキューメッセージを管理する複数のリストを保有する。例えば、キューメッセージ管理テーブルは、優先度P1のキューメッセージを管理するリストL100、L101、L102・・・を保有し、優先度Pendingのキューメッセージを管理するリストL200、L201、L202・・・を保有する。これらのキューメッセージリストは、FIFO構造であり、P1リストは、L100、L101、L102という順番で利用される。
より具体的な例を挙げて説明する。画像形成装置の情報として印刷部の状態を通知しており、状態は、「印刷不可能(error)」と「印刷可能(ready)」との2つの状態があるとする。このとき、クライアントから取得した状態がready(印刷出来る)の場合、キューメッセージ管理テーブルは、P1としてキューメッセージを管理する。クライアントの状態がerror(印刷出来ない)の場合、キューメッセージ管理テーブルは、Pendingとしてキューメッセージを管理する。
このような管理状況において、図8Aの状態で新規に画像形成装置の情報がreadyである受付順番30の依頼があったとする。この場合、キューメッセージスケジューラー412は、画像形成装置の情報がreadyであるため、キューメッセージ管理テーブル413に対してP1として登録を行う。このときP1のリストは、リストL100、リストL101に空きエントリがないため、リストL102に登録されることになる。
【0025】
次に、図8Bの状態でキューメッセージ8を依頼した画像形成装置からreadyへの状態変更通知があったとする。この場合、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413から受付順番8のキューメッセージを検索する。検索した結果、受付順番8のキューメッセージが見つかると、キューメッセージスケジューラー412は、そのキューメッセージの優先度を通知されたreadyに相当するP1キューメッセージリストに移動させる。このとき、P1リストは、リストL100、リストL101に空きエントリがないため、リストL102に登録されることになる。例えば、画像形成装置が故障から復帰した場合等、このように、画像形成装置から、Errorからreadyへの状態変更通知がなされ、状態が、Errorからreadyへ変更され、前記画像形成層のキューメッセージの優先度が上がる。
最後に、図8Cの状態でキューメッセージスケジューラー412が、キューメッセージ管理テーブル413に登録されたキューメッセージから処理するキューメッセージを選択する場合の処理について、図8C、Dを用いてより具体的に説明する。
キューメッセージスケジューラー412が、処理依頼キュー414に処理を依頼する場合、キューメッセージ管理テーブル413から優先度の高い要求リストを取得する。図8Cの例では、リストL100が優先度の最も高い要求リストとなる。キューメッセージスケジューラー412が、リストL110を取得すると、そのリストに登録された受付順番12、No24、No16、No11、No15を処理依頼キュー414に登録する。そして、キューメッセージスケジューラー412は、処理依頼キュー414に登録したキューメッセージをキューメッセージ管理テーブル413から削除する。その結果、P1キューメッセージとしては、図8CのL101が最優先処理リストとなり、キューメッセージ管理テーブル413の内部は、図8Dのようになる。
【0026】
次に、ネットワークプルプリントのクライアントである画像形成装置104の処理を図9のフローチャートを用いて説明する。
画像形成装置104は、デバイスブラウザ401が備えるユーザインターフェース304からプルプリントの指示を実行されると(S100)、画像形成装置の情報を取得する(S101)。画像形成装置の情報とは、ネットワークプルプリントシステムがキューメッセージの優先度を判断するための情報である。例えば画像形成装置の印刷部の状態であったり、本キューメッセージが画像形成装置で処理される予測時間であったり、画像形成装置の印刷能力や製品名であったりする。
デバイスブラウザ401は、これらの情報を取得すると、プルプリント・デバイス情報送信アプリケーション409を利用して、ネットワークプルプリントシステム102の受信部410に印刷ドキュメント情報と、クライアント情報と、を通知する(S102)。
なお、以下、本明細書中では説明の簡略化のため、プルプリント・デバイス情報送信アプリケーション409を単に、送信アプリケーション409という。
送信アプリケーション409は、送信した要求に対する応答を受信すると(S103)、レスポンスとして受け取ったデータ取得URLに対して、印刷データの生成確認を行う(S104)。この確認の結果、印刷データが生成済みであると、画像形成装置104は、印刷データの取得を行い(S105)、印刷を実行する(S106)。
【0027】
一方、未生成であった場合、送信アプリケーション409は、印刷データ生成確認(S104)で印刷データの生成が取得完了するまでネットワークプルプリントシステム102に送信したクライアント情報に変更が発生していないかを確認する(S107)。クライアント情報に変更がない場合、再度印刷データの生成が完了しているかどうかを確認する処理(S104)に移行する。クライアント情報の変更を検知した場合(S107)、送信アプリケーション409は、ネットワークプルプリントシステム102の受信部410に対して変更情報を通知する(S108)。
送信するクライアント変更情報とは、例えば要求送信時には、画像形成装置の印刷処理部は、正常に動作していたが、トナーやインク切れ、用紙詰まりや、用紙切れが発生したことによって、印刷が中断された場合にエラーを送信知ることである。又は、他のジョブの割り込み等が発生したことによって、印刷可能時間が当初通知した時間から変更になった等である。
【0028】
次に、ネットワークプルプリントシステム102の受信部410の処理を図10のフローチャートを用いて説明する。
受信部410は、ネットワークプルプリントのクライアントである画像形成装置104からの要求の受け付け待ちを行う(S200)。新規に接続を受け付けると、受信部410は、送信要求を受信して(S201)、要求・状態変更受信キュー411に対して、要求内容情報を登録したキューメッセージを登録する(S202)。キューメッセージの登録が完了すると、受信部410は、ネットワークプルプリントクライアントである画像形成装置104に対して、処理結果、印刷データ取得要求URL、印刷要求の受付順番等を応答する(S203)。
【0029】
次に、ネットワークプルプリントシステム102のキューメッセージスケジューラー412の処理を図11A、図11B、図11Cのフローチャートを用いて説明する。
キューメッセージスケジューラー412は、要求・状態変更受信キュー411に関する処理S310と、処理依頼キュー(414)の処理S320と、を交互に行う。
図11Bを用いてネットワークプルプリントシステム102のキューメッセージスケジューラー412の要求・状態変更受信キュー411に関する処理を説明する。キューメッセージスケジューラー412は、要求・状態変更受信キュー411に未処理のキューメッセージが存在するかを確認する(S311)。確認した結果、未処理のキューメッセージが存在しない場合、キューメッセージスケジューラー412は、新規要求は存在しないため、処理を何もしない。
一方、キューメッセージが存在する場合、キューメッセージスケジューラー412は、キューからメッセージを取得し、そのメッセージに記された処理要求種別を判断する(S312)。この処理要求種別とは、印刷を行うネットワークプルプリント要求か、クライアントの状態変更通知か、の何れかである。
処理要求種別がプリント要求である場合、キューメッセージスケジューラー412は、キューメッセージから画像形成装置104の情報を取得し、プリント要求を処理する優先度を決定する(S316)。
プリント要求の優先度の決定方法について、例をあげて説明する。例えば、画像形成装置104の情報として画像形成装置の状態を利用する場合で、優先度が2段階である場合を説明する。このとき、キューメッセージスケジューラー412は、画像形成装置が印刷可能な場合は、優先度は、一番高く設定する。一方、キューメッセージスケジューラー412は、画像形成装置が印刷できない状況である場合は、優先度は、一番低く設定する。
また、画像形成装置104の情報として画像形成装置の印刷要求ジョブの出力予定時間を利用する場合を説明する。この場合、キューメッセージスケジューラー412は、出力予定時間を0分、5分以内、10分以内、15分以内・・・と5分毎に優先度を設定する。例えば、キューメッセージスケジューラー412は、出力予定時間0分のものを優先度1、5分以内のものを優先度2、15分以内のものを優先度3・・・と5分毎に優先度を設定する。
【0030】
プリント要求を処理する優先度が決定すると、キューメッセージスケジューラー412は、その優先度に応じてキューメッセージ管理テーブル413にキューメッセージを登録する(S317)。
キューメッセージ管理テーブル413では、キューメッセージの優先度に応じてキューメッセージリストを保有している。キューメッセージリストは、一定のキューメッセージのみを保存可能である。キューメッセージスケジューラー412は、処理依頼キュー414に対しては、キューメッセージ管理テーブル413のキューメッセージリスト単位で依頼を行う。優先度に応じてキューメッセージ管理テーブル413にキューメッセージを登録する際に、希望するキューメッセージのリストに登録できない場合、キューメッセージスケジューラー412は、優先度を下げたリストに登録する。
メッセージに記された処理要求種別を判断(S312)した結果、処理要求種別が状態変更通知である場合、キューメッセージスケジューラー412は、キューメッセージからリクエスタ情報及び受付順番を取得する。そして、キューメッセージスケジューラー412は、受付順番に基づき、キューメッセージ管理テーブル413から該当するキューメッセージを検索する(S313)。検索した結果、該当するキューメッセージが存在した場合(S314において存在)、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413に登録されたキューメッセージの優先度を変更する(S315)。該当のキューメッセージが存在しない場合、キューメッセージスケジューラー412は、何もしないで処理を終了する。
【0031】
図11Cを用いてネットワークプルプリントシステム102のキューメッセージスケジューラー412の処理依頼キュー414に関する処理を説明する。
キューメッセージスケジューラー412は、キューメッセージ管理テーブル413に未処理の要求が存在するかを確認する(S321)。確認した結果未処理の要求が存在しない場合、キューメッセージスケジューラー412は、新規要求は存在しないため、処理を何もしない。未処理の要求が存在する場合、キューメッセージスケジューラー412は、処理依頼キューの状況を確認する(S322)。処理依頼キューの状況とは、例えば、処理依頼キューに未処理要求が何件存在するか等である。処理依頼キューを確認した結果、キューメッセージスケジューラー412は、処理依頼キューの状況が定められた条件を満たしているか否か、例えば未処理件数が一定数以上存在するか否か、を確認する(S323)。
確認した結果、一定数存在する場合、キューメッセージスケジューラー412は、処理依頼キュー414への操作を何も行わない。理由は、未処理件数が一定数残っているにもかかわらず、次の要求を登録すると先行して投入した要求よりも後から追加した要求が処理されてしまう可能性が高くなるためである。一定数以上存在するかを確認した結果(S323)、一定数存在しない場合、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413に登録されたキューメッセージリストから優先度が最優先のリストを取得する。そして、キューメッセージスケジューラー412は、このリストに登録されたキューメッセージを処理依頼キュー414に登録する。そして、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413から取得したキューメッセージリストを、削除(S325)して処理を終了する。
図12は、本実施形態のシステムにおけるネットワークプルプリント処理の流れを表したシーケンス図である。画像形成装置104がユーザからネットワークプルプリント要求を受けてから、印刷が完了するまでの処理の流れを記している。
【0032】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0033】
以上、上述した各実施形態によれば、クラウドコンピューティングシステムのキューのように、受付順番通りに要求が処理されないシステムであっても、要求を受け付けた順番で処理を行うことが可能となる。
更に、同時に複数のクライアントからの要求を受け付けた場合、クライアントの状況に応じてサーバー側でのクライアントからの要求処理の優先度を自動で決定することで、クライアントの待ち時間を最小化することができる。
【0034】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
例えば、上述した実施形態1では、キューメッセージスケジューラー412は、受付順番と、画像形成装置104の情報と、に基づいて、優先度を決定する例を説明した。しかしながら、キューメッセージスケジューラー412は、受付順番だけに基づいて、優先度を決定するようにしてもよい。この様にすることによって、クラウドコンピューティングシステムのキューのように、受付順番通りに要求が処理されないシステムであっても、要求を受け付けた順番で処理を行うことが可能となる。
また、キューメッセージスケジューラー412が、受付順番と、画像形成装置104の情報と、に基づいて、優先度を決定する。このようにすることによって、同時に複数のクライアント(画像形成装置)からの要求を受け付けた場合、クライアントの状況に応じてネットワークプルプリントシステム102側で、クライアントからの要求処理の優先度を自動で決定することができる。その結果、ユーザの待ち時間を最小化することができる。
【技術分野】
【0001】
本発明は、クラウドコンピューティングシステム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、サーバーコンピュータ側で各種処理を行う形態として、クラウドコンピューティングシステムやSaaS(Software as a Service)という技術が利用され始めている。
クラウドコンピューティングでは、多くのクラウドリソース(コンピューティング・リソース、ストレージ・リソース)を利用し、データ変換やデータ処理を分散実行することで、多くのクライアントからの要求を同時に処理することが可能となる。
このようなクラウドコンピューティングシステムでは、スケーラビリティを重要視するため、ブリュワーのCAP定理における「可用性(Availability)」、「分割耐性(Partition Tolerance)」を採用し、「一貫性(Consistency)」を犠牲にしたシステムとなっている。
例えば、Windows(登録商標) Azureにおいても一貫性は保証されていない。より具体的には、Windows Azureは、参考文献1のように、クラウドコンピューティングにおけるキューでは、ファーストイン/ファーストアウト方式ではなく、処理する順番は、決まっていない。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】"WINDOWS AZURE の紹介"、MICROSOFT CORPORATION、2009年 12月、P23 キュー
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなクラウドコンピューティングシステム上に画像形成装置から指定されたドキュメントデータを取得し、そのドキュメントデータを印刷可能なデータ形式に変換するネットワークプルプリントサービスを構築した場合を想定する。
このようなネットワークプルプリントサービスに対して、多くの画像形成装置からプルプリント要求が行われると、その要求は、クラウドコンピューティングにおけるキューで管理されるため、どの順番で要求を処理するかは、保証されない。その結果、後から依頼したユーザのプリントが最初にプリントを依頼したユーザより先に処理される可能性がある。このような場合、最初にプリントを依頼したユーザは、長時間、プリントを待たされてしまう問題があった。
本発明はこのような問題点に鑑みなされたもので、クラウドコンピューティングシステムにおいても、要求を受け付けた順番で処理を行うことを可能にすることを目的とする。
【課題を解決するための手段】
【0005】
そこで、本発明のクラウドコンピューティングシステムは、画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶サービスに格納させる、要求受信プログラムを実行することにより実現される要求受信部と、前記記憶サービスに対し前記メッセージの取得要求を定期的に行い、前記記憶サービスから前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部と、を有するクラウドコンピューティングシステムであって、前記要求受信部がネットワークプルプリント要求を画像形成装置から受け付け、該要求に応じて発行されたキューメッセージを取得し、前記画像形成装置の状態に応じて該取得したキューメッセージの優先度を決定し、該キューメッセージを要求管理データに登録する登録手段と、前記登録手段により登録されたキューメッセージの中から優先度が高いキューメッセージを取得し、前記記憶サービスに該取得した優先度が高いキューメッセージを格納するよう指示する指示手段と、を有する。
【発明の効果】
【0006】
本発明によれば、クラウドコンピューティングシステムにおいても、要求を受け付けた順番で処理を行うことを可能にすることができる。
【図面の簡単な説明】
【0007】
【図1】本実施形態のシステム全体の構成の一例を示す図である。
【図2】本実施形態の画像形成装置のハードウェア構成の一例を示す図である。
【図3】本実施形態の情報処理装置のハードウェア構成の一例を示す図である。
【図4】従来のシステム等を説明するための図である。
【図5】従来のネットワークプルプリントシステムの処理依頼キューを説明するための図である。
【図6】本実施形態のシステム全体の機能構成の一例を示す図である。
【図7】本実施形態のネットワークプルプリントシステムの詳細を説明するための図である。
【図8A】キューメッセージ管理テーブルの一例を示す図(その1)である。
【図8B】キューメッセージ管理テーブルの一例を示す図(その2)である。
【図8C】キューメッセージ管理テーブルの一例を示す図(その3)である。
【図8D】キューメッセージ管理テーブルの一例を示す図(その4)である。
【図9】画像形成装置の処理の一例を示すフローチャートである。
【図10】ネットワークプルプリント要求・クライアント情報受信部の処理の一例を示すフローチャートである。
【図11A】キューメッセージスケジューラーの処理の一例を示すフローチャート(その1)である。
【図11B】キューメッセージスケジューラーの処理の一例を示すフローチャート(その2)である。
【図11C】キューメッセージスケジューラーの処理の一例を示すフローチャート(その3)である。
【図12】本実施形態のシステム全体の処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面に基づいて説明する。
【0009】
<実施形態1>
ネットワークプルプリントサービスを構成している各装置について、図1を参照して説明する。図1は、システム全体の構成の一例を示す図である。図1には、ネットワークプルプリントサービスを構成している各装置がネットワーク100を介して接続されている様子が示されている。ネットワークシステムを構成している各装置とは、ネットワークプルプリントシステム102、文書サーバー103、画像形成装置104である。
ネットワーク100は、上述の各装置の間で情報をやり取りするための通信回線である。インターネット101は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット101により、画像形成装置104が属するネットワーク100からは、ネットワークプルプリントシステム102等が属するネットワーク100と、ファイアウォールを越えて通信することができる。ネットワーク100、インターネット101は、例えば、TCP/IPプロトコル等をサポートする通信回線網であり、有線・無線は問わない。図1において、ネットワークプルプリントシステム102は、1台のサーバーとして示されているが複数台のサーバーコンピュータで構成されている。
【0010】
次に、図1のネットワークプルプリントサービスを構成している各装置の内部構成について説明する。始めに、画像形成装置104のハードウェア構成について図2を用いて説明する。図2は、画像形成装置104のハードウェア構成の一例を示す図である。
画像形成装置104は、画像処理ユニット201、印刷ユニット202、及び読み込みユニット203から構成される。画像処理ユニット201は、CPU204、直接記憶部205、間接記憶部206、ユーザインターフェース207、外部インターフェース208、消耗品管理ユニット209から構成されている。
CPU204は、所定のプログラムを実行し、画像形成装置104の各種制御を指示するユニットである。CPU204は、CPU(Central Processing Unit)により実現される。直接記憶部205は、CPU204がプログラムを実行する際に使用するワークメモリであり、CPU204が実行するプログラムは、直接記憶部205にロードされる。直接記憶部205は、RAM(Random Access Memory)により実現される。間接記憶部206は、アプリケーションプログラム、及びプラットフォームプログラムを含む各種プログラムが記憶されている。間接記憶部206に記憶されている各種プログラムは、CPU204がプログラムを実行する際に直接記憶部205へ移動される。間接記憶部206は、SSD(Solid State Drive)、又は、HDD(Hard Disc Drive)により実現される。なお、CPU204は、マルチプロセッサでもよい。
【0011】
ここで、プラットフォームについて説明する。プラットフォームの実現により、ユーザが独自に開発した新しいアプリケーションを画像形成装置104上で実行できる他、画像形成装置104の操作画面をカスタマイズすることが可能になる。
プラットフォームの実現方法について説明する。CPU204は、間接記憶部206に記憶されたプラットフォームプログラムを直接記憶部205に移動する。移動が完了するとCPU204は、プラットフォームプログラムを実行することができる状態になる。本実施形態では、CPU204がプラットフォームプログラムを実行することを、プラットフォームを起動すると称する。なお、プラットフォームは、画像形成装置104のファームウェア上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供するものである。
プラットフォーム上でアプリケーションプログラムを実行する方法について説明する。本実施形態において、プラットフォーム上には、印刷要求を受け付ける印刷ソフトウェアが動作している。印刷ソフトウェアは、ネットワークを介して接続されているデバイスから、例えば、HTTP(Hyper Text Transfer Protocol)等の通信プロトコルによって印刷データを受信することができる。印刷ソフトウェアは、受信した印刷データをファームウェアに送信し、印刷データを受信したファームウェアは、印刷データ処理を開始する。なお、印刷データが処理をせずに印刷できるようなものであれば、ファームウェアは、印刷データ処理を省く。このように、プラットフォームでアプリケーションプログラムを実行することによって、画像形成装置104の制御を実現することができる。
アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部206に記憶されたアプリケーションプログラムを直接記憶部205に移動する。移動が完了すると、プラットフォームは、アプリケーションプログラムを実行することができる状態になる。そして、プラットフォームは、アプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、本実施形態では、プラットフォームアプリケーションと呼ぶ。更に、プラットフォームは、本実施形態で開示するフローチャートの各処理の一部を行うことができる。
【0012】
ユーザインターフェース207は、ユーザからの処理依頼を受け付けるために必要なユニットである。例えば、ユーザインターフェース207は、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。外部インターフェース208は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリ等の外付け記憶装置、又は、ネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。画像形成装置104は、ネットワーク100、及びインターネット101を介してネットワークプルプリントシステム102等と通信可能である。
消耗品管理ユニット209は、印刷に必要な消耗品(トナーやインク、用紙等)を格納管理するユニットである。印刷を行うのに必要な消耗品がなくなる(トナー・インク切れや用紙切れ)と、消耗品管理ユニット209は、消耗品欠如イベントを発行する。また、欠如した消耗品を充填して印刷可能な状態になると、消耗品管理ユニット209は、消耗品充填イベントを発行する。これら消耗品欠如イベントや消耗品充填イベントは、プラットフォームアプリケーションにて検知する事が可能で、そのイベントに応じたプログラムを実行する事が可能である。
【0013】
起動制御ユニット210は、画像形成装置104の起動・終了を切り替える手段を有する。起動制御ユニット210により、画像形成装置104が起動状態に切り替えられると、CPU204は、起動状態にするために必要なプログラムを間接記憶部206から直接記憶部205へとロードして実行し、画像形成装置104を動作可能な状態にする。この起動状態にするために必要なプログラムは、定められた起動処理を完了すると、起動イベントを発行する。また、起動制御ユニット210により、画像形成装置104が終了状態に切り替えられると、CPU204は、終了状態にするために必要なプログラムを間接記憶部206から直接記憶部205へとロードして実行し、画像形成装置104を動作しない状態にする。この起動状態にするために必要なプログラムは、定められた起動処理を完了すると、終了イベントを発行する。前記起動イベント及び終了イベントは、プラットフォームアプリケーションにて検知する事が可能で、そのイベントに応じたプログラムを実行する事が可能である。
【0014】
次に、ネットワークプルプリントシステム102、文書サーバー103を含む情報処理装置のハードウェア構成について図3を用いて説明する。図3は、情報処理装置106のハードウェア構成の一例を示す図である。情報処理装置106は、CPU301、直接記憶部302、間接記憶部303、ユーザインターフェース304、外部インターフェース305から構成されている。
ユーザインターフェース304は、ユーザからの処理依頼を受け付けるために必要なユニットである。例えば、ユーザインターフェース304は、キーボード、マウス等を通してユーザが入力した指示に応じた信号を受け付ける。
CPU301は、所定のプログラムを実行し情報処理装置106の各種制御を指示するユニットである。CPU301は、CPUにより実現される。直接記憶部302は、CPU301がプログラムを実行する際に使用するワークメモリであり、CPU301が実行するプログラムは、直接記憶部302にロードされる。直接記憶部302は、RAMで構成されている。間接記憶部303は、アプリケーションプログラム、及びOS(Operating System)を含む各種プログラムが記憶されている。間接記憶部303に記憶されている各種プログラムは、CPU301がプログラムを実行する際に直接記憶部302へ移動する。間接記憶部303は、ROM、又は、HDDで構成されている。外部インターフェース305は、ネットワーク100に接続されており、ネットワーク100に接続されている他の装置と通信が可能となる。
次に、文書サーバー103の機能について説明する。文書サーバー103は、文書リポジトリ403の機能を持つ。文書リポジトリ403は、図3の間接記憶部303によって実現される。例えば、文書リポジトリ403には、ユーザが画像形成装置104から印刷指示したコンテンツが保存されている。
【0015】
次に、従来の画像形成装置104について図4を参照しながら説明する。図4は、従来のシステム等を説明するための図である。画像形成装置104には、デバイスブラウザ401、プルプリントアプリケーション402の機能がある。デバイスブラウザ401は、ネットワーク100を介して接続されているデバイス内に保存されているデータや情報をユーザが閲覧することができる機能を有する。デバイスブラウザ401は、図2の間接記憶部206に保存されているデバイスブラウザプログラムが、直接記憶部205にロードされ、CPU204により実行されることで実現される。また、ユーザは、デバイスブラウザ401を用いてコンテンツの印刷指示を出すことができる。デバイスブラウザ401は、例えば、Webブラウザである。
プルプリントアプリケーション402は、ネットワークプルプリント要求受信部404が作成した印刷データ取得URIに対して、定期的に印刷データ生成確認を行う。印刷データが生成されている場合は、プルプリントアプリケーション402は、印刷データの取得と印刷とを行う。
以上が、実施形態のネットワークプルプリントサービスにおける各装置が持つ機能の説明になる。
【0016】
次に、従来のネットワークプルプリントサービスを構成しているネットワークプルプリントシステム102のプラットフォームシステムについて図4を参照しながら説明する。ネットワークプルプリント要求受信部404は、画像形成装置104からのネットワークプルプリント要求を受け付けるモジュールである。ネットワークプルプリント要求受信部404は、画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶サービスに格納させる、要求受信プログラムを実行することにより実現される要求受信部に相当する。
ネットワークプルプリント要求受信部404は、処理依頼キュー407を介してネットワークプルプリント処理部406への処理依頼を送信する。処理依頼キュー407は、ネットワークプルプリント要求受信部404とネットワークプルプリント処理部406とが非同期でデータ通信するためのサービスを提供するものである。処理依頼キュー407は、記憶サービスに相当する。ネットワークプルプリント要求受信部404、及びネットワークプルプリント処理部406は、処理依頼キュー407に対し各種指示を出すことで、非同期でデータ通信する。ネットワークプルプリント処理部406は、前記記憶サービスに対し前記メッセージの取得要求を定期的に行う。また、記憶サービスから前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部に相当する。
ネットワークプルプリント処理部406は、処理依頼キュー407からキューメッセージを取得し、指定されたドキュメントの取得と、画像形成装置が印刷可能なデータフォーマットへの変換と、を行う。ネットワークプルプリント処理部406は、生成された画像形成装置が印刷可能なデータを、印刷データ格納部408に、印刷データを取得するための印刷データ取得URIと関連付けて保存する。これらの処理が完了すると、ネットワークプルプリント処理部406は、受取IDに対応するキューメッセージの削除指示を処理依頼キュー407に対して行う。削除指示を受けた処理依頼キュー407は、ネットワークプルプリント処理部406が指示した受取IDに対応するキュースメッセージをキューから削除する。印刷データ取得要求受信部405は、画像形成装置104から印刷データ取得要求を受け付けるモジュールである。印刷データ取得要求受信部405は、画像形成装置104が要望した印刷データ取得URIに対して、印刷データの存在を確認する。
印刷データ格納部408に指定されたURIの印刷データが存在する場合、印刷データ取得要求受信部405は、印刷データ格納部408に保存された該当データを画像形成装置に対して送信する。
【0017】
従来のネットワークプルプリントサービスを構成しているネットワークプルプリントシステム102のプラットフォームシステムの処理依頼キュー407について、図5を用いてより具体的に説明する。処理依頼キュー407は、例えば、クラウド環境におけるキューと同義である。
ネットワークプルプリント要求受信部404は、処理依頼キュー407に対してキューメッセージの追加指示を行う。一方、ネットワークプルプリント処理部406は、処理依頼キュー407に対してキューメッセージの取得指示とキューメッセージの削除指示とを行う。キューメッセージの取得指示とは、キューに登録されたキューメッセージを取得するオペレーションであり、キューメッセージの削除指示とは、指定したキューメッセージをキューから削除するオペレーションである。クラウド環境におけるキューとは、キューメッセージの取得だけでは、キューの情報は、削除されず、キューメッセージの処理が完了した後にキューメッセージの削除を行う必要がある。
ネットワークプルプリント要求受信部404は、ユーザから指定された情報をキューメッセージとして作成し、キューメッセージをキューに追加するように処理依頼キュー407に追加指示を送信する。追加指示を受信した処理依頼キュー407は、内部のキューにキューメッセージを追加する。このキューメッセージの追加は、処理依頼キュー407の内部に保持するキューで空き領域に追加される。
【0018】
一方、ネットワークプルプリント処理部406は、キューメッセージを取得するために、処理依頼キュー407に取得指示を出す。取得指示を受けた処理依頼キュー407は、処理依頼キューの任意の場所からキューメッセージを取得する。この取得処理は、FIFOではなく、任意の場所からキューメッセージが取得される。即ち、最初にシステムの処理依頼キュー407に追加されたキューメッセージが後続のキューメッセージよりも後で処理されることが発生する。
ネットワークプルプリント処理部406の処理が短時間であれば、このような順番の逆転は、大きな問題ではないが、ネットワークプルプリント処理部406の処理時間が長くなれば長くなるほど、このようなキューシステムによる不都合が目立ってしまう。例えば、要求処理に1分間かかる要求が10個たまった状態を考える。この状態で新規の要求を行うと、運が良ければ、最初に処理されるためそのユーザの待ち時間は、自身の要求処理時間の1分だけである。しかし、このようなことが頻発すると、先行して依頼していたキューメッセージが処理されず、そのユーザの処理待ち時間が非常に長くなってしまう。
【0019】
次に、本実施形態のネットワークプルプリントサービスを構成しているネットワークプルプリントシステム102のプラットフォームシステムについて図6を参照しながら説明する。
ネットワークプルプリント要求・クライアント情報受信部410は、画像形成装置104からのネットワークプルプリント要求と画像形成装置104の情報とを受け付けるモジュールである。画像形成装置104の情報とは、例えば画像形成装置の印刷部(印刷ユニット)のステータス(状態)であり、idle(印刷可能)、processing(印刷中)、error(印刷できず)、である。或いは、画像形成装置104の情報とは、現在印刷要求が行われている全印刷ジョブの総処理時間を示し、要求した印刷データが何分後に印刷できるかという情報であってもよいし、画像形成装置能力であってもよい。なお、画像形成装置104の情報は、画像形成装置情報の一例である。
本実施形態では、特に言及しない限り、画像形成装置104の情報として、印刷部の状態を用いて説明を行う。また、印刷部の状態も説明を判り易く行うために、印刷不可能(error)と印刷可能(ready)との2つの状態を用いて説明を行う。但し、このことは本実施形態を制限するものではない。
なお、以下、本明細書中では説明の簡略化のため、ネットワークプルプリント要求・クライアント情報受信部410を単に、受信部410という。
受信部410は、ネットワークプルプリント要求と、画像形成装置104の状態と、を受信すると、要求・状態変更受信キュー411に対して依頼・状態変更を通知する。要求・状態変更受信キュー411は、要求受信キューの一例である。受信部410は、受け付けた順序に応じて、キューメッセージに受付順番を付与する。例えば、後述する図7等に示される依頼「××」readyの「××」の部分が受付順番に対応する。
【0020】
キューメッセージスケジューラー412は、要求・状態変更受信キュー411からキューメッセージを取得して画像形成装置104から受信したメッセージが印刷要求か、リクエスタ情報通知であるかを確認し、そのメッセージに応じた処理を行う。キューメッセージスケジューラー412は、スケジュール手段の一例である。
キューメッセージスケジューラー412は、処理依頼キュー414の状態を確認し、処理依頼キュー414のジョブ状況に応じて、キューメッセージ管理テーブル413に保持されたキューメッセージを処理依頼キュー414に登録する。キューメッセージ管理テーブル413は、要求管理データの一例である。また、キューメッセージスケジューラー412は、処理依頼キューの未処理状況のジョブが一定数より少なくなったことを検知すると、キューメッセージ管理テーブル413から再も優先度が高いキューメッセージリストを取得する。そして、キューメッセージスケジューラー412は、キューメッセージリストに登録されたキューメッセージを処理依頼キュー414に登録する。キューメッセージスケジューラー412は、登録したキューメッセージを、キューメッセージ管理テーブル413から削除する。
ネットワークプルプリント処理部406は、処理依頼キュー414からキューメッセージを取得し、指定されたドキュメントの取得と画像形成装置が印刷可能なデータフォーマットへの変換とを行う。ネットワークプルプリント処理部406は、生成された画像形成装置が印刷可能なデータを、印刷データ格納部408に、印刷データを取得するための印刷データ取得URIと関連付けて印刷データ格納部408に保存する。
これらの処理が完了すると、ネットワークプルプリント処理部406は、受取IDに対応するキューメッセージの削除指示を処理依頼キュー414に対して行う。削除指示を受けた処理依頼キュー414は、ネットワークプルプリント処理部406が指示した受取IDに対応するキュースメッセージをキューから削除する。
印刷データ取得要求受信部405は、画像形成装置104から印刷データ取得要求を受け付けるモジュールである。印刷データ取得要求受信部405は、画像形成装置104が要望した印刷データ取得URIに対して、印刷データの存在を確認する。
印刷データ格納部408に指定されたURIの印刷データが存在する場合、印刷データ取得要求受信部405は、印刷データ格納部408に保存された該当データを画像形成装置に対して送信する。
【0021】
ネットワークプルプリントシステム102のプラットフォームシステムの要求・状態変更受信キュー411、キューメッセージスケジューラー412、キューメッセージ管理テーブル413、処理依頼キュー414について図7を用いてより具体的に説明する。要求・状態変更受信キュー411、処理依頼キュー414は、共にクラウド環境におけるキューと同義である。
受信部410は、要求・状態変更受信キュー411に対しキューメッセージの追加指示を行う。
一方、キューメッセージスケジューラー412は、要求・状態変更受信キュー411に対しキューメッセージの取得指示と、キューメッセージの削除指示と、を行う。キューメッセージの取得指示とは、キューに登録されたキューメッセージを取得するオペレーションであり、キューメッセージの削除指示とは、指定したキューメッセージをキューから削除するオペレーションである。クラウド環境におけるキューとは、キューメッセージの取得だけでは、キューの情報は、削除されず、キューメッセージの処理が完了した後にキューメッセージの削除を行う必要がある。
受信部410は、ユーザから指定された情報をキューメッセージとして作成する。ユーザから指定された情報とは、ネットワークプルプリントの依頼か、デバイスの状況変更通知である。そして、受信部410は、要求・状態変更受信キュー411にキューメッセージの追加指示を送信する。
【0022】
追加指示を受信した要求・状態変更受信キュー411は、内部のキューにキューメッセージを追加する。このキューメッセージの追加は、要求・状態変更受信キュー411の内部に保持するキューで空き領域に追加される。
キューメッセージスケジューラー412は、キューメッセージを取得するために、要求・状態変更受信キュー411に取得指示を出す。取得指示を受けた要求・状態変更受信キュー411は、処理依頼キューの任意の場所からキューメッセージを取得する。
要求・状態変更受信キュー411によるキューメッセージの取得は、FIFOではないため、最初に要求・状態変更受信キュー411に追加されたキューメッセージが後続のキューメッセージよりも後で処理されることが発生する。
キューメッセージスケジューラー412は、要求・状態変更受信キュー411から取得したキューメッセージの種別が依頼か、状態変更かを確認してそれぞれの処理を行う。
キューメッセージが印刷要求の場合、キューメッセージスケジューラー412は、キューメッセージに登録された受付順番及び画像形成装置104の情報を確認する。キューメッセージスケジューラー412は、キューメッセージに登録された受付順番及び画像形成装置104の情報から優先度を決定し、その優先度に基づいてキューメッセージ管理テーブル413にキューメッセージを登録する。
【0023】
キューメッセージ管理テーブル413とは、受信したキューメッセージに対して優先度を付けたものを管理するテーブルである。管理テーブルには、優先度に応じて複数のキューメッセージを束ねたリストが存在する。リストは、データ一覧の一例である。
キューメッセージスケジューラー412は、処理依頼キュー414に対して、この優先度毎のキューメッセージリスト単位でキューメッセージの登録を行う。これによって、クライアント(画像形成装置)から受信したキューメッセージの処理順番がランダムであっても、受付順番が守られることになる。また、受付順番だけでなく、このようなシステムで処理優先度を用いて処理順番を決定したい場合でも本仕組みを用いて実現することができる。なお、以下では説明の簡略化のため、特に言及しない限り、キューメッセージスケジューラー412は、画像形成装置104の情報に基づいて、優先度を決定するものとして説明を行う。
キューメッセージスケジューラー412は、処理依頼キュー414の未処理件数を取得し、その件数が一定数より減少した場合、キューメッセージ管理テーブル413から最も優先度が高いキューメッセージリストを処理依頼キュー414に追加する。キューメッセージスケジューラー412は、処理依頼キューに登録したキューメッセージを、キューメッセージ管理テーブル413から削除して、最優先リストも変更する。
なお、図7に示されるように、クラウドコンピューティングシステムにおいては、ネットワークプルプリント処理部406、キューメッセージスケジューラー412、受信部410は、処理を分散実行するため、複数のタスクが動作している。
【0024】
キューメッセージスケジューラー412とキューメッセージ管理テーブル413におけるキューメッセージの管理方法とについて、図8を用いて説明する。
ここでは、例としてキューメッセージは、2つの優先度に分けられているものとする。P1は、優先度が高く、Pendingは、優先度が低いキューメッセージを示す。
キューメッセージ管理テーブルは、この2つの優先度に応じて、それぞれキューメッセージを管理する複数のリストを保有する。例えば、キューメッセージ管理テーブルは、優先度P1のキューメッセージを管理するリストL100、L101、L102・・・を保有し、優先度Pendingのキューメッセージを管理するリストL200、L201、L202・・・を保有する。これらのキューメッセージリストは、FIFO構造であり、P1リストは、L100、L101、L102という順番で利用される。
より具体的な例を挙げて説明する。画像形成装置の情報として印刷部の状態を通知しており、状態は、「印刷不可能(error)」と「印刷可能(ready)」との2つの状態があるとする。このとき、クライアントから取得した状態がready(印刷出来る)の場合、キューメッセージ管理テーブルは、P1としてキューメッセージを管理する。クライアントの状態がerror(印刷出来ない)の場合、キューメッセージ管理テーブルは、Pendingとしてキューメッセージを管理する。
このような管理状況において、図8Aの状態で新規に画像形成装置の情報がreadyである受付順番30の依頼があったとする。この場合、キューメッセージスケジューラー412は、画像形成装置の情報がreadyであるため、キューメッセージ管理テーブル413に対してP1として登録を行う。このときP1のリストは、リストL100、リストL101に空きエントリがないため、リストL102に登録されることになる。
【0025】
次に、図8Bの状態でキューメッセージ8を依頼した画像形成装置からreadyへの状態変更通知があったとする。この場合、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413から受付順番8のキューメッセージを検索する。検索した結果、受付順番8のキューメッセージが見つかると、キューメッセージスケジューラー412は、そのキューメッセージの優先度を通知されたreadyに相当するP1キューメッセージリストに移動させる。このとき、P1リストは、リストL100、リストL101に空きエントリがないため、リストL102に登録されることになる。例えば、画像形成装置が故障から復帰した場合等、このように、画像形成装置から、Errorからreadyへの状態変更通知がなされ、状態が、Errorからreadyへ変更され、前記画像形成層のキューメッセージの優先度が上がる。
最後に、図8Cの状態でキューメッセージスケジューラー412が、キューメッセージ管理テーブル413に登録されたキューメッセージから処理するキューメッセージを選択する場合の処理について、図8C、Dを用いてより具体的に説明する。
キューメッセージスケジューラー412が、処理依頼キュー414に処理を依頼する場合、キューメッセージ管理テーブル413から優先度の高い要求リストを取得する。図8Cの例では、リストL100が優先度の最も高い要求リストとなる。キューメッセージスケジューラー412が、リストL110を取得すると、そのリストに登録された受付順番12、No24、No16、No11、No15を処理依頼キュー414に登録する。そして、キューメッセージスケジューラー412は、処理依頼キュー414に登録したキューメッセージをキューメッセージ管理テーブル413から削除する。その結果、P1キューメッセージとしては、図8CのL101が最優先処理リストとなり、キューメッセージ管理テーブル413の内部は、図8Dのようになる。
【0026】
次に、ネットワークプルプリントのクライアントである画像形成装置104の処理を図9のフローチャートを用いて説明する。
画像形成装置104は、デバイスブラウザ401が備えるユーザインターフェース304からプルプリントの指示を実行されると(S100)、画像形成装置の情報を取得する(S101)。画像形成装置の情報とは、ネットワークプルプリントシステムがキューメッセージの優先度を判断するための情報である。例えば画像形成装置の印刷部の状態であったり、本キューメッセージが画像形成装置で処理される予測時間であったり、画像形成装置の印刷能力や製品名であったりする。
デバイスブラウザ401は、これらの情報を取得すると、プルプリント・デバイス情報送信アプリケーション409を利用して、ネットワークプルプリントシステム102の受信部410に印刷ドキュメント情報と、クライアント情報と、を通知する(S102)。
なお、以下、本明細書中では説明の簡略化のため、プルプリント・デバイス情報送信アプリケーション409を単に、送信アプリケーション409という。
送信アプリケーション409は、送信した要求に対する応答を受信すると(S103)、レスポンスとして受け取ったデータ取得URLに対して、印刷データの生成確認を行う(S104)。この確認の結果、印刷データが生成済みであると、画像形成装置104は、印刷データの取得を行い(S105)、印刷を実行する(S106)。
【0027】
一方、未生成であった場合、送信アプリケーション409は、印刷データ生成確認(S104)で印刷データの生成が取得完了するまでネットワークプルプリントシステム102に送信したクライアント情報に変更が発生していないかを確認する(S107)。クライアント情報に変更がない場合、再度印刷データの生成が完了しているかどうかを確認する処理(S104)に移行する。クライアント情報の変更を検知した場合(S107)、送信アプリケーション409は、ネットワークプルプリントシステム102の受信部410に対して変更情報を通知する(S108)。
送信するクライアント変更情報とは、例えば要求送信時には、画像形成装置の印刷処理部は、正常に動作していたが、トナーやインク切れ、用紙詰まりや、用紙切れが発生したことによって、印刷が中断された場合にエラーを送信知ることである。又は、他のジョブの割り込み等が発生したことによって、印刷可能時間が当初通知した時間から変更になった等である。
【0028】
次に、ネットワークプルプリントシステム102の受信部410の処理を図10のフローチャートを用いて説明する。
受信部410は、ネットワークプルプリントのクライアントである画像形成装置104からの要求の受け付け待ちを行う(S200)。新規に接続を受け付けると、受信部410は、送信要求を受信して(S201)、要求・状態変更受信キュー411に対して、要求内容情報を登録したキューメッセージを登録する(S202)。キューメッセージの登録が完了すると、受信部410は、ネットワークプルプリントクライアントである画像形成装置104に対して、処理結果、印刷データ取得要求URL、印刷要求の受付順番等を応答する(S203)。
【0029】
次に、ネットワークプルプリントシステム102のキューメッセージスケジューラー412の処理を図11A、図11B、図11Cのフローチャートを用いて説明する。
キューメッセージスケジューラー412は、要求・状態変更受信キュー411に関する処理S310と、処理依頼キュー(414)の処理S320と、を交互に行う。
図11Bを用いてネットワークプルプリントシステム102のキューメッセージスケジューラー412の要求・状態変更受信キュー411に関する処理を説明する。キューメッセージスケジューラー412は、要求・状態変更受信キュー411に未処理のキューメッセージが存在するかを確認する(S311)。確認した結果、未処理のキューメッセージが存在しない場合、キューメッセージスケジューラー412は、新規要求は存在しないため、処理を何もしない。
一方、キューメッセージが存在する場合、キューメッセージスケジューラー412は、キューからメッセージを取得し、そのメッセージに記された処理要求種別を判断する(S312)。この処理要求種別とは、印刷を行うネットワークプルプリント要求か、クライアントの状態変更通知か、の何れかである。
処理要求種別がプリント要求である場合、キューメッセージスケジューラー412は、キューメッセージから画像形成装置104の情報を取得し、プリント要求を処理する優先度を決定する(S316)。
プリント要求の優先度の決定方法について、例をあげて説明する。例えば、画像形成装置104の情報として画像形成装置の状態を利用する場合で、優先度が2段階である場合を説明する。このとき、キューメッセージスケジューラー412は、画像形成装置が印刷可能な場合は、優先度は、一番高く設定する。一方、キューメッセージスケジューラー412は、画像形成装置が印刷できない状況である場合は、優先度は、一番低く設定する。
また、画像形成装置104の情報として画像形成装置の印刷要求ジョブの出力予定時間を利用する場合を説明する。この場合、キューメッセージスケジューラー412は、出力予定時間を0分、5分以内、10分以内、15分以内・・・と5分毎に優先度を設定する。例えば、キューメッセージスケジューラー412は、出力予定時間0分のものを優先度1、5分以内のものを優先度2、15分以内のものを優先度3・・・と5分毎に優先度を設定する。
【0030】
プリント要求を処理する優先度が決定すると、キューメッセージスケジューラー412は、その優先度に応じてキューメッセージ管理テーブル413にキューメッセージを登録する(S317)。
キューメッセージ管理テーブル413では、キューメッセージの優先度に応じてキューメッセージリストを保有している。キューメッセージリストは、一定のキューメッセージのみを保存可能である。キューメッセージスケジューラー412は、処理依頼キュー414に対しては、キューメッセージ管理テーブル413のキューメッセージリスト単位で依頼を行う。優先度に応じてキューメッセージ管理テーブル413にキューメッセージを登録する際に、希望するキューメッセージのリストに登録できない場合、キューメッセージスケジューラー412は、優先度を下げたリストに登録する。
メッセージに記された処理要求種別を判断(S312)した結果、処理要求種別が状態変更通知である場合、キューメッセージスケジューラー412は、キューメッセージからリクエスタ情報及び受付順番を取得する。そして、キューメッセージスケジューラー412は、受付順番に基づき、キューメッセージ管理テーブル413から該当するキューメッセージを検索する(S313)。検索した結果、該当するキューメッセージが存在した場合(S314において存在)、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413に登録されたキューメッセージの優先度を変更する(S315)。該当のキューメッセージが存在しない場合、キューメッセージスケジューラー412は、何もしないで処理を終了する。
【0031】
図11Cを用いてネットワークプルプリントシステム102のキューメッセージスケジューラー412の処理依頼キュー414に関する処理を説明する。
キューメッセージスケジューラー412は、キューメッセージ管理テーブル413に未処理の要求が存在するかを確認する(S321)。確認した結果未処理の要求が存在しない場合、キューメッセージスケジューラー412は、新規要求は存在しないため、処理を何もしない。未処理の要求が存在する場合、キューメッセージスケジューラー412は、処理依頼キューの状況を確認する(S322)。処理依頼キューの状況とは、例えば、処理依頼キューに未処理要求が何件存在するか等である。処理依頼キューを確認した結果、キューメッセージスケジューラー412は、処理依頼キューの状況が定められた条件を満たしているか否か、例えば未処理件数が一定数以上存在するか否か、を確認する(S323)。
確認した結果、一定数存在する場合、キューメッセージスケジューラー412は、処理依頼キュー414への操作を何も行わない。理由は、未処理件数が一定数残っているにもかかわらず、次の要求を登録すると先行して投入した要求よりも後から追加した要求が処理されてしまう可能性が高くなるためである。一定数以上存在するかを確認した結果(S323)、一定数存在しない場合、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413に登録されたキューメッセージリストから優先度が最優先のリストを取得する。そして、キューメッセージスケジューラー412は、このリストに登録されたキューメッセージを処理依頼キュー414に登録する。そして、キューメッセージスケジューラー412は、キューメッセージ管理テーブル413から取得したキューメッセージリストを、削除(S325)して処理を終了する。
図12は、本実施形態のシステムにおけるネットワークプルプリント処理の流れを表したシーケンス図である。画像形成装置104がユーザからネットワークプルプリント要求を受けてから、印刷が完了するまでの処理の流れを記している。
【0032】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0033】
以上、上述した各実施形態によれば、クラウドコンピューティングシステムのキューのように、受付順番通りに要求が処理されないシステムであっても、要求を受け付けた順番で処理を行うことが可能となる。
更に、同時に複数のクライアントからの要求を受け付けた場合、クライアントの状況に応じてサーバー側でのクライアントからの要求処理の優先度を自動で決定することで、クライアントの待ち時間を最小化することができる。
【0034】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
例えば、上述した実施形態1では、キューメッセージスケジューラー412は、受付順番と、画像形成装置104の情報と、に基づいて、優先度を決定する例を説明した。しかしながら、キューメッセージスケジューラー412は、受付順番だけに基づいて、優先度を決定するようにしてもよい。この様にすることによって、クラウドコンピューティングシステムのキューのように、受付順番通りに要求が処理されないシステムであっても、要求を受け付けた順番で処理を行うことが可能となる。
また、キューメッセージスケジューラー412が、受付順番と、画像形成装置104の情報と、に基づいて、優先度を決定する。このようにすることによって、同時に複数のクライアント(画像形成装置)からの要求を受け付けた場合、クライアントの状況に応じてネットワークプルプリントシステム102側で、クライアントからの要求処理の優先度を自動で決定することができる。その結果、ユーザの待ち時間を最小化することができる。
【特許請求の範囲】
【請求項1】
画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するキューメッセージを記憶サービスに格納させる、要求受信プログラムを実行することにより実現される要求受信部と、
前記記憶サービスに対し前記キューメッセージの取得要求を定期的に行い、前記記憶サービスから前記キューメッセージを取得した場合は、該取得したキューメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部と、
を有するクラウドコンピューティングシステムであって、
前記要求受信部がネットワークプルプリント要求を画像形成装置から受け付け、該要求に応じて発行されたキューメッセージを取得し、前記画像形成装置の状態に応じて該取得したキューメッセージの優先度を決定し、該キューメッセージを要求管理データに登録する登録手段と、
前記登録手段により登録されたキューメッセージの中から優先度が高いキューメッセージを取得し、前記記憶サービスに該取得した優先度が高いキューメッセージを格納するよう指示する指示手段と、
を有するクラウドコンピューティングシステム。
【請求項2】
複数の画像形成装置とネットワークを介して通信可能な、複数のサーバーコンピュータから構成されるクラウドコンピューティングシステムであって、
画像形成装置からネットワークプルプリント要求を受け付けると、受付順番を登録した、ネットワークプルプリント要求のキューメッセージを、要求受信キューに通知する受信手段と、
要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番に基づいて、受付順番が若い程、優先度が高くなるよう前記キューメッセージの優先度を決定し、前記決定した優先度に基づいて、前記キューメッセージを、要求管理データに登録し、処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高い前記キューメッセージを取得し、前記処理依頼キューに追加するスケジュール手段と、
前記処理依頼キューからキューメッセージを取得し、取得したキューメッセージで指定されたドキュメントを取得する処理と取得したドキュメントを画像形成装置が印刷可能なデータフォーマットへ変換する処理とを行うネットワークプルプリント処理手段と、
を有するクラウドコンピューティングシステム。
【請求項3】
前記要求管理データは、複数のキューメッセージを束ねたデータ一覧を優先度に応じて保持する構成を有し、
前記スケジュール手段は、前記キューメッセージを、前記決定した優先度に基づいて、前記要求管理データのデータ一覧に登録し、前記処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高いデータ一覧を取得し、取得したデータ一覧に含まれるキューメッセージを、前記処理依頼キューに追加する請求項2記載のクラウドコンピューティングシステム。
【請求項4】
前記受信手段は、画像形成装置からネットワークプルプリント要求と、画像形成装置情報と、を受け付けると、受付順番と、前記画像形成装置情報と、を登録した、ネットワークプルプリント要求のキューメッセージを、前記要求受信キューに通知し、
前記スケジュール手段は、要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番と、前記画像形成装置情報と、に基づいて、前記キューメッセージの優先度を決定する請求項2又は3記載のクラウドコンピューティングシステム。
【請求項5】
前記画像形成装置情報とは、画像形成装置の印刷部の状態を表わす情報であり、
前記スケジュール手段は、取得したキューメッセージに登録されている前記画像形成装置情報が、印刷部が印刷出来ることを表わしている場合、印刷部が印刷出来ないことを表わしている場合よりも優先度を高く決定する請求項4記載のクラウドコンピューティングシステム。
【請求項6】
前記受信手段は、画像形成装置から受付順番を含む状態変更通知を受け取ると、前記状態変更通知のキューメッセージを、前記要求受信キューに通知し、
前記スケジュール手段は、前記要求受信キューよりキューメッセージを取得し、取得したキューメッセージが前記状態変更通知のキューメッセージであった場合、前記状態変更通知に含まれる受付順番に基づいて、前記要求管理データより該当するキューメッセージを検索し、該当するキューメッセージが存在した場合、前記状態変更通知の内容に応じて、前記キューメッセージの優先度を変更する請求項4又は5記載のクラウドコンピューティングシステム。
【請求項7】
複数の画像形成装置とネットワークを介して通信可能な、複数のサーバーコンピュータから構成されるクラウドコンピューティングシステムが実行する情報処理方法であって、
画像形成装置からネットワークプルプリント要求を受け付けると、受付順番を登録した、ネットワークプルプリント要求のキューメッセージを、要求受信キューに通知する受信ステップと、
要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番に基づいて、受付順番が若い程、優先度が高くなるよう前記キューメッセージの優先度を決定し、前記決定した優先度に基づいて、前記キューメッセージを、要求管理データに登録し、処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高い前記キューメッセージを取得し、前記処理依頼キューに追加するスケジュールステップと、
前記処理依頼キューからキューメッセージを取得し、取得したキューメッセージで指定されたドキュメントを取得する処理と取得したドキュメントを画像形成装置が印刷可能なデータフォーマットへ変換する処理とを行うネットワークプルプリント処理ステップと、
を含む情報処理方法。
【請求項8】
複数の画像形成装置とネットワークを介して通信可能な、複数のサーバーコンピュータから構成されるクラウドコンピューティングシステムのコンピュータに、
画像形成装置からネットワークプルプリント要求を受け付けると、受付順番を登録した、ネットワークプルプリント要求のキューメッセージを、要求受信キューに通知する受信ステップと、
要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番に基づいて、受付順番が若い程、優先度が高くなるよう前記キューメッセージの優先度を決定し、前記決定した優先度に基づいて、前記キューメッセージを、要求管理データに登録し、処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高い前記キューメッセージを取得し、前記処理依頼キューに追加するスケジュールステップと、
前記処理依頼キューからキューメッセージを取得し、取得したキューメッセージで指定されたドキュメントを取得する処理と取得したドキュメントを画像形成装置が印刷可能なデータフォーマットへ変換する処理とを行うネットワークプルプリント処理ステップと、
を実行させるプログラム。
【請求項1】
画像形成装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するキューメッセージを記憶サービスに格納させる、要求受信プログラムを実行することにより実現される要求受信部と、
前記記憶サービスに対し前記キューメッセージの取得要求を定期的に行い、前記記憶サービスから前記キューメッセージを取得した場合は、該取得したキューメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部と、
を有するクラウドコンピューティングシステムであって、
前記要求受信部がネットワークプルプリント要求を画像形成装置から受け付け、該要求に応じて発行されたキューメッセージを取得し、前記画像形成装置の状態に応じて該取得したキューメッセージの優先度を決定し、該キューメッセージを要求管理データに登録する登録手段と、
前記登録手段により登録されたキューメッセージの中から優先度が高いキューメッセージを取得し、前記記憶サービスに該取得した優先度が高いキューメッセージを格納するよう指示する指示手段と、
を有するクラウドコンピューティングシステム。
【請求項2】
複数の画像形成装置とネットワークを介して通信可能な、複数のサーバーコンピュータから構成されるクラウドコンピューティングシステムであって、
画像形成装置からネットワークプルプリント要求を受け付けると、受付順番を登録した、ネットワークプルプリント要求のキューメッセージを、要求受信キューに通知する受信手段と、
要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番に基づいて、受付順番が若い程、優先度が高くなるよう前記キューメッセージの優先度を決定し、前記決定した優先度に基づいて、前記キューメッセージを、要求管理データに登録し、処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高い前記キューメッセージを取得し、前記処理依頼キューに追加するスケジュール手段と、
前記処理依頼キューからキューメッセージを取得し、取得したキューメッセージで指定されたドキュメントを取得する処理と取得したドキュメントを画像形成装置が印刷可能なデータフォーマットへ変換する処理とを行うネットワークプルプリント処理手段と、
を有するクラウドコンピューティングシステム。
【請求項3】
前記要求管理データは、複数のキューメッセージを束ねたデータ一覧を優先度に応じて保持する構成を有し、
前記スケジュール手段は、前記キューメッセージを、前記決定した優先度に基づいて、前記要求管理データのデータ一覧に登録し、前記処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高いデータ一覧を取得し、取得したデータ一覧に含まれるキューメッセージを、前記処理依頼キューに追加する請求項2記載のクラウドコンピューティングシステム。
【請求項4】
前記受信手段は、画像形成装置からネットワークプルプリント要求と、画像形成装置情報と、を受け付けると、受付順番と、前記画像形成装置情報と、を登録した、ネットワークプルプリント要求のキューメッセージを、前記要求受信キューに通知し、
前記スケジュール手段は、要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番と、前記画像形成装置情報と、に基づいて、前記キューメッセージの優先度を決定する請求項2又は3記載のクラウドコンピューティングシステム。
【請求項5】
前記画像形成装置情報とは、画像形成装置の印刷部の状態を表わす情報であり、
前記スケジュール手段は、取得したキューメッセージに登録されている前記画像形成装置情報が、印刷部が印刷出来ることを表わしている場合、印刷部が印刷出来ないことを表わしている場合よりも優先度を高く決定する請求項4記載のクラウドコンピューティングシステム。
【請求項6】
前記受信手段は、画像形成装置から受付順番を含む状態変更通知を受け取ると、前記状態変更通知のキューメッセージを、前記要求受信キューに通知し、
前記スケジュール手段は、前記要求受信キューよりキューメッセージを取得し、取得したキューメッセージが前記状態変更通知のキューメッセージであった場合、前記状態変更通知に含まれる受付順番に基づいて、前記要求管理データより該当するキューメッセージを検索し、該当するキューメッセージが存在した場合、前記状態変更通知の内容に応じて、前記キューメッセージの優先度を変更する請求項4又は5記載のクラウドコンピューティングシステム。
【請求項7】
複数の画像形成装置とネットワークを介して通信可能な、複数のサーバーコンピュータから構成されるクラウドコンピューティングシステムが実行する情報処理方法であって、
画像形成装置からネットワークプルプリント要求を受け付けると、受付順番を登録した、ネットワークプルプリント要求のキューメッセージを、要求受信キューに通知する受信ステップと、
要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番に基づいて、受付順番が若い程、優先度が高くなるよう前記キューメッセージの優先度を決定し、前記決定した優先度に基づいて、前記キューメッセージを、要求管理データに登録し、処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高い前記キューメッセージを取得し、前記処理依頼キューに追加するスケジュールステップと、
前記処理依頼キューからキューメッセージを取得し、取得したキューメッセージで指定されたドキュメントを取得する処理と取得したドキュメントを画像形成装置が印刷可能なデータフォーマットへ変換する処理とを行うネットワークプルプリント処理ステップと、
を含む情報処理方法。
【請求項8】
複数の画像形成装置とネットワークを介して通信可能な、複数のサーバーコンピュータから構成されるクラウドコンピューティングシステムのコンピュータに、
画像形成装置からネットワークプルプリント要求を受け付けると、受付順番を登録した、ネットワークプルプリント要求のキューメッセージを、要求受信キューに通知する受信ステップと、
要求受信キューよりキューメッセージを取得し、取得したキューメッセージに登録されている受付順番に基づいて、受付順番が若い程、優先度が高くなるよう前記キューメッセージの優先度を決定し、前記決定した優先度に基づいて、前記キューメッセージを、要求管理データに登録し、処理依頼キューの状況が定められた条件を満たしていた場合、前記要求管理データから最も優先度が高い前記キューメッセージを取得し、前記処理依頼キューに追加するスケジュールステップと、
前記処理依頼キューからキューメッセージを取得し、取得したキューメッセージで指定されたドキュメントを取得する処理と取得したドキュメントを画像形成装置が印刷可能なデータフォーマットへ変換する処理とを行うネットワークプルプリント処理ステップと、
を実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図8D】
【図9】
【図10】
【図11A】
【図11B】
【図11C】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図8D】
【図9】
【図10】
【図11A】
【図11B】
【図11C】
【図12】
【公開番号】特開2012−83845(P2012−83845A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−227576(P2010−227576)
【出願日】平成22年10月7日(2010.10.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願日】平成22年10月7日(2010.10.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]