(57)【要約】      （修正有）【課題】印刷データの生成処理の並列化を行いながらも不要な並列処理のために消費されるリソースを抑制する。【解決手段】印刷データを変換する処理の状態によって、一つのユーザーに対しては一定の並列数を保ちながら並列処理を行うことで、クラウドサービスのスケール性を有効活用しながらも、ジョブの順序制御とコンピューティング・リソースの独占を制御する【選択図】図９ｂ
2018041274.tif 000002
【特許請求の範囲】
【請求項１】
文書データをプリンターにより印刷できる印刷データに変換する複数の変換処理を並列に実行可能な情報処理装置であって、
受信した変換要求に応じて、並列した実行されている前記変換処理の数が管理単位ごとに所定の数を超えるか否かを判定する判定手段と、
前記判定手段により前記所定の数を超えると判定された場合には、前記変換要求に関連する文書データに対する変換処理をキューに待機させ、超えないと判定された場合には、前記変換要求に関連する文書データに対する変換処理を開始させる手段と
を有することを特徴とする情報処理装置。
【請求項２】
実行中の前記変換処理が終了した場合には、前記キューで待機させた変換処理を開始させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記変換要求に、元の文書データを分割した分割文書データに関する変換要求であることが示されている場合には、前記分割文書データごとに変換処理が実行され、
実行中の前記変換処理が終了し、かつ、該変換処理が前記分割文書データに対する変換処理の場合には、前記分割文書データの元の文書データから分割された他の分割文書データに対する変換処理を中止させ、待機中の前記他の分割文書データに対する変換処理を取り消すことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
実行中の前記変換処理が中止された場合にも、前記キューで待機させた変換処理を開始させることを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記変換処理によって生成された印刷データを、ストレージサーバーに送信して格納させる手段をさらに有することを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
Ｗｅｂブラウザからの前記変換要求を受信する手段をさらに有することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
並列に実行されている前記変換処理の数を記憶する記憶手段を更に有し、
前記変換処理が新たに開始されると前記変換処理の数を増加させ、前記変換処理が終了されると前記変換処理の数を減少させることを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記管理単位はユーザー単位であることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記変換要求を送信するＷｅｂブラウザを有するクライアント端末と、
前記印刷データを格納するストレージサーバーと、
前記ストレージサーバーから前記印刷データを取得して印刷するプリンターと、
プリントサーバーとして機能する請求項１乃至８のいずれか一項に記載の前記情報処理装置と
を含むことを特徴とする印刷システム。
【請求項１０】
前記プリンターは、前記ストレージサーバーに格納された前記印刷データのリストを表示する手段を有することを特徴とする請求項９に記載の印刷システム。
【請求項１１】
前記プリンターは、前記リストから選択された印刷データを前記ストレージサーバーから取得し、取得した印刷データを印刷することを特徴とする請求項１０に記載の印刷システム。
【請求項１２】
文書データをプリンターにより印刷できる印刷データに変換する複数の変換処理を並列に実行可能な情報処理装置の制御方法であって、
受信した変換要求に応じて、並列した実行されている前記変換処理の数が管理単位ごとに所定の数を超えるか否かを判定する判定工程と、
前記判定工程により前記所定の数を超えると判定された場合には、前記変換要求に関連する文書データに対する変換処理をキューに待機させ、超えないと判定された場合には、前記変換要求に関連する文書データに対する変換処理を開始させる工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項１３】
請求項１乃至８のいずれか一項に記載の前記情報処理装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置その制御方法、印刷システム及びプログラムに関し、特に冗長化構成の印刷システムにおける、並列処理方法に関する。
【背景技術】
【０００２】
近年、インターネット上にサーバーを配置し、サーバーがクラウドサービスを提供するビジネスが展開されてきている。例えば、データをファイル形式に保存するストレージサービスや、データベース機能を提供するデータベースサービスなどである。このクラウドサービスの普及に伴い、プリンターがプリントサーバーからインターネット越しに印刷データを取得し印刷を行うプルプリント環境が求められてきている。このようなクラウドサービスは、多くのコンピューティング・リソースを用いて文書データのデータ処理をクラウド側で分散実行し、多くのクライアントからの要求を同時に処理することが主な特徴である。しかし、多くのコンピューティング・リソースは相応のコストが発生するため、極力コンピューティング・リソースを抑え、コンピューティング・リソースを効率良く利用することが重要である。特許文献１、特許文献２ではリソースの状況に応じて最適な負荷分散方法、並列実行数を決定しており、最大限リソースを有効活用することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２０４８７６号公報
【特許文献２】特願２００４−２４８９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウドサービスでは、全ての顧客（テナント）がコンピューティング・リソースを共有する。そのため、ある顧客が大量に処理リクエストを行った場合、最大限のリソースをその顧客に割り当ててしまうと、他の顧客の処理が遅延し、甚だしくは停止してしまう課題がある。
【０００５】
一方、たとえば特定の顧客から複数の印刷ジョブの生成処理を要求された場合、上述のように多くのリソースを消費して複数の印刷ジョブの生成を並列に実行することができる。こうすることで複数のジョブを短時間で生成することができる。しかし、たとえば特定のプリンターによる出力などで、生成された印刷ジョブを処理する順序が決まっている場合には、或る印刷ジョブの処理を完了するまでにその直後に処理される印刷ジョブが生成されていれば十分である。すなわち、このような場合には多量のリソースを消費する並列度の高い並列処理を行わなくとも、空き時間をつくることなく、プリンターによる印刷ジョブの処理を実行できる。このように、不要な並列処理のために、多量のリソースが消費されてしまうことがあり得た。
【０００６】
本発明は上記従来例に鑑みて成されたもので、印刷データの生成処理の並列化を行いながらも不要な並列処理のために消費されるリソースを抑制することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は上記従来例に鑑みて成されたもので、以下の構成を有する。
【０００８】
文書データを印刷可能な印刷データに変換する複数の変換処理を並列に実行可能な情報処理装置であって、
受信した変換要求に応じて、並列した実行されている前記変換処理の数が管理単位ごとに所定数を超えるか否かを判定する判定手段と、
前記判定手段により前記所定数を超えると判定された場合には、前記変換要求に関連する文書データに対する変換処理をキューに待機させ、超えないと判定された場合には、前記変換要求に関連する文書データに対する変換処理を開始させる手段と
を有する。
【発明の効果】
【０００９】
本発明によれば、印刷データの生成処理の並列化を行いながらも不要な並列処理のために消費されるリソースを抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】ネットワーク構成を示すブロック図
【図２ａ】プリントサーバーのハードウェア構成図
【図２ｂ】プリンターのハードウェア構成図
【図３】印刷システムのモジュール構成図
【図４ａ】プリントサーバーのソフトウェア構成図
【図４ｂ】プリンターのソフトウェア構成図
【図５】Ｗｅｂブラウザの画面の例
【図６】プリントサーバー、プルプリントアプリケーションで管理するデータを示す図
【図７】インデックスファイルの例を示す図
【図８】プルプリントアプリケーションの通信方式の概念図
【図９ａ】印刷リクエスト受信時の印刷データの変換指示処理フロー
【図９ｂ】印刷データ変換処理の状態変化通知受信時の印刷ジョブ制御フロー
【図１０ａ】印刷リクエスト受信時の関連ジョブＩＤを付与する処理フロー
【図１０ｂ】変換処理でエラーが発生した際のキャンセル処理フロー
【図１１】プリントサーバーが管理するデータを示す図
【図１２】実施形態１の具体例を示す処理シーケンス図
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
［実施形態１］
●ネットワーク構成
図１は、本発明の実施形態に係る印刷システムのネットワーク構成を示す図である。図において、プリンター１０４、１０５、クライアント端末１０９、１１０はローカルネットワーク１０７を介して複数台接続されていることを想定している。プリンター１０４、１０５、クライアント端末１０９、１１０は、ローカルネットワーク１０７を介してインターネットワーク１０８にアクセスし、プリントサーバー１０１、ストレージサーバー１０２、認証サーバー１０３にアクセスすることができる。プリンター１０４、１０５、クライアント端末１０９、１１０は有線または無線ＬＡＮを介してネットワークに接続する。本実施形態では、プリンター１０４およびクライアント端末１０９は、無線ＬＡＮターミナル１０６を介してネットワークに接続することを想定している。無線ＬＡＮターミナル１０６は、一般的なネットワーク・ルーター機能を有した無線ＬＡＮの親機であり、家庭内や事務所などの中で無線ＬＡＮを提供している。ネットワーク１０７〜１０８は、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれである。またこれらの組み合わせにより実現される、いわゆる通信ネットワークである。ネットワーク１０７〜１０８は、データの送受信が可能であればよい。そして、クライアント端末１０９〜１１０からプリントサーバー１０１、プリンター１０４〜１０５への通信手段、プリンター１０４〜１０５からプリントサーバー１０１、ストレージサーバー１０２、認証サーバー１０３への通信手段は異なっていてもよい。
【００１２】
クライアント端末１０９〜１１０は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（パーソナルデータアシスタント）等であるが、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末１０９〜１１０では、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ  ＷｉＤｅ  Ｗｅｂの利用に供するブラウザ）等のプログラムを実行する環境が内蔵されている。プリントサーバー１０１は、印刷する文書を識別する情報と、出力先プリンター１０４〜１０５を識別する情報を印刷リクエストと共にクライアント端末１０９〜１１０のＷｅｂブラウザから受ける。そして、印刷指示を行うコマンドを含めたレスポンスをクライアント端末１０９〜１１０のＷｅｂブラウザに返す。クライアント端末１０９〜１１０のＷｅｂブラウザは、指定のプリンター１０４〜１０５に対し受け取った印刷コマンドを発行する。プリンター１０４〜１０５は、クライアント端末１０９〜１１０のＷｅｂブラウザから印刷コマンドを受けると、ストレージサーバー１０２のＵＲＬを記載した後述のインデックスファイル（図７のインデックスファイル７０１、７０２参照）を取得する。プリンター１０４〜１０５は、インデックスファイル７０１、７０２に記載されたＵＲＬにアクセスし、ストレージサーバー１０２から印刷データを取得し、印刷を行う。
【００１３】
●プリントサーバーのハードウェア構成
図２ａは、プリントサーバー１０１、ストレージサーバー１０２、認証サーバー１０３のハードウェア構成の一例を示す図である。特に断らない限り、本発明の機能が実行可能であるならば、単体の機器であっても、複数の機器からなるシステムであっても、本発明が適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行可能であるならば、ＬＡＮ、ＷＡＮ等のネットワークを介して接続が為され、処理が行われるシステムであっても本発明を適用できることは言うまでもない。本実施例ではシステムバス２１９により各構成要素が接続されているものとして説明する。
【００１４】
ＣＰＵ２２０は情報処理装置の制御装置であり、記憶装置２２４に格納されているプリントサーバーのアプリケーションプログラム、オペレーティングシステム等を実行する。また、ＣＰＵ２２０はＲＡＭ２２２にプログラム実行に必要な情報、ファイル等を一時的に格納する制御を行う。また、ＣＰＵ２２０はプリントサーバープログラムにおける印刷データへの変換処理等を実行する。ＲＯＭ２２１は記憶手段であり、内部には基本Ｉ／Ｏプログラム等のプログラム、印刷データへのデータ変換の際に使用するフォントデータ、印刷処理、データ変換処理に必要な各種データを記憶する。ＲＡＭ２２２は一時記憶手段であり、ＣＰＵ２２０の主メモリやワークエリア等として機能する。記憶装置２２４は外部記憶手段の一つで、大容量メモリとして機能し、アプリケーションプログラム、ＯＳ等を格納している。ネットワークコントローラ２２３は、たとえばネットワークインターフェースカード（ＮＩＣ）であり、サーバーはネットワークコントローラ２２３を介して外部装置とのデータのやり取りを行う。
【００１５】
●プリンターのハードウェア構成
図２ｂは、プリンター１０４、１０５のハードウェア構成図である。このうちプリントエンジン２３８を除いた部分をプリンターの制御系を司るコントローラと呼ぶこともある。ハードウェアの各構成要素は、システムバス２３０に接続されている。
【００１６】
ＣＰＵ２３１は装置全体の制御を行って、システムバス２３０に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ＲＯＭ２３２に記憶された制御プログラム等あるいはディスクコントローラ（ＤＫＣ２３５）を介して接続された外部メモリ２３６に記憶された制御プログラムやリソースデータ（資源情報）等に基づく。ＲＡＭ２３３はＣＰＵ２３１の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。記憶装置２４０は大容量メモリとして機能する外部記憶手段である。操作パネル（操作部）２３９は、画面を表示するとともに、画面を介したユーザーの操作指示を受け付ける。また、プリンター１０４、１０５の動作モード等の設定やプリンター１０４、１０５の動作状況の表示、印刷するコンテンツデータを指定する等の操作を行うためのボタンおよび液晶パネル等の表示部も配置される。ネットワークコントローラ２３４は、たとえばネットワークインターフェースカード（ＮＩＣ）であり、ネットワークコントローラ２３４を介して外部装置とのデータのやり取りを行う。ラスタコントローラ２３７は、たとえばＰＤＬ言語で記述された印刷データを画像データに変換するコントローラである。プリントエンジン２３８は既知の印刷技術を利用して、ラスタコントローラ２３７から入力される画像データに基づいてシートに画像を形成する。好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華方（熱転写）方式等のプリントエンジンが挙げられる。機器Ｉ／Ｆ２４１は、ＵＳＢ等で接続可能な外部機器との接続Ｉ／Ｆである。
【００１７】
●システム構成
図３は、本発明の実施形態に係る印刷システムの構成図である。ここでは、印刷システムの構成図を用いて、各サーバー、プリンター、クライアント端末の動作について説明する。これらの動作は、各装置のメモリに保存されたプログラムをＣＰＵが実行することにより実現される。
【００１８】
プリントサーバー１０１は、他サービスまたは他プログラムが投入する文書データの投入先を示すＵＲＬを作成し、文書データを投入した他サービスまたは他プログラムに返す。本例ではプリントサーバー１０１が返すＵＲＬはストレージサーバー１０２への文書データのアップロード先を示すＵＲＬである。他サービスまたは他プログラムはそのＵＲＬに対し、ユーザーから印刷指示を受けたことに伴い特定された印刷対象の文書データをアップロードする。プリントサーバー１０１は、文書データをアップロードした旨を他サービスまたは他プログラムから受け取ると、入稿された文書データの文書情報６２０をデータベース３０１に保存する。また、プリントサーバー１０１は、Ｗｅｂブラウザ３０２からの印刷リクエストを受けると、印刷リクエストとともに受け取る文書ＩＤ６２１に紐づく文書データをストレージサーバー１０２から取得し、取得した文書データを基に印刷データへの変換を行う。たとえば文書情報に文書ＩＤを含めておくことで、文書ＩＤからそれを含む文書情報と特定し、その文書情報に関連付けられた文書データを特定することができる。プリントサーバー１０１は、印刷データを作成し、ストレージサーバー１０２上のダウンロードＵＲＬを作成する。プリントサーバー１０１は、インデックスファイル７０１、７０２にダウンロードＵＲＬを記載し、印刷データをダウンロードＵＲＬにアップロードするとともにインデックスファイル７０１、７０２をストレージサーバー１０２にアップロードする。
【００１９】
認証サーバー１０３は、プリントサーバー１０１にアクセスするためのユーザー名、パスワード、認証トークン、認可トークンなどの認証情報を保持している。プリントサーバー１０１は、クライアント端末１０９、１１０内のＷｅｂブラウザ３０２からのリクエストに含まれる認証トークンを認証サーバー１０３に送り、トークンの正当性を検証する。このとき、Ｗｅｂブラウザ３０２からのリクエストに認証トークンが存在しない場合は、プリントサーバー１０１は、リクエストを認証サーバー１０３にリダイレクトさせる。そして認証サーバー１０３は、Ｗｅｂブラウザ３０２にログイン画面５００を返す。認証サーバー１０３は、Ｗｅｂブラウザ３０２に表示されたログイン画面５００からのログインリクエストに含まれるユーザー名、パスワードと認証サーバー１０３で保持するユーザー名、パスワードとの照合により正当性の検証を行う。検証が成功すると、認証サーバー１０３は、ユーザーに紐づく認証トークンを発行し、このトークンとともにＷｅｂブラウザ３０２に対し、プリントサーバー１０１へのリダイレクトを行うレスポンスを送る。
【００２０】
Ｗｅｂブラウザ３０２は、認証トークンを含めたリクエストをプリントサーバー１０１に送り、プリントサーバー１０１からのレスポンスによりＷｅｂ画面５１０、５２０、５３０を受信し表示を行う。
【００２１】
認証サーバー１０３は、プリンター１０４、１０５にインストールされるプルプリントアプリケーション３０３がプリントサーバー１０１にアクセスするために必要な認可トークンを発行する。また、認証サーバー１０３は、プルプリントアプリケーション３０３からプリントサーバー１０１にアクセスする場合にリクエストに含まれる認可トークンの正当性検証を行う。
【００２２】
プルプリントアプリケーション３０３は、認可トークンを含めたリクエストをプリントサーバー１０１に送り、そのリクエストに応じて、印刷データを示したＵＲＬを記載したインデックスファイル７０１、７０２を取得する。プルプリントアプリケーション３０３は、印刷データを示したＵＲＬに従い、ストレージサーバー１０２から印刷データを取得し、印刷装置制御部３０４に印刷データを送り、印刷を行う。
【００２３】
●プリントサーバーのソフトウェア構成
図４は、本発明の実施形態に係るプリントサーバー１０１のソフトウェア構成図である。なおプリントサーバー１０１の各ソフトウェアモジュールは図２ａで示した記憶装置２２４に記憶されており、前述したようにＣＰＵ２２０によってＲＡＭ２２２にロードされ実行される。ここでは、プリントサーバー１０１が、外部リクエストを受信した際のプリントサーバー１０１の各ソフトウェアモジュールの動作について説明する。
【００２４】
プリントサーバー１０１は、外部リクエストを受け付けるＷｅｂサーバー４０１と、文書データ、印刷ジョブ、プリンター情報を管理し、印刷処理の制御を行う制御サーバー４０２、文書データを印刷データに変換する変換サーバー４０３を含む。それぞれ独立したプログラムであり、それぞれ別々の情報処理装置に配置することも可能である。これらのプログラムはそれぞれネットワークに繋がった情報処理装置に配置し、それぞれのプログラム間で通信を行う。また、各プログラム間の通信方法として、メッセージキューサービスのように各プログラム間のやり取りを仲介するサービスで行う方法も考えられる。またこれらのプログラムを同じ情報処理装置に配置することも可能である。また、それぞれのサーバーは単体構成または、冗長構成をとるように配備されるので、１つのサーバーに対し複数の情報処理装置で構成されることもある。また、本発明では、クラウドコンピューティングを想定しており、各サーバーは処理負荷や障害発生に応じて自動的にサーバーの台数を増減することが可能（オートスケール技術）な構成をとっている。例えば、変換サーバー４０３に対して、クラウドコンピューティングで提供される管理機能に、あらかじめアクセス数や、メッセージキューサービスに存在するリクエスト数、ＣＰＵ使用率の閾値を登録しておき、状況によって変換サーバー４０３だけを自動的に増減させることが可能である。
【００２５】
Ｗｅｂサーバー４０１は、他サービスまたは他プログラム、またはプリンター１０４、１０５または、Ｗｅｂブラウザ３０２から文書データの入稿、または、印刷リクエスト、印刷データリクエストを受ける。各クライアントからリクエスト受付部４０４がリクエスト受けると、認証サーバー問い合わせ部４０５が認証サーバー１０２に対しトークンの正当性検証リクエストを送る。トークンの正当性が確認されると、リクエスト受付部４０４は、制御サーバー４０２にクライアントからのリクエストを送る。
【００２６】
制御サーバー４０２は、文書データの入稿リクエストを受けると制御データ管理部４０６で図６にその構成を示す文書情報６２０を作成し、データベース３０１に保存する。文書情報６２０は、図６に示したように、文書データを識別する文書ＩＤ６２１、文書名６２２、認証トークンに紐づくユーザー名６２３とストレージサーバー１０２に文書をアップロードするための文書ＵＲＬ６２４、ステータス６２５とを含む。文書ＵＲＬ６２４には、文書ＩＤ６２１が含まれる。また、ステータス６２５は「受信中」「待機中」「印刷待ち」「印刷中」「正常終了」「エラー終了」「不明終了」の各ステータスがある。制御サーバー４０２は、文書情報６０２のステータス６２５を「受信中」に変え、文書ＵＲＬ６２４をＷｅｂサーバー４０１に返す。そしてＷｅｂサーバー４０１がリクエスト元の他サービスまたは他プログラムに対し文書ＵＲＬ６２４を返す。他サービスまたは他プログラムはストレージサーバー１０２に文書データのアップロードを完了すると、プリントサーバー１０１にアップロード完了通知を送る。プリントサーバー１０１はこの通知をＷｅｂサーバー４０１で受けると、制御サーバー４０２は、文書情報６０２のステータス６２５を「待機中」に変える。
【００２７】
制御サーバー４０２が印刷リクエストを受け取ると、制御データ管理部４０６は印刷リクエストに対する、図６に示すジョブ情報６００を作成し、データベース３０１に保存する。印刷リクエストには、印刷を行う文書ＩＤ６２１と、プリンターＩＤ６１２とが含まれる。この文書ＩＤ６２１は、Ｗｅｂブラウザ３０２で印刷対象の文書として表示される図５に示す文書一覧画面５１０の文書名５１２に対応した文書情報６２０の文書名６２２に紐づく文書ＩＤ６２１である。また、プリンターＩＤ６１２は、Ｗｅｂブラウザ３０２で表示される図５に示す印刷設定画面５２０のプリンター名５２４に対応したプリンター情報６１０（図６参照）のプリンター名６１１に紐づくプリンターＩＤ６１２である。制御データ管理部４０６が作成する、図６に示すジョブ情報６００は、印刷ジョブを識別するジョブＩＤ６０１と、文書情報６２０の文書ＩＤ６２１に対応した文書ＩＤ６０２と、認証トークンに紐づくユーザー名６０３と、印刷の受付日時６０４とプリンター情報６１０のプリンターＩＤ６１２に対応したプリンターＩＤ６０５と、インデックスファイルＵＲＬ６０６、変換ステータス６０７を含む。
【００２８】
また、制御データ管理部４０６は、プリンターＩＤ６１２ごとに図６に示すプリンタキュー情報６４０を持つ。制御データ管理部４０６は、印刷リクエストを受け取った際に印刷リクエストに含まれるプリンターＩＤ６１２から特定されるプリンタキュー情報６４０のジョブリスト６４２にジョブＩＤ６０１を追加する。制御サーバー４０２は、プリンタキュー情報６４０と変換中ジョブ数６４２に従って印刷データへの変換指示を制御する。印刷データの変換指示処理の詳細に関しては後述する。プリンタキュー情報６４０は、プリンターＩＤ６１２とジョブリスト６４２、変換中ジョブ数６４３、並列最大数６４４を含む。変換中ジョブ数６４３は、ジョブリスト６４２に含まれているジョブの内、変換サーバー４０３にリクエストしている数を示す。変換中ジョブ数６４３は、制御データ管理部４０６によって制御され、変換サーバー４０３にリクエストを行った時点で加算され、変換サーバー４０３の処理が完了した際に減算される。並列最大数６４４は変換サーバー４０３に並列で変換指示する最大値である。本実施例では、プリンタキュー情報６４０ごとにあらかじめ設定された情報として説明するが、システム内で一つの値であってもよいし、プリンターのエンジンスピードによって自動的に変動する値であってもよい。
【００２９】
制御データ管理部４０６は、プリンター管理部４０７からプリンターＩＤ６１２に対応したプリンター情報６１０を取得し、構成情報６１４、圧縮方式６１５と文書ＵＲＬ６２４と、ジョブＩＤ６０１を変換サーバー４０３に渡して、印刷データへの変換を指示する。また、プリンター管理部４０７が管理するプリンター情報６１０は、図６に示すように、プリンター名６１１とプリンターを識別するプリンターＩＤ６１２とＷｅｂブラウザ３０２がプリンター１０４、１０５に印刷リクエストを送るためのプリンターＵＲＬ６１３と構成情報６１４と印刷データの扱える圧縮方式を示す圧縮方法６１５を含む。また、構成情報６１４は印刷設定画面５２０の印刷設定５２１の項目が機能するかどうかが判断可能な、プリンター１０４、１０５の機能を示すものである。たとえば、両面機能、カラー機能等がある。制御サーバー４０２は、Ｗｅｂサーバー４０１を介して、Ｗｅｂブラウザ３０２にプリンターＵＲＬ６１３、ジョブＩＤ６０１、プリンターＩＤ６０５を印刷リクエストコマンドとしてスクリプトに含めた画面５４０を返す。Ｗｅｂブラウザ３０２では、画面５４０のスクリプトに従い、プリンター１０４、１０５のプルプリントアプリケーション３０３に対し、印刷リクエストを送る。Ｗｅｂブラウザ３０２は、プルプリントアプリケーション３０３に印刷リクエストが成功するとプリントサーバー１０１にその旨通知する。Ｗｅｂサーバー４０１を介して制御データ管理部４０６が通知を受けとると、文書情報６２０のステータス６２５を「印刷待ち」に変える。
【００３０】
制御サーバー４０２から印刷データ変換指示（あるいは変換要求）を受けると変換サーバー４０３の変換データ管理部４０８は、ストレージサーバー１０２の文書ＵＲＬ６２４から文書データをダウンロードする。そして、データ変換部４０９は、構成情報６１４を加味しながら、文書データを印刷データに変換する。データ変換部４０９は、変換データサイズに応じて複数の印刷データをファイル形式で作成する。なお、ファイル形式の印刷データを印刷データファイルと称するが、印刷データと称した場合ファイル形式を含む全ての形式の印刷データを指すものとする。変換データ管理部４０８は、ある程度の数の印刷データファイルをデータ変換部４０９が作成すると、生成完了した印刷データファイル数分のストレージサーバー１０２上の印刷データファイルＵＲＬを作成し、そのＵＲＬを記載したインデックスファイル７０１、７０２を作成する。そして、変換データ管理部４０８は、ストレージサーバー１０２上のインデックスファイルＵＲＬ６０６を作成し、インデックスファイル７０１、７０２と複数の印刷データファイルをそれぞれのＵＲＬにアップロードする。そのとき、変換データ管理部４０８は、圧縮方式６１５に従ったデータフォーマットに変換し、印刷データファイルをストレージサーバー１０２にアップロードする。またこのとき、インデックスファイル７０１、７０２にはｅｎｄフラグ７０３が付加される。変換データ管理部４０８は、たとえば、印刷データファイルの作成途中であれば、インデックスファイル７０２のようにｅｎｄフラグ７０３として偽（ｆａｌｓｅ）をセットする。一方、印刷データファイルの作成が完了したなら、インデックスファイル７０１のようにｅｎｄフラグ７０３として真（ｔｒｕｅ）をセットする。変換データ管理部４０８は、インデックスファイルＵＲＬ６０６を制御サーバー４０２に送る。本実施例では、変換データ管理部４０８は、制御サーバー４０２に対して、印刷データ変換処理の状態が変化した際に通知を行い、制御サーバー４０２は、変換ステータス６０７を更新する。具体的には、変換データ管理部４０８は、変換開始、変換完了、変換エラーを通知する。変換ステータス６０７の初期値は未処理である。変換データ管理部４０８がインデックスファイルをストレージ１０２にアップロードした状態が変換開始、印刷データファイルの作成がすべて完了した状態が変換完了、何らかの障害により印刷データファイルの作成に失敗した状態が変換エラーである。制御サーバー４０２はデータベース３０１のジョブ情報６００にインデックスファイルＵＲＬ６０６を登録する。データ変換部４０９は印刷ジョブに含まれる残りの印刷データファイルの作成が完了次第、随時印刷データファイルＵＲＬを生成し、生成されたＵＲＬを記載したインデックスファイル７０１、７０２を作成する。印刷データファイルは随時生成されるＵＲＬにアップロードされ、一方でインデックスファイル７０１、７０２はすでに作成済みのインデックスＵＲＬ６０６にアップロードされる。
【００３１】
●Ｗｅｂ画面
図５は、本発明の実施形態に係るプリントサーバー１０１のＷｅｂサーバー４０１が作成し、クライアント端末１０９〜１１０のＷｅｂブラウザ３０２で表示するＷｅｂ画面である。
【００３２】
Ｗｅｂブラウザ３０２からプリントサーバー１０１に文書一覧リクエストを送ると、プリントサーバー１０１は、文書一覧画面５１０を作成し、Ｗｅｂブラウザ３０２に送信する。文書一覧画面５１０は文書選択チェックボックス５１１、文書名５１２、ステータス５１３、印刷ボタン５１４からなる。ステータス５１３は文書情報６２０のステータス６２５であり、プリントサーバー１０１は、文書一覧リクエストを受け取ったときのステータス６２５を文書一覧画面のステータス５１３として画面を作成する。文書選択チェックボックス５１１は、印刷する文書を選択するチェックボックスであり、チェックは１つでも複数であっても良い。Ｗｅｂブラウザ３０２が印刷ボタン５１４の押下を検知すると文書選択チェックボックス５１１が選択されている文書一覧をプリントサーバー１０１へ送信する。
【００３３】
文書一覧を受け付けたプリントサーバー１０１は印刷設定画面５２０を作成し、Ｗｅｂブラウザ３０１に送信する。印刷設定画面５２０は印刷属性５２１の設定画面である。プリンター名５２４は、印刷を行うプリンターである。Ｗｅｂブラウザ３０２は、変更ボタン５２２の押下を検知するとプリントサーバー１０１へリクエストを行う。
【００３４】
リクエストを受け付けたプリントサーバー１０１は、プリンター情報６１０からプリンター一覧画面５３０を作成し、Ｗｅｂブラウザ３０２に送信する。プリンター一覧画面５３０はプリンター選択ラジオボタン５３１、プリンター名５３２、印刷ボタン５３３からなる。Ｗｅｂブラウザ３０２が変更ボタン５３３の押下を検知するとラジオボタン５３１が選択されているプリンター情報をプリントサーバー１０１へ送信する。プリントサーバー１０１は、印刷設定画面５２０のプリンター名５２４をラジオボタン５３１が選択されていたプリンター名に更新し、Ｗｅｂブラウザ３０２に印刷設定画面５２０を送信する。
【００３５】
印刷設定画面５２０においてＷｅｂブラウザ３０２が印刷ボタン５２３の押下を検知すると印刷属性５２１とプリンター名５２４と、文書一覧画面５１０で文書選択チェックボックス５１１が選択されていた文書一覧をプリントサーバー１０１へ送信する。これによりＷｅｂブラウザ３０２からプリントサーバー１０１への印刷リクエストが行われる。ここで、印刷設定画面５２０では、文書一覧画面５１０で文書選択チェックボックス５１１が選択されていた文書一覧隠しパラメータとして画面に保持する。
【００３６】
●プリンターのソフトウェア構成
図４ｂは、本発明の実施形態に係るプリンター１０４、１０５のソフトウェア構成図である。尚プリンター１０４、１０５の各ソフトウェアモジュールは図２ｂの記憶装置２４０に記憶されており、前述したようにＣＰＵ２３１によってＲＡＭ２３３にロードされ実行される。ここでは、プリンター１０４、１０５が、外部リクエストを受信した際のプリンター１０４、１０５の各ソフトウェアモジュールの動作について説明する。
【００３７】
●●プルプリントアプリケーションによる印刷ジョブの取得
プルプリントアプリケーション３０３は、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）４１０上で動作するアプリケーションソフトである。プルプリントアプリケーション３０３のプルプリントコントローラ４１４は、プルプリントアプリケーション３０４全体の動作管理を行うものであり、各部への動作指示等は、このプルプリントコントローラ４１４経由で行う。プルプリントアプリケーション３０３のリクエスト受信部４１１は、Ｗｅｂブラウザ３０２から印刷リクエストを受けると印刷データ取得部４１２に印刷リクエスト情報を通知する。印刷リクエスト情報にはジョブＩＤ６０１、プリンターＩＤ６０５が含まれる。印刷ジョブ取得部４１２は印刷データの取得を、図６に示すプリンター印刷キュー情報６３０で管理する。プリンター印刷キュー情報６３０はジョブＩＤ６３１、インデックスファイルＵＲＬ６３２、認可トークン６３３、プリンターＩＤ６３４などの印刷ジョブ情報のキュー情報である。Ｗｅｂブラウザ３０２から送られてきたジョブＩＤ６０１、プリンターＩＤ６０５は、このプリンター印刷キュー情報６３０のジョブＩＤ６３１、プリンターＩＤ６３４に保持する。そして、印刷データ取得部４１２は、認証サーバー問い合わせ部４１３に認可トークンの発行依頼を出す。認証サーバー問い合わせ部４１３は、認証サーバー１０３に対し認可トークンの発行依頼を出す。このとき、認証サーバー問い合わせ部４１３はあらかじめ登録されている認証サーバー１０３が認める証明書を認証サーバー１０３に送る。認証サーバー１０３では、証明書の検証を行い正当性が確認できた場合に認可トークンを発行し、認証サーバー問い合わせ部４１３に認可トークンを送る。認証サーバー問い合わせ部４１３は、認可トークンを印刷ジョブ取得部４１２に送り、印刷ジョブ取得部４１２はこの認可トークンをこのプリンター印刷キュー情報６３０の認可トークン６３３に保持する。
【００３８】
プルプリントアプリケーション３０３の印刷ジョブ取得部４１２は、プリントサーバー１０１にプリンター印刷キュー情報６３０の先頭のジョブＩＤ６３１に対するインデックスファイルＵＲＬリクエストを送る。このとき、印刷ジョブ取得部４１２は、ジョブＩＤ６３１、プリンターＩＤ６３４、認可トークン６３３を含めてインデックスファイルＵＲＬリクエストを送る。プリントサーバー１０１では、受信したジョブＩＤ６３１、プリンターＩＤ６３４に対応するジョブＩＤ６０１、プリンターＩＤ６０５を持つジョブ情報６００から、印刷ジョブのインデックスファイルＵＲＬ６０６を特定する。そして、特定したインデックスファイルＵＲＬ６０６をプルプリントアプリケーション３０３に返す。印刷ジョブ取得部４１２は、受信したインデックスファイルＵＲＬ６０６を、プリンター印刷キュー情報６３０のインデックスファイルＵＲＬ６３２に保持する。そして、印刷ジョブ取得部４１２は、ストレージサーバー１０２に対しインデックスファイルＵＲＬ６３２でアクセスし、図７に示すインデックスファイル７０１を取得する。印刷ジョブ取得部４１２は、インデックスファイル７０１に記載のストレージサーバー１０２上の印刷データファイルＵＲＬから、記載されているＵＲＬ分の印刷データファイルを取得する。このとき図７のインデックスファイル７０１、７０２のｅｎｄフラグ７０３がｆａｌｓｅの場合は、プリントサーバー１０１での変換処理が途中であり、更に印刷データファイルＵＲＬが追加される可能性があることを示す。この場合、印刷ジョブ取得部４１２は、印刷データファイルが記載されているＵＲＬ分の印刷データファイルの取得処理が終わり次第、再度インデックスファイルＵＲＬ６３２をストレージサーバー１０２から取得する。ｅｎｄフラグ７０３がｔｒｕｅの場合は、印刷データをすべて取得したことになり、後述する印刷ジョブ送信部４１６は、後述するプリンター通信ストリーム８０２をクローズする。
【００３９】
●●プルプリントアプリケーションによる印刷ジョブの送信
印刷ジョブ送信部４１６は、印刷ジョブ取得部４１２より送られる印刷データを受け付け、送信バッファストリームに保持する。そして印刷ジョブ送信部４１６は、送信バッファストリームに保存された印刷データを印刷装置制御部３０４に対しネットワークインタフェース部４１７を介して送信する。印刷ジョブ送信部４１６は、送信バッファストリームに印刷データの保存を行うが、印刷データを、ストレージサーバー１０２から受信しながら印刷装置制御部３０４に送信するため、バッファストリームに保存されるのは印刷データの一部である。これは、印刷装置制御部３０４が、１つの印刷ジョブの単位をネットワークインタフェース部４１７に対する１つの通信接続で管理しているためである。つまり、印刷ジョブ送信部４１６は、ファーストプリントを早くするためにストレージサーバー１０３に複数に分割されて置かれている印刷データファイルを受信しながら、印刷装置制御部３０４に１つの通信接続で印刷ジョブを送信する必要がある。ここで、この仕組みの説明について図８を用いて行う。
【００４０】
図８は、印刷ジョブ取得部４１２がストレージサーバー１０２から複数の印刷データファイルを取得しながら、印刷ジョブ送信部４１６が、印刷装置制御部３０４に１つの通信接続で印刷データを送る概念図である。まず、プリントサーバー１０１はプリンター１０４、１０５の印刷処理開始を早くするために印刷データ変換が出来次第、変換が終わったデータを１つの印刷データファイルにしてストレージサーバー１０２にアップロードする。印刷装置制御部３０４に印刷データを早く送ることで、時間のかかるプリントエンジン２３８の事前処理を早く開始することが可能となり、全体としてプリンター１０４、１０５のファーストプリントが早くなる。しかし、前述のとおり印刷ジョブ送信部４１６は印刷装置制御部３０４に１つの通信接続で印刷ジョブを送信する必要がある。そこで、プルプリントコントローラ４１４が、印刷データファイル取得通信ストリーム８０１と、プリンター通信ストリーム８０２とを一つの通信ストリームとして維持する。印刷データファイル取得通信ストリーム８０１は、印刷ジョブ取得部４１２とストレージサーバー１０２との間の通信である。また、プリンター通信ストリーム８０２は、印刷ジョブ送信部４１６と印刷装置制御部３０４のネットワークインタフェース部４１７との間の通信である。そして、印刷ジョブ取得部４１２が２つ目以降の印刷データファイルを取得するときは次のようになる。プルプリントコントローラ４１４は、印刷ジョブ取得部４１２が新たに作成した印刷データファイル取得通信ストリーム８０１を既存のプリンター通信ストリーム８０２につなぎ変えて１つの通信ストリームとして維持する。これにより、ファーストプリントを早くしながら、複数に分割された印刷データファイルを１つの印刷ジョブとして印刷することを実現する。ここで、印刷データファイル取得通信ストリーム８０１は、インターネットを介した通信であり、通信プロトコルとしては、ＨＴＴＰＳ（Ｈｙｐｅｒ  Ｔｅｓｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ）を使用している。一方、プリンター通信ストリーム８０２は、プリンター１０４、１０５からプリンター１０４、１０５への異なるポートへのローカルネットワーク内通信であり、通信プロトコルとしては、ＲＡＷプロトコルを使用している。
以上が、プリンター１０４、１０５が、外部リクエストを受信した際のプリンター１０４、１０５の各ソフトウェアモジュールの動作についての説明となる。
【００４１】
●印刷リクエスト時の変換指示処理フロー
図９ａは、本発明の実施形態に係る、プリントサーバー１０１の制御サーバー４０２による印刷リクエスト受信時の印刷データの変換指示処理フローである。先に述べた通り、本実施例では、プリントサーバー１０１はオートスケール可能な構成をとっている。つまり、各サーバーの状況によって、冗長化を構成する台数が変化する。特に本実施例の変換サーバー４０３は、リクエストの応答や、変換処理で一定のパフォーマンスを維持するため、常に最適な構成台数を維持する構成をとる。図９ａの手順は例えばプリントサーバー１０１のＣＰＵ２２０により、ＲＡＭ２２２に格納されたプログラムを実行することで実現される。
【００４２】
Ｓ９０１で、プリントサーバー１０１は、クライアント端末１０９、１１０に配備されているＷｅｂブラウザ３０２から印刷リクエストを受信する。このとき、プリントサーバー１０１の制御サーバー４０２は、ジョブ情報６００を作成し、データベース３０１に保持する。また、印刷リクエストに含まれるプリンターＩＤ６１２から特定されるサーバープリントキュー情報６４０のジョブリスト６４２にジョブＩＤ６０１を追加する。Ｓ９０２で、制御サーバー４０２は、Ｓ９０１で受信した印刷リクエストに含まれるプリンターＩＤ６１２により特定されるサーバープリントキュー情報６４０の変換中ジョブ数６２３を取得する。Ｓ９０３で、制御サーバー４０２は、Ｓ９０２で取得した変換中ジョブ数６２３と、サーバープリントキュー情報６４０の所定の並列最大数６４４の比較を行う。ここで閾値と比較するのは、所定の管理単位ごと（本例ではユーザーごと）の、変換中のジョブ数である。Ｓ９０３での比較の結果、変換中ジョブ数６２３が並列最大数６４４よりも小さければ、Ｓ９０４において、制御サーバー４０２は、Ｓ９０２で取得した変換中ジョブ数６２３に１を加えた値で変換中ジョブ数６２３を更新する。すなわち変換中ジョブ数を１増加させる。Ｓ９０５において、制御サーバー４０２は、変換サーバー４０３に対してジョブＩＤ６０１の印刷データ変換を指示する。Ｓ９０３での比較の結果、変換中ジョブ数６２３が並列最大数６４４以上だった場合は、何もせずに処理を終える。本実施例では各サーバーの冗長性を優先し、変換中ジョブ数６２３が、変換サーバー４０３からの通知のタイミングや、データベース３０１から情報を取得するタイミングによっては、一時的に並列最大数を超えることを許容している。当然、並列最大数を超えないように排他処理を行うことも考えられる。
【００４３】
これまでの説明のように、制御サーバー４０２は、変換サーバー４０３の空き状況や構成台数を意識することなく、ひとつの管理単位たとえばひとつのユーザーについては常に一定の並列数を超えないように処理を行う。ここで管理単位はユーザーとは限らず、他のものとしてもよい。
以上の処理により、変換サーバー４０３が並列して印刷データ変換を処理可能な状態であっても、リソースの占有を抑制しながら印刷データ変換処理を行うことができる。
【００４４】
●印刷データ変換処理の状態変化通知受信時の印刷ジョブ制御フロー
図９ｂは、本発明の実施形態に係る、プリントサーバー１０１の変換サーバー４０３による印刷データ変換処理の状態変化通知受信時の印刷ジョブ制御フローである。図９ｂの手順は例えばプリントサーバー１０１のＣＰＵ２２０により、ＲＡＭ２２２に格納されたプログラムを実行することで実現される。
【００４５】
Ｓ９０６で制御サーバー４０２は、変換サーバー４０３から印刷データ変換処理の状態変化を受信し、ジョブ情報６００の変換ステータス６０７を更新する。Ｓ９０７で、制御サーバー４０２は、Ｓ９０６で更新した変換ステータス６０７が、変換完了または、変換エラーだった場合は、Ｓ９０８において、Ｓ９０２で取得した変換中ジョブ数６２３から１を引いた値で変換中ジョブ数６２３を更新する。すなわち変換中ジョブ数を１減少させる。Ｓ９０９で、制御サーバー４０２は、プリンタキュー情報６４０のジョブリスト６４２にジョブが存在するか確認し、未だジョブが存在している場合はＳ９０２の処理を開始する。Ｓ９０２〜Ｓ９０４の処理は図９ａの説明と同様のため説明は省略する。以上の処理により、印刷データの変換処理の状態によって、並列実行する数の制御を行うことで、プルプリントアプリケーション３０３が遅延なく印刷順に印刷データファイルが取得できることを担保することができる。
【００４６】
以上、処理の状態によって一定の並列数を保ちながら並列処理を行うことで、クラウドサービスのスケール性を有効活用しながらも、ジョブの順序制御とコンピューティング・リソースの独占を制御することができる。
【００４７】
●具体例の説明
以下、実施形態１に対する効果の具体例を、図１２の処理シーケンスを用いて説明する。図１２は、プリンター１０４に対して、印刷リクエストを３ジョブ分（Ｊｏｂ１、Ｊｏｂ２、Ｊｏｂ３）受信した際の処理シーケンスである。３ジョブは、Ｊｏｂ１、Ｊｏｂ２、Ｊｏｂ３の順にリクエストされたものとする。また、サーバープリントキュー情報６４０の並列最大数６４４は「２」として説明する。また、図１２の処理開始時点で、変換サーバー４０３は、２ジョブを同時に処理する能力を有するとし、並列に処理するジョブが２ジョブに達した時点でオートスケールし、４ジョブ処理可能な能力を有することとする。なお図１２の制御サーバー４０２は、図９ａに示した手順に従って動作する。そこで丸括弧内に図９ａにおけるステップを示した。
【００４８】
Ｓ１２０１において、制御サーバー４０２は印刷リクエスト（Ｊｏｂ１〜Ｊｏｂ３）を受信し、ジョブリスト６４３に追加する（Ｓ９０１）。Ｓ１２０２において、制御サーバー４０２はプリンター１０４に対する変換中ジョブ数を確認する。例では、この時点で変換サーバー４０３に変換中ジョブは存在しないので、制御サーバー４０２は、Ｓ１２０３でＪｏｂ１の印刷データ変換指示を変換サーバー４０３に対して行う（Ｓ９０５）。ここで変換サーバー４０３の変換ジョブ数は１となる。
【００４９】
印刷データ変換指示を受けた変換サーバー４０３は、Ｊｏｂ１の変換処理を開始し、Ｓ１２０４においてストレージサーバー１０２にデータ（ｄａｔａ１）のアップロードを行うとともに、Ｓ１２０５において制御サーバー４０２に対して印刷データ変換処理の状態変化通知（変換開始）を行う（Ｓ９０６）。この時点で、プリンター１０４のプルプリントアプリケーション３０２は、ストレージサーバー１０２から印刷データの取得を開始し、印刷処理を始める（Ｓ１２０６）。このとき、プリンター１０４において、Ｊｏｂ１の印刷処理が始まるので、後続のＪｏｂ２、Ｊｏｂ３がＪｏｂ１より早く印刷が開始されることは無く、印刷順序が保たれることになる。次に、Ｓ１２０７で、制御サーバー４０２は、Ｓ１２０５で印刷データ変換処理の状態変化通知を受信したことにより、図９ｂで説明した通り、再度変換中ジョブ数の確認を行う（Ｓ９０２）。この時点で、変換サーバー４０３における変換中ジョブ数は「１」（Ｊｏｂ１のみ）であるので、並列最大数２未満となり、制御サーバー４０２は、Ｓ１２０８において変換サーバー４０３に対してＪｏｂ２の印刷データ変換指示を行う（Ｓ９０３−Ｎ）。ここで変換サーバー４０３の変換ジョブ数は「２」となる。また、変換ジョブ数が２に達したことにより変換サーバー４０３のオートスケールが行われる。Ｓ１２０９では同様に変換サーバー４０３は、Ｊｏｂ２の変換処理を開始し、変換データ（ｄａｔａ２）をストレージサーバー１０２にアップロードし、Ｊｏｂ２の印刷データ変換処理の状態変化通知（変換開始）を行う（Ｓ１２１０）。ここでは、ストレージサーバー１０２にＪｏｂ２の印刷データがアップロードされるが、プリンター１０４の印刷処理が終わっていないのでプリンター１０４によるデータ取得は行われない。制御サーバー４０２は、Ｓ１２１０で印刷データ変換処理の状態変化通知を受信したことにより、再度変換中ジョブ数の確認を行う（Ｓ９０２）。制御サーバー４０２は、この時点で、変換サーバー４０３における変換中ジョブ数は「２」であるため、並列最大数以上となり印刷データ変換処理の指示は行わない。ここで、前述した通り、Ｓ１２０８の時点でのオートスケールにより、変換サーバー４０３は２ジョブ以上を処理可能になっている。しかし、追加で印刷データ変換処理の指示を行わないことにより、他のリクエストを受信した際に処理を待たせることなく変換サーバー４０３を使用することが可能となる。Ｓ１２１２において、変換サーバー４０３は、Ｊｏｂ１の変換処理が完了した旨の印刷データ変換処理の状態変化通知（変換完了）を行う。Ｓ１２１３で、制御サーバー４０２は、印刷データ変換処理の状態変化通知（変換完了）を受信し（Ｓ９０７−Ｙ）、変換中ジョブ数を１減算する（Ｓ９０８）。その結果、変換中ジョブ数が並列最大数未満となるので、変換サーバー４０３に対してＪｏｂ３の印刷データ変換指示を行う（Ｓ９０９−Ｓ９０５）。以降の処理は、これまでの説明と同等であるため詳細は割愛する。このように、一定数以上の印刷データ変換指示を制限することにより、並列に印刷データ変換処理を行いながらも、変換サーバー４０３の独占を制御することができる。
【００５０】
一方で、プリンター１０４での印刷処理が完了した際、Ｓ１２０９の時点で次のジョブ（Ｊｏｂ２）の印刷データが既にストレージサーバー１０２にアップロードされているので、プルプリントアプリケーション３０３が遅延なく次の処理を開始することが可能となる。
【００５１】
以上のように、本実施形態によれば、特定のプリンターを用いて印刷処理を行う際には並列度（すなわち並列処理の数）を予め定めた値に抑制することで、不必要に並列度の高い処理のために消費されるリソースを抑制することができる。そしてそれによって他の処理に対して割り当てられるリソースを保証することができ、他の処理を遅延させたり或いは停止させることを防止できる。一方、特定のプリンターを用いた印刷処理、特にイオン殺ジョブの生成処理に対しても一定の並列度の並列処理を許すことで、ジョブ生成の遅延による印刷処理の遅延を防止することもできる。
【００５２】
［実施形態２］
実施形態１では、処理の状態によって一定の並列数を保ちながら並列処理を行う方法を説明した。しかしながら、一つの文書を複数の文書に分割して変換処理する場合や、複数の印刷ジョブを一つの印刷ジョブとして扱う場合がある。以降、このような一つの印刷ジョブに関連する複数の印刷ジョブを関連ジョブと呼び、複数の印刷ジョブを関連付ける一意の識別子を関連ジョブＩＤと呼ぶ。また各関連ジョブに分割される文書データを分割文書データと呼ぶ。関連ジョブの場合、並列に処理を行っても、ある途中の変換処理でエラーが発生すると、後続の処理が無駄になってしまう場合がある。このような場合は、エラーが発生した時点で関連ジョブに関する処理を停止させるのが望ましい。以下、変換処理でエラーが発生した場合のプリントサーバー１０１のキャンセル処理を説明する。なお、図中の番号および名称は特に断らない限り実施例１と同様である
●関連ジョブＩＤ付与処理
図１０ａは、プリントサーバー１０１の印刷リクエスト受信時の関連ジョブＩＤを付与する処理フローであり、図９ａで説明した実施例１の処理にＳ１００１を追加したものである。図１０ａの手順はたとえば、プリントサーバー１０１のＣＰＵ２２０がＲＡＭ２２２に格納したプログラムを実行することで実現できる。Ｓ９０１からＳ９０５の処理は実施例１の図９ａと同様であるため説明は省略する。Ｓ１００１において、制御サーバー４０２は、Ｓ９０１で受け付けた印刷リクエストが関連ジョブであるかどうか判断し、関連ジョブである場合は、Ｓ１００２において、ジョブ情報１１００の関連ジョブＩＤ１１０１に値を保存する。図１１のジョブ情報１１００は、実施例１のジョブ情報６００に関連ジョブＩＤ１１０１を追加したものであり、他の情報は実施例１と同様である。ここで、外部から関連ジョブの指定方法は、外部からの複数の印刷リクエストに対して関連ジョブＩＤが指定されている場合や、一回の印刷リクエストに複数の文書ＩＤが指定されている場合等が考えられるが特に限定しない。本実施形態では、一回の印刷リクエストで複数の文書ＩＤが指定されている場合に、制御サーバー４０２がそれぞれの文書ＩＤに関して生成される複数の印刷ジョブを関連ジョブとして扱い、関連ジョブＩＤ１１０１を発行する方法を想定している。また、関連ジョブＩＤ１１０１の値に関しては、システム内で一意あればよく、その発行の仕方に関しては特に限定しない。
【００５３】
●印刷データ変換処理のキャンセル処理
図１０ｂは、プリントサーバー１０１の関連ジョブの変換処理でエラーが発生した際のキャンセル処理を付加した、印刷データ変換処理の状態変化通知受信時の印刷ジョブ制御フローである。図１０ｂの処理は、実施形態１の図９ｂにおけるＳ９０６に代えて本実施形態で実行される処理である。なおＳ９０７に関しては、本実施形態では、変換完了と変換エラーに加えて、「変換キャンセル済み」なるステータスでもＳ９０８に分岐する。「変換キャンセル済み」ステータスは、データ変換部４０９が実行中の変換処理に対してキャンセルが指示され、それに応じて変換処理をキャンセルした場合の変換サーバー４０３による応答である。Ｓ１００３で制御サーバー４０２は、変換サーバー４０３から印刷データ変換処理の状態変化を受信し、ジョブ情報１１００の変換ステータス６０７を更新する。Ｓ１００４において、制御サーバー４０２は、変換ステータス６０７を確認し、変換エラーだった場合は、Ｓ１００５でサーバープリントキュー情報６４０のジョブリスト６４２にジョブＩＤ６０１が存在するかどうか確認する。変換ステータス６０７が変換開始や変換完了であった場合は処理を終える。Ｓ１００６で、制御サーバー４０２は、ジョブリスト６４２にジョブＩＤ６０１が存在した場合、ジョブＩＤ６０１に紐づくジョブ情報１１００の関連ジョブＩＤ１１０１を確認する。Ｓ１００７において、制御サーバー４０２は、ジョブ情報１１００の変換ステータス６０７を確認し、未処理（初期値）であった場合は、Ｓ１００８においてジョブキャンセル処理を行う。具体的には、制御サーバー４０２が、文書情報６２０のステータス６２５を更新し、サーバープリントキュー情報６４０のジョブリスト６４２からの削除およびジョブ情報１１００の削除を行う。Ｓ１００９において、制御サーバー４０２は、ジョブ情報１１００の変換ステータス６０７を確認し、変換開始であった場合はＳ１０１０において変換処理のキャンセルを行う。具体的には、制御サーバー４０２は、変換サーバー４０３に対して対象のジョブの変換キャンセルのリクエストを発行する。ここで、変換キャンセルリクエストを受信した際の変換サーバー４０３の動作について説明する（不図示）。変換サーバー４０３はキャンセルリクエストを受信すると、変換データ管理部４０８がストレージサーバー１０２からダウンロードした文書データと、ストレージサーバー１０２の文書ＵＲＬ６２４にアップロードしたデータを削除する。また、データ変換部４０９に対し変換処理の中止を指示する。また変換サーバー１４０３は制御サーバー４０２に対して例えば「変換キャンセル済み」ステータスを返す。「変換キャンセル済み」の応答はキャンセルされた変換処理ごとに反される。ストレージサーバー１０２のデータが削除されることにより、プルプリントアプリケーション３０３は制御サーバー４０２に問い合わせ、印刷処理の中止を行う。さらにキャンセルされた変換処理については、キャンセルされた処理の数だけ変換キャンセル済みが変換サーバー４０３から制御サーバー４０２に応答される。変換キャンセル済みステータスに対しては、Ｓ１００４では変換エラーではないと判定されてＳ９０７に分岐し、Ｓ９０７では、変換キャンセル済みステータスの場合にもＳ９０８に分岐する。それによってキャンセルされた変換処理の数だけ、変換中ジョブの数が減算される。またＳ１００８により関連ジョブに関してはキャンセルされているため、次に待機している、中止された関連ジョブ以外の印刷ジョブのために変換処理が実行される。プルプリントアプリケーション３０３に対するキャンセル指示に関しては、先に述べた方法でもよいし、インデックスファイル７０１にその旨を記載することでも実現できる。さらには、プルプリントアプリケーション３０３が印刷処理の間、制御サーバー４０２に定期的に問い合わせ、印刷中止を判断する方法でも実現できる。
そして、制御サーバー４０２は、Ｓ１００５からＳ１０１０の処理をジョブリストのジョブすべてに対して行う。
【００５４】
以上の処理により、変換エラーが発生した場合に、エラーが発生したジョブに関連するジョブの変換処理を停止することができ、無駄なリソースの消費を抑えることができる。また、エラーが発生したジョブに関連しないジョブは並列処理を行うことができる。
【００５５】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５６】
１０１  プリントサーバー、１０２  ストレージサーバー、１０３  認証サーバー、１０４、１０５  プリンター、３０３  プルプリントアプリケーション、４０１  Ｗｅｂサーバー、４０２  制御サーバー、４０３  変換サーバー
【図１】
2018041274.tif 000003
【図２ａ】
2018041274.tif 000004
【図２ｂ】
2018041274.tif 000005
【図３】
2018041274.tif 000006
【図４ａ】
2018041274.tif 000007
【図４ｂ】
2018041274.tif 000008
【図５】
2018041274.tif 000009
【図６】
2018041274.tif 000010
【図７】
2018041274.tif 000011
【図８】
2018041274.tif 000012
【図９ａ】
2018041274.tif 000013
【図９ｂ】
2018041274.tif 000014
【図１０ａ】
2018041274.tif 000015
【図１０ｂ】
2018041274.tif 000016
【図１１】
2018041274.tif 000017
【図１２】
2018041274.tif 000018