(57)【特許請求の範囲】
【請求項１】
一台以上の情報処理装置を含むように構成される情報処理システムであって、
ユーザから受け付けたジョブを処理の種類により振り分ける管理手段と、
処理の種類ごとに振り分けられた前記ジョブを、処理する順番に保持する保持手段と、
前記処理する順番に前記ジョブを実行する実行手段と
を備え、
前記管理手段は、
前記ジョブごとに前記ジョブの実行に掛かる予測時間を予測して記憶部に記憶し、前記ジョブが複数のタスクにより構成される場合に、前記処理する順番が後の前記タスクの実行に掛かる予測時間の予測に、前記処理する順番が一つ前の前記タスクの前記実行手段による実行後のページ数を、前記処理する順番が後の前記タスクの実行手段による実行前のページ数として、前記ジョブを構成する前記タスクの実行に掛かる予測時間を予測し、前記タスクにより構成される前記ジョブの予測時間を予測する予測手段と、
ユーザからジョブを受け付けた場合に、期日が指定されたジョブを、期日が指定されていないジョブよりも優先せずに処理するように前記処理する順番の挿入位置を判断して挿入する順序調整手段と、
前記実行手段が前記ジョブを実行した結果に基づき、前記予測手段が前記ジョブの実行に掛かる予測時間の予測に利用する見積処理時間を更新する処理時間見積更新手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記順序調整手段は、受け付けた前記ジョブに遅くとも印刷を終えたい期日が指定されている場合に、前記期日が指定されていないジョブよりも優先せずに処理するように判断すること
を特徴とする請求項１記載の情報処理システム。
【請求項３】
前記順序調整手段は、前記期日が指定されていない前記ジョブ、及び、挿入位置を判断する前記ジョブの期日よりも前の前記期日が指定されている前記ジョブの後ろに、挿入位置を判断する前記ジョブが挿入されるように、ユーザから受け付けた前記ジョブの挿入位置を判断すること
を特徴とする請求項２記載の情報処理システム。
【請求項４】
前記順序調整手段は、挿入位置を判断する前記ジョブの期日までの時間が、所定時間よりも短くなった場合に、ユーザから受け付けた優先せずに処理する前記ジョブを、前記期日が指定されていない前記ジョブよりも前に挿入すること
を特徴とする請求項３記載の情報処理システム。
【請求項５】
前記順序調整手段は、挿入位置を判断する前記ジョブの期日と同日の期日が指定されている前記ジョブが所定件数を超えた場合に、ユーザから受け付けた優先せずに処理する前記ジョブを、前記期日が指定されていない前記ジョブよりも前に挿入すること
を特徴とする請求項３記載の情報処理システム。
【請求項６】
前記順序調整手段は、前記期日が指定されていない前記ジョブが所定件数を超えた場合に、ユーザから受け付けた優先せずに処理する前記ジョブを、前記期日が指定されていない前記ジョブよりも前に挿入すること
を特徴とする請求項３記載の情報処理システム。
【請求項７】
前記処理時間見積更新手段は、ページ数、ファイルサイズ、文書サイズ、色数、組織情報及びユーザ識別情報の何れか、又は、２つ以上の組み合わせごとに、前記ジョブの処理の種類に応じた前記見積処理時間を更新すること、
を特徴とする請求項１乃至６の何れか一項記載の情報処理システム。
【請求項８】
前記予測手段は、前記処理する順番が一つ前の前記タスクの前記実行手段による実行後のページ数が所定数だった場合に、前記処理する順番が一つ前の前記タスクの前記実行手段による実行前のページ数を、前記処理する順番が後の前記タスクの実行手段による実行前のページ数として、前記ジョブを構成する前記タスクの実行に掛かる予測時間を予測すること
を特徴とする請求項１乃至７の何れか一項記載の情報処理システム。
【請求項９】
前記ジョブのページ数を算出する処理を保持する算出保持手段と、
前記算出保持手段に保持された前記ジョブのページ数を算出する算出用実行手段と、
を更に有し、
前記予測手段は、前記算出用実行手段に前記ジョブを投入して前記算出用実行手段により算出された前記ジョブのページ数を取得すること
を特徴とする請求項８記載の情報処理システム。
【請求項１０】
前記実行手段は、前記ジョブのページ数を算出する処理を行うこと
を特徴とする請求項８記載の情報処理システム。
【請求項１１】
一台以上の情報処理装置を含むように構成される情報処理システムが実行する非優先処理方法であって、
ユーザから受け付けたジョブを処理の種類により振り分ける振り分けステップと、
処理の種類ごとに振り分けられた前記ジョブを、処理する順番で保持手段に保持する保持ステップと、
前記処理する順番に実行手段が前記ジョブを実行する実行ステップと
を有し、
前記振り分けステップは、前記ジョブごとに前記ジョブの実行に掛かる予測時間を予測して記憶部に記憶し、前記ジョブが複数のタスクにより構成される場合に、前記処理する順番が後の前記タスクの実行に掛かる予測時間の予測に、前記処理する順番が一つ前の前記タスクの前記実行手段による実行後のページ数を、前記処理する順番が後の前記タスクの実行手段による実行前のページ数として、前記ジョブを構成する前記タスクの実行に掛かる予測時間を予測し、前記タスクにより構成される前記ジョブの予測時間を予測する予測ステップと、
ユーザからジョブを受け付けた場合に、期日が指定されたジョブを、期日が指定されていないジョブよりも優先せずに処理するように前記処理する順番の挿入位置を判断して挿入する順序調整ステップと、
前記実行手段が前記ジョブを実行した結果に基づき、前記予測ステップで前記ジョブの実行に掛かる予測時間の予測に利用する見積処理時間を更新する処理時間見積更新ステップと、
を有することを特徴とする非優先処理方法。
【請求項１２】
ユーザから受け付けたジョブを処理の種類により振り分ける管理手段と、
処理の種類ごとに振り分けられた前記ジョブを、処理する順番に保持する保持手段と、
前記処理する順番に前記ジョブを実行する実行手段と
を備え、
前記管理手段は、前記ジョブごとに前記ジョブの実行に掛かる予測時間を予測して記憶部に記憶し、前記ジョブが複数のタスクにより構成される場合に、前記処理する順番が後の前記タスクの実行に掛かる予測時間の予測に、前記処理する順番が一つ前の前記タスクの前記実行手段による実行後のページ数を、前記処理する順番が後の前記タスクの実行手段による実行前のページ数として、前記ジョブを構成する前記タスクの実行に掛かる予測時間を予測し、前記タスクにより構成される前記ジョブの予測時間を予測する予測手段と、
ユーザからジョブを受け付けた場合に、期日が指定されたジョブを、期日が指定されていないジョブよりも優先せずに処理するように前記処理する順番の挿入位置を判断して挿入する順序調整手段と、
前記実行手段が前記ジョブを実行した結果に基づき、前記予測手段が前記ジョブの実行に掛かる予測時間の予測に利用する見積処理時間を更新する処理時間見積更新手段と、
を有することを特徴とする情報処理装置。
【請求項１３】
コンピュータを、
ユーザから受け付けたジョブを処理の種類により振り分ける管理手段、
処理の種類ごとに振り分けられた前記ジョブを、処理する順番に保持する保持手段、
前記処理する順番に前記ジョブを実行する実行手段
として機能させ、
前記管理手段は、前記ジョブごとに前記ジョブの実行に掛かる予測時間を予測して記憶部に記憶し、前記ジョブが複数のタスクにより構成される場合に、前記処理する順番が後の前記タスクの実行に掛かる予測時間の予測に、前記処理する順番が一つ前の前記タスクの前記実行手段による実行後のページ数を、前記処理する順番が後の前記タスクの実行手段による実行前のページ数として、前記ジョブを構成する前記タスクの実行に掛かる予測時間を予測し、前記タスクにより構成される前記ジョブの予測時間を予測する予測手段と、
ユーザからジョブを受け付けた場合に、期日が指定されたジョブを、期日が指定されていないジョブよりも優先せずに処理するように前記処理する順番の挿入位置を判断して挿入する順序調整手段と、
前記実行手段が前記ジョブを実行した結果に基づき、前記予測手段が前記ジョブの実行に掛かる予測時間の予測に利用する見積処理時間を更新する処理時間見積更新手段と、
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理システム、非優先処理方法、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングシステムによりクラウドプリントサービスやクラウドスキャンサービスなどのクラウドサービスが提供されるようになった。
【０００３】
例えばユーザからのジョブ投入を受け付け、ジョブの処理に対応したキューにジョブをキューイングし、そのキューに対応したＷｏｒｋｅｒ（ワーカ）が非同期にジョブの処理を実行する情報処理システムは従来から知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の情報処理システムではユーザから受け付けたジョブを順番にキューイングして処理していた。したがって、従来の情報処理システムは、あるジョブを優先せずに処理する要求をユーザから受け付ける仕組みがなかった。このように、従来の情報処理システムを利用するユーザは、あるジョブを優先せずに処理する要求を行うことができなかった。
【０００５】
本発明の実施の形態は上記の点に鑑みなされたもので、優先せずに処理するジョブの要求をユーザから受け付けることが可能な情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本願請求項１は、一台以上の情報処理装置を含むように構成される情報処理システムであって、ユーザから受け付けたジョブを処理の種類により振り分ける管理手段と、処理の種類ごとに振り分けられた前記ジョブを、処理する順番に保持する保持手段と、前記処理する順番に前記ジョブを実行する実行手段とを備え、前記管理手段は、前記ジョブごとに前記ジョブの実行に掛かる予測時間を予測して記憶部に記憶し、前記ジョブが複数のタスクにより構成される場合に、前記処理する順番が後の前記タスクの実行に掛かる予測時間の予測に、前記処理する順番が一つ前の前記タスクの前記実行手段による実行後のページ数を、前記処理する順番が後の前記タスクの実行手段による実行前のページ数として、前記ジョブを構成する前記タスクの実行に掛かる予測時間を予測し、前記タスクにより構成される前記ジョブの予測時間を予測する予測手段と、ユーザからジョブを受け付けた場合に、期日が指定されたジョブを、期日が指定されていないジョブよりも優先せずに処理するように前記処理する順番の挿入位置を判断して挿入する順序調整手段と、前記実行手段が前記ジョブを実行した結果に基づき、前記予測手段が前記ジョブの実行に掛かる予測時間の予測に利用する見積処理時間を更新する処理時間見積更新手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明の実施の形態によれば、優先せずに処理するジョブの要求をユーザから受け付けることが可能である。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係るシステムの一例の構成図である。
【図２】コンピュータの一例のハードウェア構成図である。
【図３】第１の実施形態に係るサービス提供システムの一例の処理ブロック図である。
【図４】第１の実施形態に係るサービス提供システムにおいてジョブ実行処理を実現する一例の処理ブロック図である。
【図５】印刷アップロード画面の一例のイメージ図である。
【図６】確認ダイアログが表示された印刷アップロード画面の一例のイメージ図である。
【図７】ドキュメント処理要求管理部の処理手順の一例を表したフローチャートである。
【図８】ジョブ情報の一例の構成図である。
【図９】処理時間見積テーブルの一例の構成図である。
【図１０】ジョブ予測処理の一例のフローチャートである。
【図１１】予測時間テーブルの一例の構成図である。
【図１２】ジョブ順序調整処理の一例のフローチャートである。
【図１３】ジョブの処理順序を決める処理の一例の説明図である。
【図１４】期日が迫ったジョブの処理順序を早める処理の一例の説明図である。
【図１５】第２の実施形態に係るサービス提供システムにおいてジョブ実行処理を実現する一例の処理ブロック図である。
【図１６】第２の実施形態に係る処理時間見積テーブルの一例の構成図である。
【図１７】第２の実施形態に係るジョブ予測処理の一例のフローチャートである。
【図１８】ワーカの処理の一例のフローチャートである。
【図１９】処理時間見積更新部の処理の一例のフローチャートである。
【図２０】処理後のページ数を算出する方法について説明する一例の図である。
【図２１】処理時間見積更新部により更新された処理時間見積テーブルの一例の構成図である。
【図２２】第３の実施形態に係るサービス提供システムにおいてジョブ実行処理を実現する一例の処理ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照しながら説明する。
［第１の実施形態］
＜システム構成＞
図１は第１の実施形態に係るシステムの一例の構成図である。図１のシステム１０００は例えばオフィス内ネットワーク等のネットワークＮ１と、クラウドサービスに代表されるサービス提供システム１１００のネットワークＮ２と、インターネットなどのネットワークＮ３とを有する。
【００１０】
ネットワークＮ１は、ファイヤウォールＦＷの内側にあるプライベートなネットワークである。ネットワークＮ１にはクライアント端末１０１１、携帯端末１０１２、複合機などの画像形成装置１０１３が接続されている。クライアント端末１０１１、携帯端末１０１２、複合機などの画像形成装置１０１３は無線による通信の手段または有線による通信の手段を有する。
【００１１】
クライアント端末１０１１は端末装置の一例である。クライアント端末１０１１はデスクトップＰＣやノートＰＣなどのユーザが操作可能な端末である。携帯端末１０１２は端末装置の一例である。携帯端末１０１２はスマートフォン、携帯電話、タブレット端末などのユーザが携帯可能な端末である。
【００１２】
画像形成装置１０１３は複合機などの画像形成機能を有する装置である。画像形成装置１０１３は複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板などの画像形成に係る処理を行う装置である。図１では、一例としてクライアント端末１０１１、携帯端末１０１２、画像形成装置１０１３がそれぞれ一台である例を示しているが複数台であってもよい。
【００１３】
ネットワークＮ２はアクセス制御装置１０２１によってネットワークＮ３に接続されている。ネットワークＮ２にはプリントサービス提供装置１０２２、スキャンサービス提供装置１０２３、他サービス提供装置１０２４が接続されている。
【００１４】
図１のシステム１０００は、アクセス制御装置１０２１、プリントサービス提供装置１０２２、スキャンサービス提供装置１０２３、他サービス提供装置１０２４がサービス提供システム１１００を実現している。
【００１５】
アクセス制御装置１０２１はプリントサービス提供装置１０２２が提供するプリントサービスやスキャンサービス提供装置１０２３が提供するスキャンサービスなどへのログインを制御する。
【００１６】
アクセス制御装置１０２１、プリントサービス提供装置１０２２、スキャンサービス提供装置１０２３、他サービス提供装置１０２４は、一台以上の情報処理装置によって実現される。
【００１７】
アクセス制御装置１０２１、プリントサービス提供装置１０２２、スキャンサービス提供装置１０２３、他サービス提供装置１０２４は一台の情報処理装置に統合して実現してもよいし、複数の情報処理装置に分散して実現してもよい。
【００１８】
ネットワークＮ２側のサービスの一部はネットワークＮ２以外にあってもよい。携帯端末１０１２は、オフィス内ネットワーク等のネットワークＮ１以外にあってもよい。図１のシステム１０００では携帯端末１０１２がネットワークＮ１と、ネットワークＮ３とにある例を示している。
【００１９】
＜ハードウェア構成＞
クライアント端末１０１１、携帯端末１０１２、アクセス制御装置１０２１、プリントサービス提供装置１０２２、スキャンサービス提供装置１０２３、他サービス提供装置１０２４は、例えば図２に示すハードウェア構成のコンピュータにより実現される。
【００２０】
図２はコンピュータの一例のハードウェア構成図である。コンピュータ１５００は、入力装置１５０１、表示装置１５０２、外部Ｉ／Ｆ１５０３、ＲＡＭ（Random Access Memory）１５０４、ＲＯＭ（Read Only Memory）１５０５、ＣＰＵ（Central Processing Unit）１５０６、通信Ｉ／Ｆ１５０７、及びＨＤＤ（Hard Disk Drive）１５０８などを備え、それぞれがバスＢで相互に接続されている。
【００２１】
入力装置１５０１はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置１５０２はディスプレイ等を含み、コンピュータ１５００による処理結果を表示する。なお、入力装置１５０１及び表示装置１５０２は必要なときに接続して利用する形態であってもよい。
【００２２】
通信Ｉ／Ｆ１５０７はコンピュータ１５００をネットワークＮ１〜Ｎ３に接続するインタフェースである。これにより、コンピュータ１５００は、通信Ｉ／Ｆ１５０７を介してデータ通信を行うことができる。
【００２３】
ＨＤＤ１５０８はプログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータにはコンピュータ１５００全体を制御する基本ソフトウェアであるＯＳ（Operating System）やＯＳ上において各種機能を提供するアプリケーションソフトウェアなどがある。なお、コンピュータ１５００はＨＤＤ１５０８に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであってもよい。
【００２４】
外部Ｉ／Ｆ１５０３は、外部装置とのインタフェースである。外部装置には、記録媒体１５０３ａなどがある。これにより、コンピュータ１５００は外部Ｉ／Ｆ１５０３を介して記録媒体１５０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１５０３ａにはフレキシブルディスク、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（SD Memory card）、ＵＳＢメモリ（Universal Serial Bus memory）などがある。
【００２５】
ＲＯＭ１５０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１５０５には、コンピュータ１５００の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、ネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１５０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。
【００２６】
ＣＰＵ１５０６は、ＲＯＭ１５０５やＨＤＤ１５０８などの記憶装置からプログラムやデータをＲＡＭ１５０４上に読み出し、処理を実行することで、コンピュータ１５００全体の制御や機能を実現する演算装置である。
【００２７】
クライアント端末１０１１、携帯端末１０１２、アクセス制御装置１０２１、プリントサービス提供装置１０２２、スキャンサービス提供装置１０２３、他サービス提供装置１０２４は、コンピュータ１５００のハードウェア構成により、後述するような各種処理を実現できる。
【００２８】
＜ソフトウェア構成＞
《サービス提供システム》
図１のサービス提供システム１１００は例えば図３に示すような処理ブロックにより実現される。図３は第１の実施形態に係るサービス提供システムの一例の処理ブロック図である。
【００２９】
図３のサービス提供システム１１００は、プログラムを実行することにより、サービスアプリ１１０１、プラットフォーム１１０２、管理データ記憶部１１０３及びプラットフォームＡＰＩ（Application Programming Interface）１１０４を実現している。
【００３０】
サービスアプリ１１０１は、プリントサービスアプリ１１１１、スキャンサービスアプリ１１１２、１つ以上のその他のサービスアプリ１１１３を一例として有する。
【００３１】
プリントサービスアプリ１１１１はプリントサービスを提供するアプリケーションである。スキャンサービスアプリ１１１２はスキャンサービスを提供するアプリケーションである。その他のサービスアプリ１１１３は何らかのサービスを提供するアプリケーションである。
【００３２】
プラットフォームＡＰＩ１１０４はプリントサービスアプリ１１１１、スキャンサービスアプリ１１１２、その他のサービスアプリ１１１３などのサービスアプリ１１０１が、プラットフォーム１１０２を利用するためのインタフェースである。プラットフォームＡＰＩ１１０４はサービスアプリ１１０１からの要求をプラットフォーム１１０２が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。なお、サービス提供システム１１００を複数の情報処理装置に分散して構成する場合、プラットフォームＡＰＩ１１０４にはネットワーク経由で利用可能な例えばＷｅｂ  ＡＰＩを利用できる。
【００３３】
プラットフォーム１１０２は、認証処理部１１２１、機器通信部１１２２、セッション管理部１１２３、処理制御部１１２４、データ処理部１１２５を有する。データ処理部１１２５は、メッセージキュー１１３１、１つ以上のワーカ（Ｗｏｒｋｅｒ）１１３２を有する。
【００３４】
認証処理部１１２１はクライアント端末１０１１、携帯端末１０１２や画像形成装置１０１３などのオフィス機器からのログイン要求に基づいて認証を実行する。オフィス機器はクライアント端末１０１１、携帯端末１０１２、画像形成装置１０１３などの総称である。認証処理部１１２１は例えばユーザ管理情報記憶部１１４２にアクセスしてユーザを認証する。また、認証処理部１１２１は組織管理情報記憶部１１４１、機器管理情報記憶部１１４３にアクセスして画像形成装置１０１３などを認証する。
【００３５】
機器通信部１１２２はオフィス機器との通信を実行する。セッション管理部１１２３はオフィス機器とのセッションを管理する。処理制御部１１２４はサービスアプリ１１０１からの要求に基づいてデータ処理部１１２５が実行するデータ処理を制御する。データ処理部１１２５は処理制御部１１２４の制御によりデータ処理を実行する。
【００３６】
メッセージキュー１１３１はジョブの処理の種類（ジョブタイプ）に対応するキューを有し、処理制御部１１２４からジョブをキューイングされる。キューはジョブを処理する順番に保持する。ワーカ１１３２は対応するキューを監視している。ワーカ１１３２は監視しているキューにジョブがキューイングされると、そのジョブのジョブタイプに応じた処理を行う。
【００３７】
管理データ記憶部１１０３は組織管理情報記憶部１１４１、ユーザ管理情報記憶部１１４２、機器管理情報記憶部１１４３、ジョブ情報管理記憶部１１４４、共有ファイルストレージ１１４５を有する。
【００３８】
組織管理情報記憶部１１４１は、組織管理情報を記憶する。ユーザ管理情報記憶部１１４２は、ユーザ管理情報を記憶する。機器管理情報記憶部１１４３は機器管理情報を記憶する。
【００３９】
ジョブ情報管理記憶部１１４４は後述のジョブ情報テーブル、処理時間見積テーブル及び予測時間テーブルを記憶している。共有ファイルストレージ１１４５はキューイングされたジョブの電子文書ファイル等のファイルを記憶する。
【００４０】
サービス提供システム１１００は、例えば認証やデータ処理といった機能を提供するクラウド基盤と、クラウド基盤の機能を利用してプリントサービス等のサービス提供を行うサービス群として機能する。クラウド基盤は、例えばプラットフォーム１１０２、管理データ記憶部１１０３、プラットフォームＡＰＩ１１０４によって構成される。サービス群は例えばサービスアプリ１１０１によって構成される。
【００４１】
《ジョブ実行機能》
第１の実施形態に係るサービス提供システム１１００は図４に示す処理ブロックによりジョブ実行処理を実現している。図４は第１の実施形態に係るサービス提供システムにおいてジョブ実行処理を実現する一例の処理ブロック図である。
【００４２】
図４のサービス提供システム１１００は、フロントエンドアプリ１１１１ａ、プラットフォーム１１０２、ジョブ情報管理記憶部１１４４及び共有ファイルストレージ１１４５により、ユーザからのジョブを実行する。
【００４３】
図４では、プリントサービスアプリ１１１１の一機能であるフロントエンドアプリ１１１１ａを表しているが、スキャンサービスアプリ１１１２や、その他のサービスアプリ１１１３の一機能であるフロントエンドアプリであってもよい。
【００４４】
また、図４のサービス提供システム１１００はプラットフォーム１１０２のドキュメント処理要求管理部１１２４ａ、メッセージキュー１１３１及びワーカ１１３２を利用してユーザからのジョブを実行する。ドキュメント処理要求管理部１１２４ａは処理制御部１１２４の一機能である。
【００４５】
フロントエンドアプリ１１１１ａはクライアント端末１０１１などの端末装置から送信されたジョブを受信し、ジョブに含まれる電子文書ファイル等を共有ファイルストレージ１１４５に登録する機能を備える。また、フロントエンドアプリ１１１１ａは必要な処理を判断してプラットフォーム１１０２にジョブの処理を実行させる制御を行う。
【００４６】
フロントエンドアプリ１１１１ａは判断した必要な処理を「ｄｏｃ２ｒｐｃｓ」のようなジョブタイプのパラメータにして、ドキュメント処理要求管理部１１２４ａへのジョブ情報に埋め込む。なお、ジョブタイプのパラメータの詳細は後述する。
【００４７】
ドキュメント処理要求管理部１１２４ａはジョブタイプをパラメータとして含むジョブ情報を受け付ける。ドキュメント処理要求管理部１１２４ａはフロントエンドアプリ１１１１ａから受け付けたジョブ情報を解析し、ジョブタイプが合致するメッセージキュー１１３１のキューに、ジョブを入れる。また、ドキュメント処理要求管理部１１２４ａは、メッセージキュー１１３１のキューへジョブを入れることに並行して、ジョブ情報管理記憶部１１４４にジョブ情報を登録する。
【００４８】
メッセージキュー１１３１は複数のジョブタイプに対応するキューを有する。ワーカ１１３２は、そのワーカ１１３２に対応するキューを監視しており、キューにジョブが入ると、ジョブ情報管理記憶部１１４４に登録された、そのジョブに対応するジョブ情報を取りに行く。ワーカ１１３２は、ジョブ情報管理記憶部１１４４から取得したジョブ情報に基づいて、データ変換などの処理を行う。
【００４９】
例えばデータ変換の処理を行う場合、ワーカ１１３２はジョブ情報に含まれるデータのＵＲＩに基づいて、共有ファイルストレージ１１４５からファイルを取得する。ワーカ１１３２は取得したファイルのデータ変換を行う。ワーカ１１３２は、変換後のファイルを共有ファイルストレージ１１４５に登録し、ジョブ情報管理記憶部１１４４に登録されているジョブ情報を更新する。
【００５０】
第１の実施形態に係るサービス提供システム１１００は、優先して処理しないジョブの要求をユーザから受け付けるため、ドキュメント処理要求管理部１１２４ａにジョブ予測部１２０１とジョブ順序調整部１２０２とを有している。また、ジョブ情報管理記憶部１１４４にはジョブ情報テーブル１２０３に加えて、処理時間見積テーブル１２０４と予測時間テーブル１２０５とを記憶している。
【００５１】
第１の実施形態に係るサービス提供システム１１００は、ジョブ予測部１２０１、ジョブ順序調整部１２０２、処理時間見積テーブル１２０４及び予測時間テーブル１２０５を利用して、後述のように、優先せずに処理するジョブの要求をユーザから受け付ける。
【００５２】
＜処理の詳細＞
以下では第１の実施形態に係るサービス提供システム１１００のジョブ実行処理の詳細について説明する。
【００５３】
例えばユーザはクライアント端末１０１１に表示された図５のような印刷アップロード画面２０００を操作し、ジョブをサービス提供システム１１００に登録できる。図５は印刷アップロード画面の一例のイメージ図である。なお、ここではジョブをサービス提供システム１１００に登録する画面の一例として印刷アップロード画面２０００を示したが他の画面であってもよい。
【００５４】
図５の印刷アップロード画面２０００は印刷ファイル、印刷条件を指定する欄と、ディスカウント印刷を指定する欄と、が含まれる。ディスカウント印刷を指定する欄には、遅くとも印刷を終えたい期日の指定欄が含まれる。図５では、期日までの時間により段階的に割引料金が発生する例を示している。
【００５５】
ユーザは印刷ファイル、印刷条件を指定すると共に、必要に応じてディスカウント印刷を指定してアップロードボタン２００１を押下することで、ジョブをサービス提供システム１１００に登録できる。なお、ディスカウント印刷が指定された状態でアップロードボタン２００１が押下されると、クライアント端末１０１１は図６に示すように確認ダイアログ２００２を表示してもよい。確認ダイアログ２００２を表示することで、クライアント端末１０１１は割引料金が発生することをユーザに認識させることができる。
【００５６】
図５、図６の印刷アップロード画面２０００を利用することで、第１の実施形態のシステム１０００は印刷が終わる期日が遅くなっても料金を安くしたいというユーザからの要求を受け付けることができる。このようにユーザは印刷を終えるまでの期日が長くなることを許容する見返りに、料金の割引を受けることができる。
【００５７】
クライアント端末１０１１からのジョブを受信したドキュメント処理要求管理部１１２４ａは例えば図７に示すような処理を行う。図７はドキュメント処理要求管理部の処理手順の一例を表したフローチャートである。
【００５８】
ステップＳ１１において、ドキュメント処理要求管理部１１２４ａはフロントエンドアプリ１１１１ａから図８に示すようなユーザからのジョブ情報を受信する。図８はジョブ情報の一例の構成図である。なお、図８のジョブ情報はユーザによりディスカウント印刷が指定された例であるため、遅くとも印刷を終えたい期日「delivery_at」２５０１が指定されている。図８のジョブ情報はジョブを引き受けた日時「created_at」２５０２から１０日後に遅くとも印刷を終えたい期日が指定された例を示している。
【００５９】
ステップＳ１２に進み、ドキュメント処理要求管理部１１２４ａは、ジョブ情報管理記憶部１１４４のジョブ情報テーブル１２０３にジョブ情報を登録する。この際、ジョブ情報のジョブＩＤ「_id」２５０３が発行される。
【００６０】
ステップＳ１３に進み、ドキュメント処理要求管理部１１２４ａのジョブ予測部１２０１は、ジョブの完了に掛かる時間を予測するジョブ予測処理を行う。ジョブ予測処理は例えば図９に示すような処理時間見積テーブル１２０４を利用して行う。
【００６１】
図９は処理時間見積テーブルの一例の構成図である。図９の処理時間見積テーブル１２０４はジョブタイプごとにジョブの完了に掛かる予測時間が見積処理時間として登録されている。なお、処理時間見積テーブル１２０４への情報の登録は、設計者が新しいジョブタイプのワーカ１１３２を追加した際に、新しいジョブタイプと見積処理時間とを登録してもよい。また、処理時間見積テーブル１２０４に登録されたジョブタイプごとの見積処理時間はワーカ１１３２が日々の処理時間を集計し、更新してもよい。
【００６２】
図９の処理時間見積テーブル１２０４はジョブタイプごとに見積処理時間が登録されている例を示したが、例えばジョブタイプを更にファイルサイズやページ数などで分け、見積処理時間を登録してもよい。
【００６３】
なお、図９に示したジョブタイプは例えば以下に示すような処理を表している。
「ｉｍａｇｅ２ｐｄｆ」画像ファイルをＰＤＦ（Portable Document Format）に変換する処理
「ｈｔｍｌ２ｐｄｆ」ＨＴＭＬ（Hyper Text Markup Language）ファイルをＰＤＦに変換する処理
「ｐｄｆ２ｒｐｃｓ」ＰＤＦファイルをＲＰＣＳに変換する処理
「ｐｄｆ２ｐｃｌ」ＰＤＦファイルをＰＣＬに変換する処理
「ｄｏｃ２ｒｐｃｓ」ドキュメントファイルなどの電子文書ファイルをＲＰＣＳに変換する処理
「ｄｏｃ２ｐｃｌ」ドキュメントファイルなどの電子文書ファイルをＰＣＬに変換する処理
「ｓｅｎｄｍａｉｌ」電子メールに添付してファイルを送信する処理
ステップＳ１３のジョブ予測処理は例えば図１０に示すような手順で処理される。図１０はジョブ予測処理の一例のフローチャートである。ステップＳ２１においてジョブ予測部１２０１はジョブ情報からジョブを構成するタスクのジョブタイプを抽出する。例えば図８のジョブ情報ではジョブタイプ「ｈｔｍｌ２ｐｄｆ」と「ｐｄｆ２ｐｃｌ」とが抽出される。
【００６４】
ステップＳ２２〜Ｓ２４において、ジョブ予測部１２０１はジョブ情報から抽出したジョブタイプの見積処理時間を処理時間見積テーブル１２０４から取得する。例えば図９の処理時間見積テーブル１２０４の場合、ジョブ予測部１２０１はジョブ情報から抽出したジョブタイプ「ｈｔｍｌ２ｐｄｆ」の見積処理時間「３分」とジョブタイプ「ｐｄｆ２ｐｃｌ」の見積処理時間「１２分」とを取得する。
【００６５】
そして、ジョブ予測部１２０１は処理時間見積テーブル１２０４から取得した見積処理時間を加算してジョブの予測時間を算出する。図９の処理時間見積テーブル１２０４の場合は見積処理時間「３分」と見積処理時間「１２分」とを加算した１５分がジョブの予測時間となる。
【００６６】
ステップＳ２５において、ジョブ予測部１２０１は図１１に示すような予測時間テーブル１２０５に、算出したジョブの予測時間を格納する。図１１は予測時間テーブルの一例の構成図である。図１１の予測時間テーブル１２０５はジョブごとに算出した予測時間が登録されている。
【００６７】
図７のステップＳ１４において、ドキュメント処理要求管理部１１２４ａのジョブ順序調整部１２０２は、遅くとも処理を終えたい期日が指定されたジョブ（順序調整ジョブ）に対し、図１２に示すようなジョブ順序調整処理を行う。
【００６８】
図１２はジョブ順序調整処理の一例のフローチャートである。図１２のジョブ順序調整処理は順序調整ジョブの挿入位置を決めるロジックと、期日が迫っても処理されずに残っている順序調整ジョブを救うロジックと、を含む。図１２のステップＳ３１〜Ｓ３３の処理は順序調整ジョブの挿入位置を決めるロジックに対応する。ステップＳ３４〜Ｓ３６の処理は期日が迫っても処理されずに残っている順序調整ジョブを救うロジックに対応する。
【００６９】
ステップＳ３１、Ｓ３２において、ジョブ順序調整部１２０２は該当キューの最後尾から順にジョブを取得し、該当キューに挿入済みの順序調整ジョブ以外のジョブ、又は、新しい順序調整ジョブよりも期日が前の順序調整ジョブを見つける。
【００７０】
ジョブ順序調整部１２０２は図８のジョブ情報の「ｄｅｌｉｖｅｒｙ＿ａｔ」に日付が指定されていないジョブを、該当キューに挿入済みの順序調整ジョブ以外のジョブとして判断する。
【００７１】
また、ジョブ順序調整部１２０２は図８のジョブ情報の「ｄｅｌｉｖｅｒｙ＿ａｔ」に新しい順序調整ジョブの期日よりも前の日付が指定されているジョブを、新しい順序調整ジョブよりも期日が前の順序調整ジョブとして判断する。
【００７２】
ステップＳ３３において、ジョブ順序調整部１２０２は該当キューに挿入済みの順序調整ジョブ以外のジョブ、又は、新しい順序調整ジョブよりも期日が前の順序調整ジョブの後ろに新しい順序調整ジョブを挿入する。
【００７３】
図１３はジョブの処理順序を決める処理の一例の説明図である。図１３ではジョブＩＤ「７」の順序調整ジョブをキュー「Ｃ」に挿入する例を示している。図１３ではジョブＩＤ「１」「２」のジョブが順序調整ジョブではない。また、図１３ではジョブＩＤ「５」のジョブが、新しい順序調整ジョブよりも期日が前の順序調整ジョブである。さらに、図１３ではジョブＩＤ「６」のジョブが、新しい順序調整ジョブよりも期日が後の順序調整ジョブである。
【００７４】
したがって、ジョブ順序調整部１２０２は新しい順序調整ジョブよりも期日が前の順序調整ジョブであるジョブＩＤ「５」の順序調整ジョブを見つけ、ジョブＩＤ「５」の順序調整ジョブの後ろにジョブＩＤ「７」の順序調整ジョブが挿入される。
【００７５】
キューが混んでいなければ、ジョブ順序調整部１２０２はジョブＩＤ「１」「２」「５」「７」「６」の順番にジョブを処理する。したがって、ジョブＩＤ「７」の新しい順序調整ジョブは期日に間に合うが、ジョブＩＤ「１」「２」「５」のジョブよりも優先度が落ちた状態で処理される。このように、図１３の例ではジョブＩＤ「７」の順序調整ジョブを優先せずに処理できる。
【００７６】
ただし、キューが混んでいる場合や順序調整ジョブ以外のジョブがどんどん挿入される場合、順序調整ジョブがなかなか処理されず、順序調整ジョブの期日が間に合わなくなる可能性がある。そこで、ジョブ順序調整部１２０２は期日が迫っても処理されずに残っている順序調整ジョブの順番を早めることにより、順序調整ジョブの処理を期日までに完了させる。
【００７７】
ステップＳ３４においてジョブ順序調整部１２０２は該当キュー最後尾から順にジョブを取得する。ステップＳ３５においてジョブ順序調整部１２０２は取得したジョブが順序調整ジョブである場合に、取得した順序調整ジョブの期日と予測時間テーブル１２０５の予測時間とを参照し、期日が予測時間の２倍以内に迫っているか判断する。
【００７８】
期日が予測時間の２倍以内に迫っていれば、ジョブ順序調整部１２０２はステップＳ３６に進み、ステップＳ３４で取得した順序調整ジョブをキューの先頭に移動させる。期日が予測時間の２倍以内に迫っていなければ、ジョブ順序調整部１２０２はステップＳ３４に戻る。
【００７９】
図１４は期日が迫ったジョブの処理順序を早める処理の一例の説明図である。例えばジョブＩＤ「５」の順序調整ジョブの予測時間が「１１分」であり、現在時刻が「２２：４０」である場合、期日「２３：００」が予測時間「１１分」×２以内に迫っている。したがって、ジョブ順序調整部１２０２はジョブＩＤ「５」の順序調整ジョブをキューの先頭に移動させて、期日に間に合うように処理を行う。
【００８０】
なお、図１２のフローチャートでは期日が迫っている順序調整ジョブの判定基準を予測時間の２倍以内としたが、期日までの日数（例えば１日）を利用してもよい。また、本日が期日（同日の期日）の順序調整ジョブの件数（例えば１０件以上）や順序調整ジョブ以外のジョブの件数（例えば３０件以上）などを期日が迫っている順序調整ジョブの判定基準として利用してもよい。図７のステップＳ１５に戻り、ドキュメント処理要求管理部１１２４ａはステップＳ１１で受信したジョブ情報をユーザへ返却する。
【００８１】
なお、ステップＳ１４のジョブ順序調整処理は、期日が迫っても処理されずに残っている順序調整ジョブを救うロジックが含まれるため、所定時間（例えば３分）に少なくとも一回、行われることが望ましい。そこで、ドキュメント処理要求管理部１１２４ａは少なくとも所定時間（例えば３分）に一回、新しいジョブが投入されるように、必要に応じてダミージョブを投入する。ダミージョブは、期日が迫っても処理されずに残っている順序調整ジョブを救うロジックを実行させるためのジョブであり、ワーカ１１３２による処理が無くてもよい。
【００８２】
なお、第１の実施形態に掛かるサービス提供システム１１００において課金は例えば以下のように行う。例えば、どのユーザが、いつジョブを投入し、そのジョブがいつ処理されたかは、ジョブ情報管理記憶部１１４４のジョブ情報テーブル１２０３に例えば図８に示すようなジョブ情報として格納されている。
【００８３】
例えば図８のジョブ情報において課金に必要な項目は以下の通りである。
「ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄ＋ｕｓｅｒ＿ｉｄ」ジョブをリクエストしたユーザ
「ｃｒｅａｔｅｄ＿ａｔ」ジョブを引き受けた日時
「ｕｐｄａｔｅｄ＿ａｔ」ジョブ情報が変更された日時
「ｓｔａｔｕｓ」ジョブ受付（ａｃｃｅｐｔｅｄ）／ジョブ処理中（ｄｏｉｎｇ）／ジョブ完了（ｄｏｎｅ）／エラー（ｅｒｒｏｒ）
「ｄｅｌｉｖｅｒｙ＿ａｔ」ユーザがリクエストした期日
印刷が終わる期日が遅くなっても料金を安くしたいという要求に対しては、例えば以下に示すような手順でジョブ情報から情報を収集／集計して行う。なお、印刷が終わる期日が遅くなっても料金を安くしたいという要求に対する課金の処理は運用者が手作業で行ってもよいし、スクリプト等で自動化してもよい。
【００８４】
まず、印刷が終わる期日が遅くなっても料金を安くしたいという要求に対する課金の処理では、ジョブ情報テーブル１２０３から「ｓｔａｔｕｓ」が「ｄｏｎｅ」である請求先の「ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄ＋ｕｓｅｒ＿ｉｄ」であるジョブ情報を読み出す。
【００８５】
次に、印刷が終わる期日が遅くなっても料金を安くしたいという要求に対する課金の処理では、読み出したジョブ情報が順序調整ジョブであるか否かを「ｄｅｌｉｖｅｒｙ＿ａｔ」に日付が指定されているか否かにより判断する。なお、期日までの時間により段階的に割引料金が発生する料金体系である場合は「ｄｅｌｉｖｅｒｙ＿ａｔ−ｃｒｅａｔｅｄ＿ａｔ」により差日を求め、以下のように割引料金を設定してもよい。
「０日」ディスカウント０％
「１日」ディスカウント１０％
「３日」ディスカウント２０％
「５日以上」ディスカウント２５％
＜まとめ＞
第１の実施形態によれば、ユーザから優先せずに処理する順序調整ジョブの要求を受け付けることができ、ユーザが遅くとも処理を終えたい期日までに順序調整ジョブが完了するように、順序調整ジョブを優先せずに処理できる。
［第２の実施形態］
第２の実施形態は、第１の実施形態の処理時間見積テーブル１２０４の見積処理時間をジョブタイプ及びページ数の単位で持つようにするものである。また、第２の実施形態は実際にワーカ１１３２が処理に要した時間をフィードバックし、処理時間見積テーブル１２０４の見積処理時間を更新していくものである。なお、第２の実施形態は一部を除いて第１の実施形態と同様であるため、適宜説明を省略する。
【００８６】
＜ソフトウェア構成＞
《ジョブ実行機能》
第２の実施形態に係るサービス提供システム１１００は図１５に示す処理ブロックによりジョブ実行処理を実現している。図１５は第２の実施形態に係るサービス提供システムにおいてジョブ実行処理を実現する一例の処理ブロック図である。
【００８７】
図１５のサービス提供システム１１００は、図４のサービス提供システム１１００のドキュメント処理要求管理部１１２４ａに、処理時間見積更新部１２０６が追加された構成である。処理時間見積更新部１２０６はワーカ１１３２から通知された処理に要した時間により、処理時間見積テーブル１２０４の見積処理時間を後述のように更新していく。
【００８８】
＜処理の詳細＞
以下では第２の実施形態に係るサービス提供システム１１００のジョブ実行処理の詳細について説明する。ジョブ予測部１２０１はジョブのページ数を算出し、ジョブタイプ及びページ数に応じた見積処理時間を図１６に示すような処理時間見積テーブル１２０４から取得する。
【００８９】
図１６は第２の実施形態に係る処理時間見積テーブルの一例の構成図である。図１６の処理時間見積テーブル１２０４は各ジョブタイプについて、ページ数ごとにジョブの完了に掛かる予測時間が見積処理時間として登録されている。また、図１６の処理時間見積テーブル１２０４は処理後のページ数が登録されている。処理後のページ数はワーカ１１３２がジョブを処理した後のページ数である。
【００９０】
例えば図８に示すような２つのタスクにより構成されるジョブの場合、１つ目のタスクは入力されたファイルを処理するため、ページ数を算出できる。しかし、２つ目のタスクは１つ目のタスクの処理後のファイルを処理するため、ワーカ１１３２が１つ目のタスクを実際に処理するまでページ数が分からない。
【００９１】
したがって、２つ目のタスクの見積処理時間を予測する場合は、図１６の処理時間見積テーブル１２０４の１つ目のタスクの「処理後のページ数」を２つ目のタスクのページ数として利用する。
【００９２】
なお、図１６の処理時間見積テーブル１２０４では処理前後のページ数が変わらないことを「処理後のページ数」に「０」を登録することで表している。例えば印刷すると１０ページになるＨＴＭＬファイルを、ただ単にＰＤＦに変換した場合は、何も特別な処理をしていないため、１０ページとなるはずである。ジョブ予測部１２０１は、処理時間見積テーブル１２０４の「処理後のページ数」が「０」である場合、１つ前のタスクの処理前のページ数をそのまま利用して、処理時間見積テーブル１２０４から見積処理時間を取得する。
【００９３】
第２の実施形態において、ステップＳ１３のジョブ予測処理は例えば図１７に示す手順で処理される。図１７は第２の実施形態に係るジョブ予測処理の一例のフローチャートである。ステップＳ５１においてジョブ予測部１２０１はジョブ情報からジョブを構成するタスクのジョブタイプを抽出する。例えば図８のジョブ情報ではジョブタイプ「ｈｔｍｌ２ｐｄｆ」と「ｐｄｆ２ｐｃｌ」とが抽出される。
【００９４】
ステップＳ５２において、ジョブのファイル（入力文書）のページ数を算出する。算出方法はプリンタドライバの付属モジュールを利用したり、ＯＳＳ（オープンソースソフトウェア）のモジュールを利用したりすることが考えられるが、いかなる既存の算出方法を用いても構わない。例えば第２の実施形態では、ワーカ１１３２内にプリンタドライバに内包されるモジュールを有することで、処理するファイルのページ数を算出する。ジョブ予測部１２０１内にもプリンタドライバに内包されるモジュールを備えることで、ジョブ予測部１２０１は、処理するファイルのページ数を算出する。
【００９５】
ステップＳ５３〜Ｓ５５において、ジョブ予測部１２０１はジョブ情報から抽出したジョブタイプ及び算出したページ数に応じた見積処理時間を図１６の処理時間見積テーブル１２０４から取得する。
【００９６】
例えば図８のジョブが１０ページのＨＴＭＬファイルである場合は、１つ目のタスクがジョブタイプ「ｈｔｍｌ２ｐｄｆ」でページ数「１０」であるため、図１６の処理時間見積テーブル１２０４の１行目から見積処理時間「１分」を取得する。
【００９７】
また、２つ目のタスクは、ジョブタイプ「ｐｄｆ２ｐｃｌ」で１つ目のタスクの「処理後のページ数」が「０」であるため、ページ数「１０」と判断し、図１６の処理時間見積テーブル１２０４の４行目から見積処理時間「２分」を取得する。ジョブを構成するタスクは上記の２つであるため、ジョブの見積処理時間は「１分」＋「２分」＝「３分」と見積もることができる。ステップＳ５６においてジョブ予測部１２０１は見積もったジョブの見積処理時間を予測時間として、例えば図１１のような予測時間テーブル１２０５に格納する。
【００９８】
ワーカ１１３２は例えば図１８に示すような手順で処理を行う。図１８はワーカの処理の一例のフローチャートである。
【００９９】
ワーカ１１３２は、対応するキューを監視しており、キューにジョブが入るとステップＳ６１に進み、処理時間の計測を開始する。具体的に、ワーカ１１３２は処理開始時のタイムスタンプを一時メモリに記憶する。ステップＳ６２に進み、ワーカ１１３２は監視しているキューに入ったジョブのジョブ情報をジョブ情報管理記憶部１１４４のジョブ情報テーブル１２０３から取得する。
【０１００】
ステップＳ６３に進み、ワーカ１１３２はジョブ情報に含まれるデータのＵＲＩに基づいて、共有ファイルストレージ１１４５からファイルを取得する。そして、ステップＳ６４に進み、ワーカ１１３２は取得したファイルのページ数を算出して、一時メモリに記憶する。
【０１０１】
ステップＳ６５に進み、ワーカ１１３２は取得したファイルに対して、担当する処理を実行する。ステップＳ６６に進み、ワーカ１１３２は処理を実行後のファイルのページ数を算出して、一時メモリに記憶する。
【０１０２】
ステップＳ６７に進み、ワーカ１１３２は処理を実行後のファイルを共有ファイルストレージ１１４５に保存する。ステップＳ６８に進み、ワーカ１１３２はジョブ情報管理記憶部１１４４に登録されているジョブ情報テーブル１２０３の「ｓｔａｔｕｓ」を「ｄｏｎｅ」に更新する完了処理を実行する。
【０１０３】
ステップＳ６９に進み、ワーカ１１３２は処理時間の計測を終了する。ワーカ１１３２はステップＳ６１で一時メモリに記憶した処理開始時のタイムスタンプと、ステップＳ６９で一時メモリに記憶した処理終了時のタイムスタンプと、の差分から処理時間を算出する。そして、ステップＳ７０に進み、ワーカ１１３２はジョブタイプ、処理時間、処理を実行前のファイルのページ数、処理を実行後のファイルのページ数を処理時間見積更新部１２０６に送信し、図１８のフローチャートの処理を完了する。
【０１０４】
ワーカ１１３２からジョブタイプ、処理時間、処理を実行前のファイルのページ数及び処理を実行後のファイルのページ数を受信した処理時間見積更新部１２０６は例えば図１９に示すように処理を行う。図１９は処理時間見積更新部の処理の一例のフローチャートである。
【０１０５】
ステップＳ８１において、処理時間見積更新部１２０６はワーカ１１３２からジョブタイプ、処理時間、処理を実行前のファイルのページ数、処理を実行後のファイルのページ数を受信する。ステップＳ８２に進み、処理時間見積更新部１２０６は受信したジョブタイプと処理を実行前のファイルのページ数とを利用して、処理時間見積テーブル１２０４から該当するレコードを取得する。
【０１０６】
そして、処理時間見積更新部１２０６はステップＳ８３に進み、ワーカ１１３２から受信した処理時間と、処理時間見積テーブル１２０４から取得した該当するレコードの見積処理時間との平均値を算出して一時メモリに記憶する。さらに、処理時間見積更新部１２０６はステップＳ８４に進み、図２０に示す表のロジックに従って、処理後のページ数を算出する。
【０１０７】
図２０は処理後のページ数を算出する方法について説明する一例の図である。処理時間見積テーブル１２０４から取得した該当するレコードの処理後のページ数が「０」である場合は「０」のままとする。処理時間見積テーブル１２０４では処理前後のページ数が変わらないことを「処理後のページ数」に「０」を登録することで表すためである。
【０１０８】
万が一、ワーカ１１３２から受信した処理を実行前及び実行後のファイルのページ数が異なる場合、それは特異点あるいはバグであることが想定でき、その影響を見積処理時間に及ぼさないために処理後のページ数を「０」のままとする。
【０１０９】
また、処理時間見積テーブル１２０４から取得した該当するレコードの処理後のページ数が「０」以外である場合は、レコードの処理後のページ数と、ワーカ１１３２から受信した処理を実行後のファイルのページ数との平均を求める。
【０１１０】
ステップＳ８５に進み、処理時間見積更新部１２０６はステップＳ８３で算出した処理時間の平均値と、ステップＳ８４で算出した処理後のページ数とで処理時間見積テーブル１２０４を更新する。
【０１１１】
具体的に、処理時間見積更新部１２０６は例えばワーカ１１３２からジョブタイプ、処理時間、処理を実行前及び実行後のファイルのページ数として「ｐｄｆ２ｐｃｌ、７分、４０ページ、４０ページ」を受信したとする。
【０１１２】
図１６の処理時間見積テーブル１２０４を参照すると、処理時間見積更新部１２０６は受信したジョブタイプ「ｐｄｆ２ｐｃｌ」及び処理を実行前のファイルのページ数「４０ページ」から５番目のレコードを取得する。図１６に示した５番目のレコードは、ジョブタイプ、ページ数、見積処理時間、処理後のページ数として「ｐｄｆ２ｐｃｌ、３１−６０ページ、６分、４７ページ」を値として有している。
【０１１３】
処理時間見積更新部１２０６はワーカ１１３２から受信した処理時間「７分」と、処理時間見積テーブル１２０４から取得した該当するレコードの見積処理時間「６分」との平均値「６．５分」を算出して一時メモリに記憶する。さらに、処理時間見積更新部１２０６は図２０に示す表のロジックに従って、処理後のページ数を算出する。
【０１１４】
例えば処理時間見積テーブル１２０４から取得した該当するレコードの処理後のページ数が「０」以外である。したがって、処理時間見積更新部１２０６はレコードの処理後のページ数「４７ページ」とワーカ１１３２から受信した処理を実行後のファイルのページ数「４０ページ」との平均値「４３．５ページ」を求める。
【０１１５】
処理時間見積更新部１２０６は、算出した処理時間の平均値「６．５分」と、処理後のページ数の平均値「４３．５ページ」とで処理時間見積テーブル１２０４を例えば図１６から図２１に示すように更新する。図２１は処理時間見積更新部により更新された処理時間見積テーブルの一例の構成図である。
【０１１６】
＜まとめ＞
第２の実施形態によれば、第１の実施形態の処理時間見積テーブル１２０４の見積処理時間をジョブタイプ及びページ数の単位で持つようにすることで、より正確な予測時間を算出できる。
【０１１７】
また、第２の実施形態によれば、実際にワーカ１１３２が処理に要した処理時間を処理時間見積更新部１２０６にフィードバックし、処理時間見積テーブル１２０４を更新できるため、より正確な予測時間を算出できる。
［第３の実施形態］
通常、ドキュメント処理要求管理部１１２４ａとワーカ１１３２とは別のサーバ装置に構築することが多い。これは、仮にワーカ１１３２が急停止したとしても、ドキュメント処理要求管理部１１２４ａに影響を及ぼさないようにするためである。このようなサーバ装置の構成で、ページ数を算出するモジュールをそれぞれのサーバ装置にデプロイ（ｄｅｐｌｏｙ）すると、何らかの障害が同モジュールにあると、それぞれのサーバ装置に同モジュールの修正版をデプロイ（利用可能な状態）にしなければならない。
【０１１８】
そこで、第３の実施形態に係るサービス提供システム１１００は図２２に示すような処理ブロックによりジョブ実行処理を実現している。図２２は第３の実施形態に係るサービス提供システムにおいてジョブ実行処理を実現する一例の処理ブロック図である。
【０１１９】
図２２のサービス提供システム１１００は、図１５のサービス提供システム１１００のワーカ１１３２に算出キューと算出用ワーカとが追加された構成である。図２２のサービス提供システム１１００では算出キュー及び算出用ワーカを利用してページ数を算出することにより、同モジュールに何らかの障害があっても、複数のサーバ装置へのデプロイを避けることができる。
【０１２０】
具体的に、第３の実施形態では、ページ数を算出する際に、ジョブを算出キューに投入する。算出キューを監視している算出用ワーカは、算出キューからジョブを取得し、そのジョブのページ数を算出する。算出用ワーカは算出したページ数をジョブ情報テーブル１２０３に書き込み、処理を終了する。
【０１２１】
ジョブ予測部１２０１は算出キューにジョブを投入したあと、ジョブ情報テーブル１２０３を所定期間毎に参照し、対象ジョブの「ｓｔａｔｕｓ」が「ｄｏｎｅ」になっているかを監視する。対象ジョブの「ｓｔａｔｕｓ」が「ｄｏｎｅ」になっていれば、ジョブ予測部１２０１は対象ジョブのジョブ情報からページ数を取得する。
【０１２２】
＜まとめ＞
第３の実施形態によれば、ページ数を算出するモジュールに障害あった場合における同モジュールの修正版のデプロイの範囲を最小限に抑えることができる。
［他の実施形態］
第１の実施形態におけるステップＳ１４のジョブ順序調整処理は、図１２に示すように順序調整ジョブの挿入位置を決めるロジックと、期日が迫っても処理されずに残っている順序調整ジョブを救うロジックと、を続けて行っている。他の実施形態としてステップＳ１４のジョブ順序調整処理は、順序調整ジョブの挿入位置を決めるロジックを、ステップＳ１４のタイミング以外にも（例えば所定時間ごとに）行うようにしてもよい。また、第１の実施形態に係る図１のシステム１０００は一例であって、ネットワーク構成や装置構成が異なっていてもよい。
【０１２３】
さらに、上記した実施形態では説明を容易化するため、処理時間見積テーブル１２０４の見積処理時間をジョブタイプ及びページ数の単位で持つ例を説明したが、ページ数に限定されるものではない。ページ数に替えて、ファイルサイズ、文書サイズ、カラー／モノクロ、テナント、ユーザなどを用いる処理時間見積テーブル１２０４であってもよい。
【０１２４】
また、ページ数、ファイルサイズ、文書サイズ、カラー／モノクロ、テナント、ユーザなどを組み合わせて用いる処理時間見積テーブル１２０４であってもよい。ファイルサイズは、ファイルそのものの大きさである。文書サイズは、紙に出力させた際の大きさであり、Ａ３／Ａ４／Ｂ４のような紙面の幅と高さとを示している。カラー／モノクロは文書に使われている色数である。
【０１２５】
テナント／ユーザはジョブを要求したユーザを示す。例えば担当業種や担当業務で利用する文書が異なるケースが想定でき、ジョブを要求するユーザごとに処理時間見積テーブル１２０４を持つことで、見積処理時間の精度の向上が期待できる。
【０１２６】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１２７】
なお、ドキュメント処理要求管理部１１２４ａは特許請求の範囲に記載した管理手段の一例である。メッセージキュー１１３１のキューは保持手段の一例である。ワーカ１１３２は実行手段の一例である。ジョブ予測部１２０１は予測手段の一例である。ジョブ順序調整部１２０２は順序調整手段の一例である。処理時間見積更新部１２０６は処理時間見積更新手段の一例である。算出キューは算出保持手段の一例である。算出用ワーカは算出用実行手段の一例である。
【符号の説明】
【０１２８】
１０００    システム
１０１１    クライアント端末
１０１２    携帯端末
１０１３    画像形成装置
１０２１    アクセス制御装置
１０２２    プリントサービス提供装置
１０２３    スキャンサービス提供装置
１０２４    他サービス提供装置
１１００    サービス提供システム
１１０１    サービスアプリ
１１０２    プラットフォーム
１１０３    管理データ記憶部
１１０４    プラットフォームＡＰＩ（Application Programming Interface）
１１１１    プリントサービスアプリ
１１１１ａ    フロントエンドアプリ
１１１２    スキャンサービスアプリ
１１１３    その他のサービスアプリ
１１２１    認証処理部
１１２２    機器通信部
１１２３    セッション管理部
１１２４    処理制御部
１１２４ａ    ドキュメント処理要求管理部
１１２５    データ処理部
１１３１    メッセージキュー
１１３２    ワーカ（Ｗｏｒｋｅｒ）
１１４１    組織管理情報記憶部
１１４２    ユーザ管理情報記憶部
１１４３    機器管理情報記憶部
１１４４    ジョブ情報管理記憶部
１１４５    共有ファイルストレージ
１２０１    ジョブ予測部
１２０２    ジョブ順序調整部
１２０３    ジョブ情報テーブル
１２０４    処理時間見積テーブル
１２０５    予測時間テーブル
１２０６    処理時間見積更新部
１５００    コンピュータ
１５０１    入力装置
１５０２    表示装置
１５０３    外部Ｉ／Ｆ
１５０３ａ    記録媒体
１５０４    ＲＡＭ
１５０５    ＲＯＭ
１５０６    ＣＰＵ
１５０７    通信Ｉ／Ｆ
１５０８    ＨＤＤ
２０００    印刷アップロード画面
２００１    アップロードボタン
２００２    確認ダイアログ
Ｂ    バス
ＦＷ    ファイヤウォール
Ｎ１〜Ｎ３    ネットワーク
【先行技術文献】
【特許文献】
【０１２９】
【特許文献１】特開２０１３−１７８７４８号公報
【図１】
0006679919.tif 000002
【図２】
0006679919.tif 000003
【図３】
0006679919.tif 000004
【図４】
0006679919.tif 000005
【図５】
0006679919.tif 000006
【図６】
0006679919.tif 000007
【図７】
0006679919.tif 000008
【図８】
0006679919.tif 000009
【図９】
0006679919.tif 000010
【図１０】
0006679919.tif 000011
【図１１】
0006679919.tif 000012
【図１２】
0006679919.tif 000013
【図１３】
0006679919.tif 000014
【図１４】
0006679919.tif 000015
【図１５】
0006679919.tif 000016
【図１６】
0006679919.tif 000017
【図１７】
0006679919.tif 000018
【図１８】
0006679919.tif 000019
【図１９】
0006679919.tif 000020
【図２０】
0006679919.tif 000021
【図２１】
0006679919.tif 000022
【図２２】
0006679919.tif 000023